自动生成抽取-转换-加载代码的方法和装置与流程

文档序号:11582736阅读:140来源:国知局
自动生成抽取-转换-加载代码的方法和装置与流程

本发明总体涉及软件开发过程,尤其但并不只涉及一种自动生成抽取-转换-加载(extract-transform-load,etl)代码的方法和装置。



背景技术:

一般而言,抽取、转换、加载(etl)为数据仓储中的一种处理过程,该过程用于从来源系统中抽取数据,并按照业务需求实施必要的数据转换步骤后将其放入数据仓库。etl程序的开发是一个缓慢的过程。etl代码开发过程的通常步骤为:根据从来源至目标数据映射明细创建详细设计文档、编码以及单元测试。而且,针对每个必须开发的etl代码均重复这三个步骤。然而,这三个步骤非常耗时且价格昂贵。研究和统计结论指出,etl代码开发为产品整合方案中70%的成本和时间的根源所在。此外,etl代码开发还影响新产品发布的上市时间,以及新的合规性信息的传递等。另一方面,etl代码的手动开发可导致缺陷,而且影响及时满足要求的能力。

现有系统遵循计算机执行的etl工作流程生成方法。该etl工作流程生成方法包括接收元数据。该元数据描述了来源与目标之间的映射,其中,该来源和目标描述了一个实体。该方法还包括接收实体选择结果,该实体选择结果详细描述了上述实体。所述工作流程可基于元数据及实体选择结果而生成。

然而,现有系统基本上并未削减etl代码开发过程中的时间和成本。而且,所述现有方法在很大程度上并未完全自动化。因此,开发出的etl代码仍然存在着缺陷。



技术实现要素:

本发明克服了现有技术的一个或多个缺点并提供额外的优点。而且,本发明的技术可实现其他特征和优点。此处,对本发明的其他实施方式和方面进行了详细描述,而且所述实施方式和方面视为所要求保护的本发明的一部分。

此处公开一种自动生成抽取-转换-加载(etl)代码的方法和装置。代码生成装置从预定义etl代码中自动检测出一个或多个模式,并且从模式数据库中获取该一个或多个模式。之后,用户提供上述获取的一个或多个etl模式所需的用户输入,并根据该用户输入,识别出一个或多个etl模式。根据所述一个或多个从主数据源至次数据源etl映射,所述代码生成装置自动生成上述etl代码。

因此,本发明包括一种自动生成etl代码的方法。该方法包括,由一代码生成装置根据预定义etl代码检测出一个或多个etl模式。其后,所述代码生成装置判断所检测出的一个或多个etl模式中的每个etl模式是否存在于所述代码生成装置的模式数据库中。此外,所述代码生成装置从所述模式数据库中获取所述一个或多个etl模式。获取所述一个或多个etl模式后,所述代码生成装置接收与所述一个或多个etl模式中每个模式对应的一个或多个参数值、主数据源相关元数据、次数据源相关元数据当中的每一个的用户输入。此外,所述代码生成装置根据所述一个或多个etl模式中每个模式的用户输入,自动识别出一个或多个从主数据源至次数据源的etl映射。之后,所述代码生成装置自动生成与所述一个或多个识别出的etl映射中的每个etl映射相对应的etl代码。

此外,本发明还包括一种用于自动生成etl代码的代码生成装置。该代码生成装置包括:处理器;以及存储器,以可通信方式与所述处理器相连接。所述存储器存有处理器可执行指令,该指令在执行时使得所述处理器根据预定义etl代码检测出一个或多个etl模式。在检测出所述一个或多个etl模式后,所述处理器判断所检测出的一个或多个etl模式中的每个etl模式 是否存在于所述代码生成装置的模式数据库中。此外,所述处理器从所述模式数据库中获取一个或多个etl模式。获取所述一个或多个etl模式后,所述处理器接收与所述一个或多个etl模式中每个模式对应的一个或多个参数值、主数据源相关元数据、次数据源相关元数据中的每一个的用户输入。此外,所述处理器根据所述一个或多个etl模式中每个模式的用户输入,自动识别出一个或多个从主数据源至次数据源的etl映射。最后,所述处理器自动生成与所述一个或多个识别出的etl映射中的每个etl映射相对应的etl代码。

