一种基于元数据的ETL任务批量生成方法技术

技术编号:24168779 阅读:18 留言:0更新日期:2020-05-16 02:16
本发明专利技术公开了一种基于元数据的ETL任务批量生成方法,属于数据仓库领域,此方法适用于任意有元数据存储的ETL工具,ETL就是将数据从数据源抽取出来,经过转换和清洗,最终加载到目标的过程,通过分析ETL工具元数据模型,可以建立基于ETL工具自身数据处理逻辑的ETL通用模板,进而基于数据库元数据和ETL通用模板可以批量的创建ETL任务。本发明专利技术可极大的提高ETL的开发效率,可以适用于多种ETL工具,一旦模板制定完毕后,ETL任务不需要单独开发,通过批量生成即可,单个ETL任务和多个ETL任务的工作开发用时几乎相当,而且批量生成的任务都是基于模版标准化、统一规范的ETL任务,这样就规范了ETL任务标准、提高了ETL任务的开发效率、缩短了数据仓库的建设周期。

A batch generation method of ETL tasks based on Metadata

【技术实现步骤摘要】
一种基于元数据的ETL任务批量生成方法
本专利技术属于数据仓库
,尤其涉及一种基于元数据的ETL任务批量生成方法。
技术介绍
随着企业信息化不断的完善,企业的数据逐步沉淀到各个信息化系统中,形成一个个数据孤岛,无法将整个企业的数据进行全面的分析,为了发挥企业数据的真实价值,提高企业的信息化水平,大部分企业会选择构建企业的数据仓库并提供商业智能(BI)系统辅助企业运营决策。在整个数据仓库的建设过程中,数据的获取和计算工作(ETL)往往占据了一半以上的工作量,是数据仓库建设过程中的基础和核心工作。数据仓库架构如图5所示。目前企业内部主流的ETL工具有Powercenter、Datastage和开源的Kettle等工具,工具本身无法提供灵活的、可定义的批量开发的功能,另外这些ETL工具一般都是专业的ETL开发工程师逐个任务开发,这个过程一般无法保障开发的ETL任务规范化、标准化,而且开发效率较低。
技术实现思路
本专利技术所要解决的技术问题是针对
技术介绍
的不足提供一种基于元数据的ETL任务批量生成方法,用于任意有元数据存储的ETL工具,ETL就是将数据从数据源抽取出来,经过转换和清洗,最终加载到目标的过程,通过分析ETL工具元数据模型,可以建立基于ETL工具自身数据处理逻辑的ETL通用模板,进而基于数据库元数据和ETL通用模板可以批量的创建ETL任务。本专利技术为解决上述技术问题采用以下技术方案:一种基于元数据的ETL任务批量生成方法,具体包含如下步骤:步骤1,创建样本任务:其中,样本任务采用ETL工具根据数据的处理逻辑开发的一个ETL任务,且保存在ETL工具的元数据中,并在元数据中定义了整个数据处理逻辑;步骤2,分析样本任务:分析步骤1创建的样本任务的元数据,找出样本ETL任务中的描述的关键信息;步骤3,制作样本模板:将步骤2提取出的关键信息替换成参数化描述,可使用通过实现一段程序代码批量使用文本替换的方式将参数内容替换成实际的ETL任务的内容;步骤4,建立映射关系:建立数据来源的数据库表与数据写入的数据库表的映射关系,步骤5,批量创建ETL任务,确认好需要同步的源数据表的清单,根据实际的数据需求来确定哪些表需要同步,可是一个数据库中的所有表,通过实现一段程序来实现:根据源数据表清单循环获取源数据库中对应表的元数据和目标数据库中表的元数据,根据获取到的元数据内容替换掉模板,步骤3制作的样本模板中的参数化描述为实际内容,然后输出文件成对应的ETL工具的ETL任务。作为本专利技术一种基于元数据的ETL任务批量生成方法的进一步优选方案,所述步骤2具体如下:用文本工具打开ETL工具产生的任务文档即步骤1产生的ETL样本任务,其结构为XML结构描述,分别找出样本任务元数据中描述源数据、转换和目标数据的元数据内容并分析其结构。作为本专利技术一种基于元数据的ETL任务批量生成方法的进一步优选方案,在步骤2中,关键信息包括源数据连接串、目标数据连接串、源表和目标表的数据结构、源表字段和目标表字段的映射关系。作为本专利技术一种基于元数据的ETL任务批量生成方法的进一步优选方案,在步骤3中,参数化描述包含#sourceConnection#、#sourceTableName#。作为本专利技术一种基于元数据的ETL任务批量生成方法的进一步优选方案,在步骤4中,数据仓库获取源数据是在缓冲区或者操作型数据存储区ODS区创建和源数据结构相同的目标表,并且目标表的命名也是有规范:数据仓库分区标识_数据源标识_源表名,通过目标表命名规范建立起源表和目标表的映射关系。有益效果本专利技术采用以上技术方案与现有技术相比,具有以下技术效果:1、本专利技术是一种较为通用的方法,不局限某一种ETL工具,适用于各种可以用元数据描述的ETL工具,可以使用多种方式(编程语言)实现;2、本专利技术解决了在数据仓库建设的过程中如何规范化、标准化ETL开发的问题,通过将ETL开发规范预置到模版中,统一生成规范的ETL任务,提高了ETL开发工作的质量;3、本专利技术解决了在数据仓库建设过程成百上千个ETL开发任务的开发效率问题,通过将ETL转化逻辑定义到模板中,通过批量的生成ETL任务,提高了ETL开发工作的效率;4、本专利技术可极大的提高ETL的开发效率,可以适用于多种ETL工具,一旦模板制定完毕后,ETL任务不需要单独开发,通过批量生成即可,单个ETL任务和多个ETL任务的工作开发用时几乎相当,而且批量生成的任务都是基于模版标准化、统一规范的ETL任务,这样就规范了ETL任务标准、提高了ETL任务的开发效率、缩短了数据仓库的建设周期。附图说明图1是本专利技术将数据从数据源抽取出来加载到目标的过程示意图;图2是本专利技术基于元数据的ETL任务生成方法示意图;图3是本专利技术样例ETL任务示意图;图4是本专利技术模板内容示例图;图5是数据仓库架构示意图;图6是本专利技术程序实现逻辑流程。具体实施方式下面结合附图对本专利技术的技术方案做进一步的详细说明:下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。一种基于元数据的ETL任务批量生成方法:ETL就是将数据从数据源抽取出来,经过转换和清洗,最终加载到目标的过程,如下图1所示。基于元数据的ETL任务生成方法步骤如图2所示:方法步骤1、创建样本任务样本一般是用ETL工具根据某一数据的处理逻辑(如抽取A表数据到相同结构的B表中)开发的一个ETL任务,它保存在ETL工具的元数据中,并在元数据中定义了整个数据处理逻辑,如表1所示。表1样例ETL任务结构如图3所示。2、分析样本任务元数据,找出样本ETL任务(步骤1)中的描述的关键信息一般的分析过程是首先用文本工具(也可以用其他的工具)打开ETL工具产生的任务文档(步骤1产生的etl样本任务),其结构一般为XML结构(主流的Powercenter、Datastage、Kettle等ETL工具都是XML描述)描述,分别找出样本任务元数据中描述源数据、转换和目标数据的元数据内容并分析其结构(结构主要包括:源数据连接串、目标数据连接串、源表和目标表的数据结构、源表字段和目标表字段的映射关系等);3、制作样本模板提取出关键的内容,这部分内容一般都是需要替换成参数化描述(如:##参数名##),后续可以使用工具用文本替换的方式将参数内容替换成实际的ETL任务的内容。模板内容示例,如图4所示。4、建立源表与目标表映射关系:建立源表(数据来源的数据库表)与目标表(数据写入的数据库表)映射关系,数据仓库获取源数据一般是在缓冲区本文档来自技高网...

