APP下载

基于ETL的异构数据集成框架研究

2020-12-23马竹根林晶于述春李森林

西部论丛 2020年16期
关键词:数据集成数据仓库

马竹根 林晶 于述春 李森林

摘 要:介绍了ETL原理及Kettle的使用方法,以 ETL技术为核心设计了ETL驱动的数据仓库技术的数据集成框架,制定了跨平台数据集成解决方案,利用Kettle工具验证和实现了多源异构数据的集成,简化了数据整合的过程,实现了信息系统间数据共享,能有效地完成特定的数据处理任务。

关键词:数据集成;数据仓库;ETL;Kettle

1引言

数据在当今社会的重要性是毋庸置疑的,通过执行数据分析,几乎任何领域的可用数据都为用户创造了价值并获得竞争优势,数据集成需求变得日益紧迫。数据集成是一个迭代的过程,由来自多个异构源系统的数据合并组成提供数据的统一视图。集成来自多个异构来源的数据以支持分析报告通常被称为数据仓库。为了构建数据仓库,必要的预处理步骤通常被称为提取、转换和加载。ETL(Extract-Transform- Load)即数据抽取、转换和装载的过程,是用于解决多源异构数据集成的一系列过程,是一种多源数据集成的有效方法[1]。Kettle 是一款国外开源的 ETL 工具,能够高效稳定地对数据进行抽取,可以提供面向不同行业的数据集成解决方案[2]。本文设计和实现一个异构数据集成框架,该框架采用数据仓库技术,使用Kettle ETL驱动的方法从多个数据源提取和集成数据。

2 相关技术介绍

ETL 可以将结构化或非结构化的数据进行抽取,然后采用一定的规则进行清洗转换形成符合要求的标准数据,最后将其装载进中心数据库或数据仓库。ETL处理分为3步,分别是:数据抽取、数据清洗和转换、数据装载。数据抽取通常从数据源中提取一部分信息并提供给转换,这些数据源可以由具有不同数据格式和数据结构。数据清洗可以使用各种专门的方法来消除集成多个数据源时的错误,把不合规则的数据进行处理和过滤,包括不完整数据、错误数据、重复数据和缺省值等[3]。数据转换将经过清洗的数据转换到目标模式中,可以在ETL工具的帮助下进行可视化操作的方式实现各种复杂的转换。数据装载主要是将经过转换后的统一格式的数据批量导入到数据仓库中进行存储[4],数据装载可以通过直接连接到数据库来执行。

Kettle是一款国外开源的ETL工具,可以跨平台运行。Kettle包括4个产品:Spoon、Pan、Kitchen、Carte。Spoon 通过图形界面来设计ETL转换过程(Transformation),Pan 可以批量运行由Spoon设计的ETL转换,Kitchen调用作业流程,Carte实现ETL集群处理。 Kettle 的 ETL 过程主要由转换(transformation)和作业(job)两大部分完成[5]。转换是ETL解决方法中最主要的部分,它负责处理抽取、转换和加载各阶段对数据行的操作。转换包括一个或多个步骤,步骤之间通过跳(hop)来连接。作业主要是控制转换或使多个转换按照固有的顺序运行,完成整个工作流的控制。

3 异构数据集成框架

异构数据集成框架由数据源、ETL過程、数据仓库和最终用户层组成,如图1所示。ETL是建立数据仓库的重要的一环,将来自不同源系统的数据传输到其他数据存储系统并适应新的需求,为数据挖掘系统、商务智能软件等决策支持系统产生更加有效的结果提供数据支持。

数据可以有多种来源,如关系数据库、XML文件、文本文件等,这些异构数据源具有一些独特的特征,应该对其进行管理,以便为ETL过程有效地检索数据。ETL将不同来源的数据提取到暂存区,然后数据被转换并加载到数据仓库。要执行这样的过程,可以使用一个开源的ETL工具来处理不同性质的数据源。在识别的数据被提取之后,下一步是改变提取的数据的形式以适应目标数据仓库的结构。转换是对数据执行的一些活动,按照相关的规则将多源异构数据进行格式和结构统一。最后,转换后的数据存储在数据仓库中,供最终用户和最终用户层的应用程序访问。最终用户可以使用各种工具来处理数据,如报表、电子表格和其他图表。

4、基于ETL-Kettle模式的数据集成实现