此外,本发明还涉及一种非暂时性计算机可读介质,该介质包括存于其内的指令,该指令在由至少一个处理器处理时使得所述代码生成装置实施操作,该操作包括根据预定义etl代码检测出一个或多个etl模式。所述指令还使得所述处理器判断所检测出的一个或多个etl模式中的每个etl模式是否存在于所述代码生成装置的模式数据库中。之后,所述指令使得所述处理器从所述模式数据库中获取一个或多个etl模式。此外,所述指令还使得所述处理器接收与所述一个或多个etl模式中每个模式对应的一个或多个参数值、主数据源相关元数据、次数据源相关元数据中的每一个的用户输入。之后,所述指令使得所述处理器根据所述一个或多个etl模式中每个模式的用户输入,自动识别出一个或多个从主数据源至次数据源的etl映射。最后,所述指令使得所述处理器自动生成与所述一个或多个识别出的etl映射中的每个etl映射相对应的etl代码。

上述《发明内容》部分仅在于说明,并不意在施加任何限制。通过参考附图和以下《具体实施方式》部分,除了以上所述说明性方面、实施方式及特征之外,其他方面、实施方式和特征也将变得显而易见。

附图说明

所附各图并入本发明之内并构成本发明的一部分,用于对例示实施方式进行描述,并与说明书一道阐明所公开的原理。各图中,附图标记最左边的 位值表明该参考符号第一次出现时所在的图号,而且均采用相同附图标记指代相同或类似部件。以下,对根据本发明实施方式的系统和/或方法的一些实施方式进行描述,该描述仅以例示为目的且参考上述附图,其中:

图1a所示为根据本发明一些实施方式用于自动生成抽取-转换-加载(etl)代码的例示架构;

图1b至图1n所示为根据本发明一些实施方式的例示自动生成etl代码方法;

图2为根据本发明一些实施方式用于自动生成etl代码的代码生成装置的详细框图;

图3为根据本发明一些实施方式自动生成抽取-转换-加载(etl)代码的流程图;

图4为用于实施符合本发明实施方式的例示计算机系统框图。

本领域技术人员应当理解的是,本文中的任何框图均表示秉承了本发明原理的说明性系统的概念图。同样地,还应当理解的是,任何的作业图、流程图、状态迁移图以及伪代码等均表示可实质表现于计算机可读介质中且由计算机或处理器(无论该计算机或处理器明确示出与否)执行的各种过程。

附图标记

具体实施方式

本文中,“例示”一词用于表示“作为示例、实例或例证”。此处,描述为“例示”的本技术方案任何实施方式或实现方式并不一定应理解为比其他实施方式优选或有利的实施方式。

虽然本发明的具体实施方式已在附图中以例示方式对进行了展示且将在以下进行详细描述,但本发明还可做出各种修饰和替代形式。应该理解的是,本发明并不旨在局限于所公开的具体形式,相反,本发明意在涵盖落入其精神和范围内的所有修改方案、等同方案及替代方案。

“包括”一词或其任何其他变形词旨在涵盖非排除性的纳入关系。如此, 对于包括一系列部件或步骤的体系、装置或方法而言,其并不只包括所述部件或步骤,而是可能包括其他未明确列出的部件或步骤,或者包括该体系、装置或方法固有的部件或步骤。换言之,在“包括……”这一表述之后描述的系统或装置中的一个或多个元件,在没有其他限制的情况下,并不排除其他或额外元件在该系统或装置中的存在。

本发明涉及一种自动生成抽取-转换-加载(etl)代码的方法和装置。代码生成装置从一个或多个来源接收预定义etl代码。接收该预定义etl代码后,所述代码生成装置自动检测出所接收预定义etl代码中的一个或多个etl模式。所述代码生成装置对包括一个或多个etl模式的模式数据库进行搜索,以判断所检测出的一个或多个etl模式是否存在。如果所检测出的一个或多个etl模式存在于所述模式数据库中,即由用户对所检测出的一个或多个etl模式进行选择。如果所检测出的一个或多个etl模式不存在于所述模式数据库中,则由用户利用所述代码生成装置的模式编辑器创建所需的一个或多个etl模式。之后,将所创建的一个或多个etl模式更新于所述模式数据库中,并由用户对所检测出的一个或多个etl模式进行选择。在对所检测出的一个或多个etl模式进行选择后,所述代码生成装置从所述模式数据库中获取所选择的一个或多个etl模式。之后,由用户提供从所述模式数据库中获取的所述一个或多个etl模式中的每个模式的用户输入。所提供的用户输入为与所述一个或多个etl模式中每个模式的一个或多个参数值、主数据源相关元数据、以及次数据源相关元数据当中的每一个的用户输入。接收所述用户输入后,所述代码生成装置自动识别出所述一个或多个etl模式中每个模式的一个或多个从主数据源至次数据源etl映射。如果所述识别出的一个或多个etl映射不正确,则由用户对该一个或多个etl映射进行更改。最后,所述代码生成装置根据所述一个或多个从主数据源至次数据源etl映射自动生成etl代码。