【技术保护点】
1.一种基于元数据的ETL任务批量生成方法,其特征在于:具体包含如下步骤:/n步骤1,创建样本任务:其中,样本任务采用ETL工具根据数据的处理逻辑开发的一个ETL任务,且保存在ETL工具的元数据中,并在元数据中定义了整个数据处理逻辑;/n步骤2,分析样本任务:分析步骤1创建的样本任务的元数据,找出样本ETL任务中的描述的关键信息;/n步骤3,制作样本模板:将步骤2提取出的关键信息替换成参数化描述,可使用通过实现一段程序代码批量使用文本替换的方式将参数内容替换成实际的ETL任务的内容;/n步骤4,建立映射关系:建立数据来源的数据库表与数据写入的数据库表的映射关系,/n步骤5,批量创建ETL任务,确认好需要同步的源数据表的清单,根据实际的数据需求来确定哪些表需要同步,可是一个数据库中的所有表,通过实现一段程序来实现:根据源数据表清单循环获取源数据库中对应表的元数据和目标数据库中表的元数据,根据获取到的元数据内容替换掉模板,步骤3制作的样本模板中的参数化描述为实际内容,然后输出文件成对应的ETL工具的ETL任务。/n

【技术特征摘要】
1.一种基于元数据的ETL任务批量生成方法,其特征在于:具体包含如下步骤:
步骤1,创建样本任务:其中,样本任务采用ETL工具根据数据的处理逻辑开发的一个ETL任务,且保存在ETL工具的元数据中,并在元数据中定义了整个数据处理逻辑;
步骤2,分析样本任务:分析步骤1创建的样本任务的元数据,找出样本ETL任务中的描述的关键信息;
步骤3,制作样本模板:将步骤2提取出的关键信息替换成参数化描述,可使用通过实现一段程序代码批量使用文本替换的方式将参数内容替换成实际的ETL任务的内容;
步骤4,建立映射关系:建立数据来源的数据库表与数据写入的数据库表的映射关系,
步骤5,批量创建ETL任务,确认好需要同步的源数据表的清单,根据实际的数据需求来确定哪些表需要同步,可是一个数据库中的所有表,通过实现一段程序来实现:根据源数据表清单循环获取源数据库中对应表的元数据和目标数据库中表的元数据,根据获取到的元数据内容替换掉模板,步骤3制作的样本模板中的参数化描述为实际内容,然后输出文件成对应的ETL工具的ETL任务。


2.根据权利要求1所述的一种基于元数据的ETL...

【专利技术属性】
技术研发人员:陈旋王冲郝大松
申请(专利权)人:江苏艾佳家居用品有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1