一种基于sca的etl架构管理方法

文档序号:8512594阅读:550来源:国知局
一种基于sca的etl架构管理方法
【技术领域】
[0001]本发明针对ETL开发周期瓶颈的问题,研宄、设计和实现了一个基于SCA的ETL架构,该架构能够复用已有的ETL工具,已有的组件功能,同时提高定制开发组件的复用性。
【背景技术】
[0002]ETL是数据抽取、转换和装载(Extract,Transformat1n, Loading)的英文简称,是数据仓库获取高质量数据的关键环节,是对分散在各业务系统中的现有数据进行提取、转换、清洗和加载的过程,使这些数据成为商业智能系统需要的有用数据。ETL是构建数据仓库的第一步,也是构建数据仓库最重要的步骤。在联合实验室所开发的数据仓库项目中,ETL部分是耗费时间最多的阶段,所使用的ETL工具为微软的SSIS,在开发之前要先学习该平台下的大量控件的使用规范和使用场景以及使用方式,还有其平台部署时的移植问题,这和熟悉的编程语言,如Java,C#,SQL等虽有一定的交集,但较少,使用该平台则需要学习大量的该平台的相关新知识,所以一个能够独立于编程语言和开发平台,能够让开发者根据自己熟悉的编程语言来实现ETL开发的ETL框架是有需求和意义的。在所开发的项目中,ETL部分是复杂的,其中有着大量相同的过程,以及相似的流程,也就是在多个项目中我们做了大量的重复工作,这也是造成ETL部分耗时最多的一个原因。故对于一个能够降低ETL开发复杂度,减少ETL开发周期的,复用性和扩展性良好的ETL框架有着迫切的需求。

【发明内容】

[0003]本发明的目的是提供一种基于SCA的ETL架构的组织和管理策略。
[0004]为了达到上述目的,本发明的技术方案是提供了一种基于SCA的ETL架构管理方法,其特征在于,包括以下步骤:
[0005]步骤1、对元数据信息的访问,和存储元数据信息的存储介质进行交互;
[0006]步骤2、解决不同数据源之间的交互,提供多源支持,包括以下步骤:
[0007]步骤2.1、对数据格式良好的文本数据源直接导入到对应的表中;
[0008]步骤2.2、把基于文本的数据源和基于关系数据库的数据源都看成是统一的数据源DataStore,一个数据源DataStore包含一到多个数据模式Schema,每个数据集合Schema包含多个一到多个数据表Table,每个数据表Table包含一到多个数据列Column ;
[0009]步骤2.3、当要在不同的数据源之间进行数据读写操作时,提供足够的信息给数据源DataStore,能够找到对应的DataContext、数据模式Schema、数据表Table的对应实现类,然后在程序级别则是Column接口的数据介入到Column接口中,最后写入到对应的物理存储介质上;
[0010]步骤3、处理各种各样的数据质量问题,对多源异构下的数据源进行清洗与转换操作,包括数据模式级别和数据实例级别;
[0011]步骤4、完成维度建模过程,把加载到数据仓库中的数据最终转化为用户感兴趣的服务。
[0012]优选地,所述步骤I包括:
[0013]步骤1.1、读写元数据,包括对不同的元数据存储介质的访问;
[0014]步骤1.2、实现解析输入参数的功能,处理不同的业务逻辑所需要特定功能。
[0015]优选地,所述步骤3包括:
[0016]步骤3.1、单源模式级的数据质量问题的处理,找到从源到目的的映射规则,做一些简单的转换即可;
[0017]步骤3.2、多源模式下,把数据从一个值转成另一个值,这里面包含了数据一个抽象对象和一个转换抽象动作,由此抽象出来三个接口,分别对应InputRow,InputCoIumn>Transformer, Transformer的对象是具体的列,所以需要两个接口来对应抽象的数据,而Transformer中定义了两个方法,一个是用来获取输出列的getOutputColumn,另一个是用来实现转换的transform方法,InputRow中包含多个InputColumn,InputColumn定义为泛型结构,因为不确定传入的数据到底是什么类型的,有可能是从数据源中导入进来的原始数据,也可能是经过了 Transformer之后转换的数据类型。
[0018]优选地,所述步骤4包括:
[0019]步骤4.1、生成满足需求的维度表,维度表分为三种:第一种是不发生变化的维度表,第二种是需要记录历史变化的维度表,第三种则是不记录历史变化的维度表;
[0020]步骤4.2、处理事实表查找代理键的问题,在SCA组件中,调用对应的数据库函数和存储过程,从SCA的装配模型的角度看,关系数据库是一个提供服务的外部应用,SCA组件只需按照数据库的规范来进行调用即可。
[0021]本发明提供了一种基于SCA的ETL架构方法和管理策略,其特点为复用当前已有的满足ETL需求的组件和系统,提高开发的ETL组件的复用性和扩展性,在结合SCA在粗粒度、平台无关、松耦合等优良特性的基础上提出一个基于SCA的ETL框架方法,达到简化ETL开发周期和复杂度的目的。
【具体实施方式】
[0022]为使本发明更明显易懂,兹以优选实施例作详细说明如下。
[0023]本发明的技术方案提供了一种基于SCA的ETL架构管理方法,本发明能针对在所开发的项目中,ETL部分是复杂的,在多个项目中我们做了大量的重复工作,造成ETL部分耗时最多的问题,提供一种基于SCA的ETL架构方法,降低ETL开发复杂度,减少ETL开发周期的,复用性和扩展性良好的ETL框架,其步骤为:
[0024]步骤1、对元数据信息的访问,和文本文件,关系数据库等存储元数据信息的存储介质进行交互,该步骤包括:
[0025]步骤1.1、读写元数据,包括对不同的元数据存储介质的访问;
[0026]步骤1.2、实现解析输入参数的功能,处理不同的业务逻辑所需要特定功能。
[0027]步骤2、解决不同数据源之间的交互,提供多源支持。该步骤包括:
[0028]步骤2.1、对数据格式良好的文本数据源直接导入到对应的表中,但是现实世界是一般不能保证文本数据源的数据质量,所以通常的做法是先把文本数据导入到内存中,通过一系列的校验,再从内存导入到关系数据库中。
[0029]步骤2.2、把Excel文件,CSV文件等基于文本的数据源和基于关系数据库的数据源都看成是统一的数据源DataStore,一个DataStore包含一到多个Schema,每个Schema包含多个一到多个Table,每个Table包含一到多个Column。
[0030]步骤2.3、当要在不同的数据源之间进行数据读写操作时,可以不用业务逻辑阶段去考虑这种异构数据源之间的差异所带来的影响,而只需要提供足够的信息给DataStore,就能够找到对应DataContext,Schema, Table的对应实现类,然后在程序级别则是Column接口的数据介入到Column接口中,最后写入到对应的物理存储介质上。
[0031]步骤3、处理各种各样的数据质量问题,对多源异构下的数据源进行清洗与转换操作,包括数据模式级别和数据实例级别,该步骤包括:
[0032]步骤3.1、单源模式级的数据质量问题的处理,找到从源到目的的映射规则,做一些简单的转换即可。
[0033]步骤3.2、多源模式下,把数据从一个值转成另一个值,这里面包含了数据一个抽象对象和一个转换抽象动作,由此抽象出来三个接口,分别对应InputRow,InputColumn,Transformer。程序中Transfo
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1