以下参考附图,对本发明的实施方式进行详细描述。其中,所述附图作为本文的一部分,以例示方式示出了可实践本发明的具体实施方式。这些实施方式的描述详细程度足以让本领域技术人员可对本发明进行实践,而且可 以理解的是,在不脱离本发明范围的前提下,还可利用其他实施方式,以及做出各种改变。因此,以下描述不应视为具有限制意义。

图1a所示为根据本发明一些实施方式用于自动生成抽取-转换-加载(etl)代码的例示架构。

架构100包括:一个或多个来源,即来源一1031、来源二1032、来源三1033……来源n103n(统称为一个或多个来源103);通信网络105;以及代码生成装置107。举例而言,所述一个或多个来源103可以为代码数据库、客户端/最终用户等。通信网络105可以为有线通信网络和无线通信网络中的至少一个。

所述一个或多个来源103可经通信网络105向代码生成装置107提供预定义etl代码104。举例而言,预定义etl代码104可以为可扩展标记语言(xml)文档。预定义etl代码104可提供与自动生成新etl代码所需的一个或多个etl模式相关的信息。代码生成装置107包括处理器109、用户界面111、存储器113、模式数据库115以及模式编辑器117。如图1b、图1c和图1d所示,处理器109对预定义etl代码104中的所述一个或多个etl模式进行自动检测。在图1b中,用户界面111上显示有“patterndetection”(模式检测)图标。当对所述模式检测图标进行选择后,处理器109导航至图1c所示页面。预定义etl代码104的xml文档上传后,处理器109对该上传的预定义etl代码104中的一个或多个etl模式进行自动检测。当检测出所上传预定义etl代码104中的一个或多个etl模式后,该检测出的一个或多个etl模式以预设格式提供至用户。例如,所述预设格式可以为图1d所示电子表格。

此外,在经用户界面111接收到用户请求后,处理器109对模式数据库115进行搜索,也就是说,用户可浏览模式数据库115并对显示于用户界面111上的一个或多个etl模式进行选择。模式数据库115包括与图1e和图1f所示一个或多个类别相关的一个或多个预设etl模式。如图1e所示,所述一个或多个例示类别例如为“dataquality”(数据质量)和“digital”(数字业务智能)。如图1f所示,所述一个或多个例示类别还例如为“enterprise datawarehouse”(edw,企业数据仓库)和“industrymodels”(行业模型)。所述类别中的每个类别均划分为包括所述一个或多个etl模式的子类别。举例而言,图1g示出了“aggregation”(汇总)、“changedatacapture”(变更数据捕获)、“constraintloading”(约束加载)、“datastandardization”(数据标准化)、“dimensions”(规模)等示例性子类别。所述一个或多个etl模式可从所述子类别中选出。

在一种实施方式中,模式数据库115为可扩展数据库,也就是说,所述一个或多个etl模式可按照规则时间间隔添加,或者可在该一个或多个etl模式创建时添加。在一种实施方式中,模式数据库115可配置于代码生成装置107内;或者,模式数据库115可以为与代码生成装置107关联的独立数据库。通过搜索模式数据库115,处理器109可对所检测出的一个或多个etl模式是否位于模式数据库115内进行检查。如果所检测出的一个或多个etl模式位于模式数据库115内,用户即对该一个或多个etl模式进行选择,而且由处理器109获取用户所选择的该一个或多个etl模式。如果所检测出的一个或多个etl模式不位于模式数据库115内,用户则可利用模式编辑器117创建所需的一个或多个etl模式,并且由处理器109获取所创建的该一个或多个etl模式。模式编辑器117允许用户对所述一个或多个etl模式进行编辑或创建。模式编辑器117还允许用户对用于实现编辑或创建目的的定制功能进行选择。在一种实施方式中,所述一个或多个etl模式可以从零创建;或者,所述一个或多个etl模式可通过选择一个或多个预设etl模式而创建。根据所创建的一个或多个etl模式,可将模式数据库115更新,以用于后续参考。图1h所示为用户根据目录“edw”和“sub-category-dimensions”(子目录-规模)从模式数据库115中的一个或多个etl模式选出的例示etl模式“insert_updata_delete”(插入_更新_删除)。