ETL过程是使用Kettle中的Spoon应用程序来执行的。Spoon是一个用于创建转换和作业的图形界面工具,基于图形化界面操作Kettle进行数据处理,只需按照数据处理的流程配置相应的步骤即可。通过构建多个转换对象来集成数据,创建的各种转换对象应该以正确的顺序执行,因此这些转换对象将被视为作业中的作业项。Spoon应用程序中的作业用于执行所有转换对象,如初始化数据仓库表、从源中提取数据以及将转换后的数据加载到数据仓库中等转换依次执行。下面介绍一种针对多平台的数据加载到数据仓库的解决方案。

整个数据抽取流程包括2个作业和7个转换,总作业如图2所示,抽取数据作业如图3所示。总作业包括一个转换和一个作业,获取表名列表是要获取到数据仓库中要抽取的表名,抽取数据作业包括了数据抽取、清洗、转换的过程。

在对数据表进行汇总时要建立两个日志表,一个用来记录成功或失败的记录,另一个用来分配成功的抽取表以便进行数据清洗、转换等数据处理。为方便起见,我们把需要抽取数据的表命名为基本表,记录成功或失败记录的表命名为历史表,分配清洗转换任务的表命名为清洗表。数据抽取的基本思路是:对基本表进行抽取,如果抽取成功,则将基本表中全部数据记录到历史表中,并标记为“成功”;如果抽取失败,则终止表的提取过程,并将失败的记录在历史记录表中进行记录。数据抽取具体流程如下:

(1)设置表名变量。从上一步获取表名列表的结果中获取记录,将表名设置为变量,方便后续表输入和表输出的使用。(2)统计表中记录数。如果记录数大于0就继续进行下一步,否则就指向“表不存或表中没有数据”步骤,跳过后面的步骤,进入下一个循环。(3)获取PRIMARY_VALUE。获取每个表的主键值并放在一个字段里。(4)设置平台变量。为了区分不同的平台,可以通过语句获取每个平台对应的平台值。(5)抽取基本表。主要分为3步:获取表名、表输入、表输出。如果出现错误,就会停止抽取表并指向“失败新增history”。(6)新增历史表。基本的流程就是获取变量(包括表名变量,主键值)、表输入、增加序列(以序列号作为每条记录的主键)、输出到历史表。(7)新增清洗表。从历史表中获取数据并加入条件判断将数据合理分配给某个清洗服务器,可以使用平均表数量的分配方法,也可以使用固定平台对应固定清洗服务器的方法,还可以使用随机抽取的方法。

5 结语

数据集成是建立数据仓库、进行数据挖掘和决策分析的重要组成部分,KETTLE在多源异构数据集成方面具有易于使用,开发简单的优势。本研究设计了ETL驱动的异构数据集成框架,并制定了多平台数据集成方案,实际完成了数据抽取、转换和加载等过程的数据集成。利用KETTLE能够快速高效地实现多源异构数据集成,形成高质量的数据为后期的数据挖掘与分析奠定数据基础。

参考文献

[1] 徐俊刚,裴莹.数据ETL研究综述[J].计算机科学,2011,38(04):15-20.

[2] 陈亚东,鲜国建,赵瑞雪,刘现武,郭淑敏.基于ETL-KETTLE模式的苹果产业数据整合[J].江苏农业科学,2019,47(10):230-234.

[3] 赵一凡,卞良,丛昕.数据清洗方法研究综述[J].软件导刊,2017,16(12):222-224.

[4] 廉博. 数据仓库中ETL技术的研究与实现[D].沈阳工业大学,2006.

[5] 王军.基于kettle的高职学生行为数据集成研究[J].信息与电脑(理论版),2020,32(03):225-227.

基金项目:湖南省教育厅科学研究项目(16C1276),湖南省怀化学院双一流应用特色学科“控制科学与工程”资助

作者简介:马竹根(1971—),男,讲师,硕士,研究方向为数据库、软件工程。

猜你喜欢

数据集成数据仓库
基于数据仓库的数据倾斜解决方案研究
七大云计算数据仓库
数据仓库系统设计与实现
成本与制造数据集成分析
基于Biztalk的异构医疗信息系统数据集成研究
信息系统集成与数据集成策略研究
XML数据交换技术在中医智能化诊断数据集成中的应用
高校一表通系统建设探究
基于数据集成的水上项目国家队数据库网络管理平台的设计与开发
数据复用在存储数据仓库中的运用