元数据管理方法及装置的制作方法

文档序号:6470971阅读:118来源:国知局

专利名称::元数据管理方法及装置的制作方法
技术领域
:本发明涉及数据仓库技术,尤其涉及元数据管理方法及装置。
背景技术
:凄丈寺居4由取、净争^灸和力口载(ETL,ExtractionTransformationLoading)是才勾建数据仓库的重要一环,用于负责完成数据从数据源向目标数据库转化的过程,是实施数据仓库的重要步骤。图1示出了ETL处理过程示意图,ETL系统按照预先设计好的规则,将不同数据源中的数据抽取到临时中间层后进行清洗、转换和集成,最后加载到目标数据源中,使不同的异构数据源流向统一的目标数据。其中,元数据是描述数据的数据(dataaboutdata),主要是指ETL系统处理的数据对象的物理字段类型、格式、字段之间的映射关系等基本属性。目前,对于ETL元数据的管理,大都采用用户干预的方式,即用户在配置ETL数据处理逻辑规则的同时,还必须人工指定每一步ETL操作(抽取、转换或加载)的输入数据格式和输出数据格式。这种基于用户显式干预的元数据管理方法的智能性较差,操作起来较为繁瑣,不利于推广应用。
发明内容有鉴于此,本发明的目的在于提供一种元数据管理方法及装置,实现元数据管理的自动化,减少用户干预。为达到上述目的,本发明提供的技术方案如下一种元数据管理方法,该方法包括以下步骤A、对于每一步ETL操作,首先获取输入元数据,并将输入元数据转换为ETL系统统一的ETL元数据;B、针对每一个输出字段,根据ETL数据处理逻辑规则对ETL元数据进行调整;C、根据输出数据源类型将调整后的ETL元数据转换为输出元数据,并根据输出元数据在输出数据源中创建输出数据结构。步骤A所述获取元数据的过程包括确定输入数据源类型,根据输入数据源类型获取输入元数据。所述步骤B具体包括当针对输出字段的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系统的智能性和易用性。图1为现有技术中的ETL处理过程示意图;图2为本发明中的ETL元数据管理方法流程图;图3为本发明实施例中的ETL处理过程示意图;图4为本发明中的元数据管理装置结构示意图。具体实施例方式为使本发明的目的、技术方案及优点更加清楚明白,下面参照附图并举实施例,对本发明作进一步详细说明。针对现有技术中所存在的问题,本发明旨在提供一种新的ETL元数据管理方法,使得在ETL处理过程中,用户只需要配置ETL数据处理逻辑规则,而无需关心每一步中间过程数据的存储类型和格式,实现ETL元数据管理的自动化,增加ETL系统的智能性和易用性。图2示出了本发明中的ETL元数据管理方法流程图,包括以下步骤步骤201:对于每一步ETL操作(抽取、转换或加载),首先确定输入数据源类型,然后根据输入数据源类型调用相应方法,获取输入数据的描述信息即输入元数据。步骤202:将获取的输入数据描述信息转换为ETL系统统一的数据描述信息即ETL元数据。步骤203:分析ETL数据处理逻辑规则,对于每一个输出字段,根据该字段的处理过程对ETL元数据进行调整。ETL元数据的调整根据字段处理过程的不同分为以下三种情况如果字段处理过程是字段映射(即直接将该字段的原始值输出),则输出字段的类型与格式与输入保持一致,此时无需对ETL元数据进行调整;如果字段处理过程是算术运算(即将一个或多个字段进行加减乘除等),则输出字段的类型和格式视算术运算的最外层运算结果而定,此时需要根据最外层运算结果调整ETL元数据;如果字段处理过程是函数运算,则输出字段的类型和格式与函数输出的类型和格式一致,此时需要根据函数输出的类型和格式调整ETL元数据。步骤204:确定输出数据源类型,将调整后的ETL元数据转换为输出数据源对应的元数据即输出元数据。步骤205:根据输出元数据,在输出数据源中创建输出数据结构。下面通过一个具体的例子对本发明中的元数据管理方法进行说明。假设ETL任务功能需求为将SQLServer数据库A中表tbl—flux存放的流量信息flux按照app—id进行聚合(即将app—id相同的flux求和),然后存放到Oracle数据库B中,并将表tbl—flux中的app—id参照表tbl_application—map转换为app一name。<table>tableseeoriginaldocumentpage7</column></row><table><table>tableseeoriginaldocumentpage8</column></row><table>表2b表2a示出了tbl—application—map表结构,包括app—id、app_name和app—desc三个字段;表2b示出了表tbl—application—map中的具体凄t据。为了完成上述ETL任务功能需求,用户需要配置的处理规则(即SQL-浯句)如下抽取头见贝'J:select*formtbl—flux;select*formtbl—application—map;聚合规则selectTO_CHAR(sum(flux》asflux,appjd,fromtmp—tbl—fluxgroupbyapp_id;碎争4奐夫见贝寸selecta.flux,b.app—namefromtmp—agg_fluxa,tmp—tbl—application_mapbwherea.app—id=b.app—id。图3示出了上述需求下的ETL处理过程示意图,包括以下步骤步骤301:根据配置的抽取规则,将A.tbl一flux数据抽取到工作空间,在输出数据源Oracle数据库中创建临时表tmp—tbl—flux。所述工作空间是ETL系统用于存放临时数据的存储空间,这里假设是目的数据库B。在此步骤中,数据的存储位置发生了变化,由用户表空间变化到临时表空间,同时数据源类型也发生了变化,由SQLServer变化到Oracle。步骤301具体包括以下步骤步骤301k判断输入数据源(数据库A)的类型。步骤3012:调用SQLServer数据库相应方法,获取tbl—flux表各个字段的类型和格式,即获取输入元数据。步骤3013:将获取的输入元数据转换为ETL系统统一的ETL元数据。由于在抽取过程中只需将A.tbl—flux中的字段抽取出来放到临时空间,属于字段映射,因此无需对ETL元数据进行调整,直接执行步骤3014。步骤3014:判断输出数据源(数据库B)的类型。步骤3015:将ETL元数据转换为Oracle数据库对应的输出元数据。步骤3016:根据输出元数据,在输出数据源Oracle数据库中创建临时表tmp—tbl—flux。其中,临时表是用来存放ETL处理过程中中间数据的临时空间,这些中间数据可能是抽取操作的输出、加载搡作的输入或者转换操作的输入/输出。临时表的命名遵循统一的命名规则,用户可以根据命名规则引用临时表。表3示出了临时表tmp—tbl—flux的结构。其中,SQLServer中的bigint(长整)类型在Oracle中被转换为number(19,0)。<table>tableseeoriginaldocumentpage10</column></row><table>表3步骤302:将A.tbl_application—map数据抽取到工作空间,在输出数据源中创建临时表tmp—tbl—application—map。步骤302的具体操作过程与步骤301—致,这里不再赘述。表4示出了临时表tmp_tbl_application—map的结构。其中,SQLServer中的bigint类型在Oracle中被转换为number(19,0),SQLServer中的varchar在Oracle中^f皮转换为varchar2。<table>tableseeoriginaldocumentpage10</column></row><table>表4步骤303:根据配置的聚合规则,对临时表tmp—tbl—flux中的流量flux按照app—id进行聚合,创建输出临时表tmp—agg—flux。表5a示出了输出临时表tmp—agg—flux的结构;表5b示出了输出临时表tmp—agg—flux中的具体数据。<table>tableseeoriginaldocumentpage10</column></row><table>表5a<table>tableseeoriginaldocumentpage10</column></row><table>表5b在此步骤中,app_id属于字段映射,类型不变;输出字段flux使用了sum()、TO—CHAR()函数,最终转换后的类型为varchar2;id字段净皮丢弃,没有输出。需要说明的是,在步骤303所述的聚合操作中,由于输入(表tmp—tbl—flux)和输出(表tmp—agg—flux)的数据源类型相同,都是Oracle,因此步骤303中就省去了图2中所示的不同数据源之间的元数据转换过程,而只是说明了根据配置的处理规则对输出字段的元数据进行调整的过程。步骤304:参照表tmp—tbl—application—map将表tmp—agg—flux中的app—id转换为app—name。在此步骤中,输出字段flux和app—name都属于字段映射,输出字段flux的类型和格式同tmp—agg—flux中flux;输出字段app—name的类型和才各式同tmp—tbl—application—map中app一name。根据输出字段app_name和flux的描述信息,在数据库B中创建表etl—tbl—flux,并将处理结果存入表etl—tbl—flux中,完成数据在数据库B中的加载。表6a示出了表etl—tbl—flux的结构,表6b示出了表etl—tbl—flux中的具体数据。<table>tableseeoriginaldocumentpage11</column></row><table>表6a<table>tableseeoriginaldocumentpage11</column></row><table>表6b与步骤303类似,在步骤304所述的转换操作中,由于输入和输出的数据源类型相同,都是Oracle,因此步骤304中就省去了不同数据源之间的元数据转换过程,而只是说明了根据配置的处理规则对输出字段的元数据进行调整的过程。通过以上描述可见,在本发明所提供的技术方案中,ETL系统可以自动根据ETL数据处理逻辑规则实现中间数据的存储,ETL中间处理过程对用户来说是透明的,用户无需关心每一步中间过程数据的存储类型和格式,从而减少了用户干预,实现了ETL元数据管理的自动化,提高了ETL系统的智能性和易用性。相应地,本发明还提供了一种元数据管理装置,其结构参见图4所示,包括输入元数据获取模块、元数据调整模块和输出元数据管理模块,其中,输入元数据获取模块针对每一步ETL操作,获取输入元数据,将获取的输入元数据转换为ETL系统统一的ETL元数据,并将转换后的ETL元数据发送给元数据调整模块;元数据调整模块针对每一个输出字段,根据ETL数据处理逻辑规则对ETL元数据进行调整,并将调整后的ETL元数据发送给输出元数据管理模块;输出元数据管理模块根据输出数据源类型将调整后的ETL元数据转换为输出元数据,并根据输出元数据在输出数据源中创建输出数据结构。当针对输出字段的ETL数据处理逻辑规则是字段映射时,所述元数据调整模块无需对ETL元数据进行调整;当针对输出字段的ETL数据处理逻辑规则是算术运算时,所述元数据调整模块根据算术运算的最外层运算结果对ETL元数据进行调整;当针对输出字段的ETL数据处理逻辑规则是函数运算时,所述元数据调整模块根据函数输出的类型和格式对ETL元数据进行调整。需要说明的是,本发明所提供的元数据管理方案不仅适用于ETL系统,也适用于其它系统。以上所述对本发明的目的、技术方案和有益效果进行了进一步的详细说明,所应理解的是,以上所述并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。权利要求1、一种元数据管理方法,其特征在于,该方法包括以下步骤A、对于每一步ETL操作,首先获取输入元数据,并将输入元数据转换为ETL系统统一的ETL元数据;B、针对每一个输出字段,根据ETL数据处理逻辑规则对ETL元数据进行调整;C、根据输出数据源类型将调整后的ETL元数据转换为输出元数据,并根据输出元数据在输出数据源中创建输出数据结构。2、根据权利要求1所述的方法,其特征在于,步骤A所述获取元数据的过程包括确定输入数据源类型,根据输入数据源类型获取输入元数据。3、根据权利要求1或2所述的方法,其特征在于,所述步骤B具体包括当针对输出字段的ETL数据处理逻辑规则是字段映射时,无需对ETL元数据进行调整;当针对输出字段的ETL数据处理逻辑规则是算术运算时,才艮据算术运算的最外层运算结果对ETL元数据进行调整;当针对输出字段的ETL数据处理逻辑规则是函数运算时,根据函数输出的类型和格式对ETL元数据进行调整。4、一种元数据管理装置,其特征在于,包括输入元数据获取模块、元数据调整模块和输出元数据管理模块,其中,输入元数据获取才莫块针对每一步ETL操作,获取输入元数据,将获取的输入元数据转换为ETL系统统一的ETL元数据,并将转换后的ETL元数据发送给元数据调整模块;元数据调整模块针对每一个输出字段,根据ETL数据处理逻辑规则对ETL元数据进行调整,并将调整后的ETL元数据发送给输出元数据管理模块;输出元数据管理模块根据输出数据源类型将调整后的ETL元数据转换为输出元数据,并根据输出元数据在输出数据源中创建输出数据结构。5、根据权利要求4所迷的装置,其特征在于,当针对输出字段的ETL数据处理逻辑规则是字段映射时,所述元数据调整模块无需对ETL元数据进行调整;当针对输出字段的ETL数据处理逻辑规则是算术运算时,所述元数据调整模块根据算术运算的最外层运算结果对ETL元数据进行调整;当针对输出字段的ETL数据处理逻辑规则是函数运算时,所述元数据调整模块根据函数输出的类型和格式对ETL元数据进行调整。全文摘要本发明公开了一种元数据管理方法及装置。所述方法包括以下步骤A.对于每一步ETL操作,首先获取输入元数据,并将输入元数据转换为ETL系统统一的ETL元数据;B.针对每一个输出字段,根据ETL数据处理逻辑规则对ETL元数据进行调整;C.根据输出数据源类型将调整后的ETL元数据转换为输出元数据,并根据输出元数据在输出数据源中创建输出数据结构。本发明能够实现元数据管理的自动化,减少用户干预。文档编号G06F17/30GK101364240SQ200810224428公开日2009年2月11日申请日期2008年10月14日优先权日2008年10月14日发明者朱海涛,杨静涛申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1