所获取的一个或多个etl模式可保存于存储器113中。在获取所述一个或多个etl模式后,可通过用户界面111提供用户输入。如图1i所示,用户依次提供与所述一个或多个etl模式中每个模式对应的用户输入,所述用户输入为一个或多个参数值、主数据源相关元数据、次数据源相关元数据的用 户输入。所述一个或多个参数值为所述一个或多个etl模式中每个模式的特性参数值。在一种实施方式中,所述一个或多个参数可以为映射参数、会话参数和会话连接信息中的至少一个。映射参数包括主数据源名称,次数据源名称以及etl模式的其他相关特性等关键属性。会话参数和会话连接参数可包括与etl模式的待建立连接相关的特性,以及其他相关运行时间特性。在一种实施方式中,所述主数据源相关元数据包括作为etl模式所需元数据的载入源的必要数据。举例而言,所述主数据源相关元数据可以为结构化查询语言(sql)脚本、范例文件、无格式文件等形式的数据。在一种实施方式中,所述次数据源相关元数据包括可作为etl模式所需元数据的载入源的必要数据。举例而言,所述次数据源相关元数据可以为sql脚本、范例文件、无格式文件等形式的数据。

提供所述用户输入后,处理器109对一个或多个从主数据源至次数据源etl映射进行自动识别。图1j所示为与所选例示etl模式相应的一个或多个etl映射。

所述一个或多个etl映射可包括,但不限于,映射操作、描述变更、关键指标、主数据源信息、次数据源信息以及预定义业务规则。如果所识别出的一个或多个etl映射正确,用户即保留该自动识别出的一个或多个etl映射。如果所识别出的一个或多个etl映射不正确,用户则利用用户界面111对该一个或多个etl映射进行编辑,以提供正确的一个或多个etl映射。

完成上述映射后,如图1k所示,用户界面111允许用户返回并做出所需的变更。如果无需变更,用户可通过选择“finish”(结束)而进一步实施后续处理。最后,如图1l所示,处理器109自动生成与所述一个或多个识别出的etl映射中的每个etl映射对应的etl代码。

所生成的etl代码中的每一个均包括与所述一个或多个etl模式中每个模式相对应的会话代码、工作流程代码以及映射代码。所述会话代码与所述etl模式的待建立连接和其他运行时间参数的相关连接信息以及其他相关运行时间特性相关联。所述工作流程代码与一个或多个会话以及该会话内的任务相关联。所述会话创建并运行于所述工作流程代码中。所述映射代码与所 述一个或多个etl映射的关联信息相关联。

在一种实施方式中,如图1m所示,所述一个或多个etl模式中每个模式的对应etl代码可同时生成。如图1n所示,所述一个或多个模式中每个模式的对应用户输入以预设格式一次性提供。举例而言,所述预设格式可以为电子表格形式的格式。

图2为根据本发明一些实施方式用于自动生成etl代码的代码生成装置的详细框图。

在一种实施方式中,代码生成装置107从一个或多个来源103接收数据203。举例而言,数据203可存储在配置于代码生成装置107内的存储器113中。在一种实施方式中,数据203包括预定义etl代码104、模式数据207、参数数据209、主次数据源211、用户输入数据213、etl映射数据215、etl代码数据217以及其他数据219。在所示图2中,对存于存储器113内的各模块205进行详细描述。

在一种实施方式中,数据203可以各种数据形式存储于存储器113中。此外,还可采用关系型或层次型等数据模型对上述数据203进行组织。其它数据219可存储包括由各模块205生成且用于执行代码生成装置107的各种功能的临时数据和临时文件在内的数据。

在一种实施方式中,预定义etl代码104可经通信网络105从所述一个或多个来源103接收。举例而言,所述一个或多个来源103可以为代码数据库、客户端/最终用户等。预定义etl代码104可例如为可扩展标记语言(xml)文档。预定义etl代码104可提供与自动生成新etl代码所需的一个或多个etl模式相关的信息。

在一种实施方式中,模式数据207包括一个或多个etl模式。所述一个或多个etl模式可以为一个或多个预定义etl模式以及由代码生成装置107的模式编辑器117创建的一个或多个etl模式中的至少一个。所述一个或多个etl模式可由模式编辑器117从零创建,或通过选择模式数据库115内的一个或多个预设etl模式而创建。根据所创建的一个或多个etl模式,可将模式数据库115更新,以用于后续参考。

在一种实施方式中,参数数据209包括一个或多个参数。所述一个或多个etl模式中每个模式均与该一个或多个参数相关联。所述一个或多个参数可以为映射参数、会话参数和会话连接参数。映射参数包括主数据源名称,次数据源名称以及etl模式的其他相关特性等关键属性。会话参数和会话连接参数可包括与etl模式的待建立连接相关的特性,以及其他相关运行时间特性。

在一种实施方式中,主次数据源211包括所述一个或多个etl模式中每个模式所需的主数据源相关元数据和次数据源相关元数据。在一种实施方式中,所述主数据源相关元数据包括作为etl模式所需元数据的载入源的必要数据。举例而言,所述主数据源相关元数据可以为结构化查询语言(sql)脚本、范例文件、无格式文件等形式的数据。在一种实施方式中,所述次数据源相关元数据包括可作为etl模式所需元数据的载入源的必要数据。举例而言,所述次数据源相关元数据可以为sql脚本、范例文件、无格式文件等形式的数据。

在一种实施方式中,用户输入数据213包括用户提供的一个或多个输入。用户提供的所述用户输入为与所述一个或多个etl模式中每个模式对应的一个或多个参数值、主数据源相关元数据、以及次数据源相关元数据的用户输入。

在一种实施方式中,etl映射数据215包括一个或多个从主数据源至次数据源etl映射。所述一个或多个etl映射可包括,但不限于,映射操作、描述变更、关键指标、来源信息、目标信息以及预定义业务规则。

在一种实施方式中,etl代码数据217包括一个或多个生成etl代码。所述生成etl代码中的每一个均包括与所述一个或多个etl模式中每个模式相对应的会话代码、工作流程代码以及映射代码。所述会话代码与所述etl模式的待建立连接的相关连接信息以及其他相关运行时间特性相关联。所述工作流程代码与一个或多个会话以及该会话内的任务相关联。所述会话创建并运行于所述工作流程代码中。所述映射代码与所述一个或多个从主数据源至次数据源etl映射的关联信息相关联。

在一种实施方式中,保存于存储器113中的数据由代码生成装置107的各模块205处理。如图2所示,各模块205可存储于存储器113内。在一个实施例中,各模块205均以可通信方式连接于处理器109,而且也可存储于存储器113之外。

在一种实施方式中,模块205例如可包括检测模块221、判断模块222、获取模块223、接收模块225、识别模块227、代码生成模块229和其它模块231。其他模块231可执行系统代码生成装置107的各种其他功能。可以理解的是,上述各模块205既可表现为单个模块,也可表现为不同的模块的组合。

在一种实施方式中,检测模块221根据从所述一个或多个来源103提供至代码生成装置107的预定义etl代码104,自动检测出所述一个或多个etl模式。用户通过选择用户界面111上的模式检测图标而上传预定义etl代码104的xml文档。检测模块221根据所上传的预定义etl代码104,自动检测出所述一个或多个etl模式。根据预定义etl代码104检测出所述一个或多个etl模式后,此检测出的一个或多个etl模式以预设格式提供至用户。举例而言,所述预设格式可以为电子表格。

在一种实施方式中,判断模块222对所检测出的一个或多个etl模式中的每个etl模式是否存在于模式数据库115中进行判断。在经用户界面111接收到用户请求后,判断模块223对模式数据库115进行搜索,也就是说,用户可浏览模式数据库115并对显示于用户界面111上的一个或多个etl模式进行选择。如果所检测出的一个或多个etl模式不位于模式数据库115内,用户则可利用模式编辑器117创建所需的一个或多个etl模式。

在一种实施方式中,获取模块223从模式数据库115中获取所检测出的一个或多个etl模式。所获取的一个或多个etl模式可保存于存储器113内。

在一种实施方式中,接收模块225接收与所述一个或多个etl模式中每个模式对应的一个或多个参数值、主数据源相关元数据、以及次数据源相关元数据的用户输入。所述用户输入通过用户界面111提供。在一种实施方式中,与所述一个或多个etl模式中每个模式对应的所述用户输入可以预设格式一次性批量提供。举例而言,所述预设格式可以为电子表格形式的格式。

在一种实施方式中,识别模块227自动识别出一个或多个从主数据源至次数据源etl映射。如果所识别出的一个或多个etl映射正确,用户即保留该自动识别出的一个或多个etl映射。如果所识别出的一个或多个etl映射不正确,用户则利用用户界面111对该一个或多个etl映射进行编辑,以提供正确的一个或多个etl映射。

在一种实施方式中,代码生成模块229自动生成与所述一个或多个识别出的etl映射中的每个etl映射对应的etl代码。当所述用户输入批量提供时,可同时生成与所述一个或多个etl模式中每个模式对应的所述生成etl代码。

图3为根据本发明一些实施方式自动生成抽取-转换-加载(etl)代码的流程图。

如图3所示,方法300包括描述了一种etl代码自动生成方法的一个或多个框体。方法300一般可以以计算机可执行指令为基础描述。一般而言,计算机可执行指令可包括用于执行特定功能或实现特定抽象数据类型的例程、程序、对象、组件、数据结构、过程、模块和功能。

方法300的描述顺序并不旨在于理解为限制,而且为了实施该方法,所述方法框体可具有任意数量且可以任何顺序组合。另外,在不脱离本文所述技术方案的精神和范围的前提下,可将各个框体从所述方法中删除。此外,所述方法可在任何合适的硬件、软件、固件或其组合中实施。

在框体301中,代码生成装置107对一个或多个etl模式进行自动检测。在一种实施方式中,处理器109根据从所述一个或多个来源103所接收的预定义etl代码104,自动检测出所述一个或多个etl模式。举例而言,预定义etl代码104可以为可扩展标记语言(xml)文档。在经用户界面111接收到用户请求后,处理器109对代码生成装置107的模式数据库115进行搜索,也就是说,用户可浏览模式数据库115并对显示于用户界面111上的一个或多个etl模式进行选择。处理器109搜索模式数据库115的目的在于检查所述检测出的etl模式是否处于模式数据库115中。如果所检测出的一个或多个etl模式位于模式数据库115内,处理器109即获取该一个或多个etl 模式。如果所检测出的一个或多个etl模式不位于模式数据库115内,用户则可利用模式编辑器117创建所需的一个或多个etl模式。

在框体303中,代码生成装置107从模式数据库115中获取所述一个或多个etl模式。在一种实施方式中,所检测出的一个或多个etl模式由处理器109从模式数据库115中获取,而且可保存于存储器113中。

在框体305中,代码生成装置107接收用户输入。在一种实施方式中,由处理器109接收所述用户输入,其中,所述用户输入由用户经代码生成装置107的用户界面111提供。用户提供的所述用户输入为与所述一个或多个etl模式中每个模式对应的一个或多个参数值、主数据源相关元数据、以及次数据源相关元数据的用户输入。所述一个或多个参数值为所述一个或多个etl模式中每个模式的特性参数值。在一种实施方式中,所述一个或多个参数可以为映射参数、会话参数和会话连接信息中的至少一个。在一种实施方式中,所述主数据源相关元数据提供作为etl模式所需元数据的载入源的必要数据。举例而言,所述主数据源的元数据可以为结构化查询语言(sql)脚本、范例文件、无格式文件等形式的数据。在一种实施方式中,所述次数据源相关元数据提供可作为etl模式所需元数据的载入源的必要数据。举例而言,所述次数据源的元数据可以为sql脚本、范例文件、无格式文件等形式的数据。

在框体307中,代码生成装置107对一个或多个etl映射进行自动识别。在一种实施方式中,由处理器109自动识别出一个或多个从主数据源至次数据源etl映射。所述一个或多个etl映射可包括,但不限于,映射操作、描述变更、关键指标、来源信息、目标信息以及预定义业务规则。如果所识别出的一个或多个etl映射正确,用户即保留该自动识别出的一个或多个etl映射。如果所识别出的一个或多个etl映射不正确,用户则利用用户界面111对该一个或多个etl映射进行编辑,以提供正确的一个或多个etl映射。

在框体309中,代码生成装置107自动生成etl代码。在一种实施方式中,由处理器109自动生成与所识别出的一个或多个从主数据源至次数据源etl映射中的每个etl映射相对应的etl代码。所生成的etl代码包括与 所述一个或多个etl模式中每个模式相对应的会话代码、工作流程代码以及映射代码。所述会话代码与所述etl模式的待建立连接的相关连接信息以及其他相关运行时间特性相关联。所述工作流程代码与一个或多个会话以及该会话内的任务相关联。所述会话创建并运行于所述工作流程代码中。所述映射代码与所述一个或多个从主数据源至次数据源etl映射的关联信息相关联。

图4为用于实施符合本发明实施方式的例示计算机系统框图。

在一种实施方式中,代码生成装置400用于自动生成抽取-转换-加载(etl)代码。代码生成装置400可包括中央处理单元(“cpu”或“处理器”)402。处理器402可包括至少一个用于执行程序组件的数据处理器,所述程序组件用于执行用户或系统生成的请求。用户可包括个人,使用设备(例如,本发明所述的设备)的个人,或此类设备本身。处理器402可包括集成系统(总线)控制器、存储器管理控制单元、浮点单元、图形处理单元、数字信号处理单元等专用处理单元。

处理器402可配置为通过输入/输出(i/o)接口401与一个或多个i/o设备(411和412)通信。i/o接口401可采用通信协议/方法,例如但不限于,音频、模拟、数字、立体声、ieee-1394、串行总线、通用串行总线(usb)、红外、ps/2、bnc、同轴、组件、复合、数字视觉接口(dvi)、高清晰度多媒体接口(hdmi)、射频(rf)天线、s-视频,视频图形阵列(vga)、ieee802.n/b/g/n/x、蓝牙、蜂窝(例如码分多址(cdma)、高速分组接入(hspa+)、移动通信全球系统(gsm)、长期演进(lte)、wimax等)等。

通过i/o接口401,代码生成装置400可与一个或多个i/o设备(411和412)通信。

在一些实施方式中,处理器402可配置为通过网络接口403与通信网络409通信。网络接口403可与通信网络409通信。网络接口403可采用连接协议,包括但不限于,直接连接、以太网(例如双绞线10/100/1000baset)、传输控制协议/网际协议(tcp/ip)、令牌环、ieee802.11a/b/g/n/x等。通过网络接口403以及通信网络409,代码生成装置400可与一个或多个用户设备 410a,……,410n通信。通信网络409可实施为内部网路或局域网(lan)以及所述组织结构内的此类网络等不同类型网络中的一种。通信网络409既可以为专用网络,也可以为共享网络,所述共享网络表示使用超文本传输协议(http)、传输控制协议/网际协议(tcp/ip)、无线应用协议(wap)等各种协议相互通信的上述不同类型网络的联合。此外,通信网络409可包括路由器、桥接器、服务器、计算设备、存储设备等各种网络设备。所述一个或多个用户设备410a,……,410n可包括,但不限于,个人计算机,以及蜂窝电话、智能电话、平板电脑、电子书阅读器、膝上型计算机、笔记本电脑、游戏机等移动设备。

在一些实施方式中,处理器402可配置为通过存储接口404与存储器405(例如图4中未示出的ram、rom等)通信。存储接口404可采用串行高级技术连接(sata)、集成驱动电子设备(ide)、ieee1394、通用串行总线(usb)、光纤通道、小型计算机系统接口(scsi)等连接协议连接至存储器405,该存储设备包括,但不限于,存储驱动器、可移除磁盘驱动器等。所述存储驱动器还可包括磁鼓、磁盘驱动器、磁光驱动器、光盘驱动器、独立磁盘冗余阵列(raid)、固态存储设备、固态驱动器等。

存储器405可存储一系列程序或数据库组件,包括但不限于,用户界面应用程序406、操作系统407、网页浏览器408等。在一些实施方式中,代码生成装置400可存储用户/应用程序数据406(例如本发明中所述数据、变量、记录等)。此类数据库可以为甲骨文(oracle)或赛贝斯(sybase)等容错、关系、可扩展、安全数据库。

操作系统407可促进代码生成装置400的资源管理和运行。操作系统例如包括,但不限于,苹果macintoshosx、unix、类unix系统套件(例如伯克利软件套件(bsd)、freebsd、netbsd、openbsd等)、linux套件(如redhat、ubuntu、kubuntu等)、国际商业机器股份有限公司(ibm)os/2、微软windows(xp,vista/7/8等)、苹果ios、谷歌(google)安卓、黑莓操作系统等。用户界面406可利用文本或图形工具促进程序组件的显示、执行、互动、操控或操作。例如,用户界面可在以可操作方式连接至代码生成装置 400的显示系统上提供光标、图标、复选框、菜单、滚动条、窗口、窗口部件等计算机交互界面元件。此外,还可采用图形用户界面(gui),包括但不限于,苹果macintosh操作系统的aqua、ibmos/2、微软windows(例如aero、metro等)、unixx-windows、网页界面库(例如activex、java、javascript、ajax、html、adobeflash等)等。

在一些实施方式中,代码生成装置400可执行网页浏览器408存储的程序组件。所述网页浏览器可以为微软网络探路者(internetexplorer)、谷歌浏览器(chrome)、谋智火狐(mozillafirefox)、苹果浏览器(safari)等超文本浏览应用程序。此外,还可通过https(安全超文本传输协议)、安全套接字层(ssl)、安全传输层(tls)等实现安全网页浏览。网页浏览器可使用ajax、dhtml、adobeflash、javascript、java、应用程序编程接口(api)等工具。在一些实施方式中,代码生成装置400可执行邮件服务器存储的程序组件。所述邮件服务器可以为微软exchange等因特网邮件服务器。所述邮件服务器可使用动态服务器网页(asp)、activex、美国国家标准学会(ansi)c++/c#、microsoft.net、cgi脚本、java、javascript、perl、php、python、webobjects等工具。所述邮件服务器还可使用因特网信息访问协议(imap)、邮件应用程序编程接口(mapi)、微软exchange、邮局协议(pop)、简单邮件传输协议(smtp)等通信协议。在一些实施方式中,代码生成装置400可执行邮件客户端存储的程序组件。所述邮件客户端可为苹果mail、微软entourage、微软outlook、谋智thunderbird等邮件查看程序。

此外,一个或多个计算机可读存储介质可用于实施符合本发明的实施方式。计算机可读存储介质是指可对处理器可读取的信息或数据进行存储的任何类型的物理存储器。因此,计算机可读存储介质可对由一个或多个处理器执行的指令进行存储,包括用于使处理器执行根据本申请实施方式的步骤或阶段的指令。“计算机可读介质”一词应理解为包括有形物件且不包括载波及瞬态信号,即为非临时性介质,例如随机存取存储器(ram)、只读存储器(rom)、易失性存储器、非易失性存储器、硬盘驱动器、只读光盘存储器(cd-rom)、数字视频光盘(dvd)、闪存驱动器、磁盘以及其他任何已知 物理存储介质。

以下,对本发明实施方式的优点进行描述。

在一种实施方式中,本发明提供一种自动生成抽取-转换-加载(etl)代码的方法和装置。

本发明利用基于模式的技术生成etl代码。本发明还提供一种存有一个或多个etl模式的可扩展模式数据库。

本发明提供一种模式编辑器,使用该模式编辑器,用户可创建一个或多个etl模式,并且在所述模式数据库内更新所创建的模式,以用于后续参考。

本发明提供一个特征,其中,所述模式数据库可在组织机构水平上进行定制。

本发明将etl代码开发工作量大大减少了60%,此工作量的减少进一步改善了etl代码开发所涉及的上市时间和成本。

本发明为自动化方案。因此,其所开发的etl代码质量较高,而且所述etl代码中的缺陷数量锐减50%。

本发明改善了etl代码开发所涉及的时间和成本。如此,开发人员可将更多精力投入分析和设计。

描述为具有多个相互间有联系的部件的实施方式并不意味着所有此类部件均为必需部件。相反地,其描述的是,还具有多种可选组件用于实现本发明的各种各样的可能实施方式。

本文中,一旦有对单个设备或物件的描述,则可随即明白的是,所述单个设备/物件可由多于一个的所述设备/物件(无论其之间是否均有协作关系)代替。类似地,本文中一旦有对多于一个的设备或物件(无论其之间是否均有协作关系)的描述,则可随即明白的是,所述多于一个的设备或物件可由单个设备/物件代替,或者所示数量的设备或程序可由不同数量的设备/物件代替。此外,某个设备的功能和/或特征可由一个或多个未明确描述为具有此类功能/特征的其他设备代为实现。因此,本发明的其它实施方式无需包括该设备本身。

本说明书已对一种自动生成抽取-转换-加载(etl)代码的方法和装置进 行了描述。所示步骤用于说明所述例示实施方式,并且应当预想到的是,随着技术的不断发展,特定功能的执行方式也将发生改变。本文所呈现的上述实施例用于说明而非限制目的。此外,为了描述的方便性,本文对各功能构建模块边界的定义为任意性的,只要其上述功能及其关系能够获得适当执行,也可按其他方式定义边界。根据本申请的启示内容,替代方案(包括本申请所述方案的等同方案、扩展方案、变形方案、偏差方案等)对于相关领域技术人员是显而易见的。这些替代方案均落入所公开实施方式的范围和精神内。此外,“包括”、“具有”、“含有”和“包含”等词以及其他类似形式在意义方面旨在同等且为开放式词语,跟随这些词语当中任何一个之后所述的单个或多个事项并不在于对该单个或多个事项的穷举,也不在于仅局限于所列出的该单个或多个事项。还必须注意的是,除非上下文另有明确指示,此处和所附权利要求中所用的单数形式“一”、“一个”和“所述”也包括复数意义。

最后,本说明书所选的行文方式主要在于可读性和教示目的,且可能并不在于细述或限制本发明技术方案。因此,本发明范围并不意在由此《具体实施方式》限制,而是由基于此部分提出申请的任何权利要求所界定。相应地,本发明实施方式的公开内容意在于说明而非限制本发明范围,而且本发明范围如下附权利要求所述。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1