面向企业级数据中心的分布式ETL研究与设计

2018-01-17 09:09翁业林周泓侯兵
软件工程 2018年12期
关键词:大数据信息技术

翁业林 周泓 侯兵

摘 要:随着信息技术的不断发展与成熟,数据中心建设是值得我们探讨的课题。本文从大数据时代ETL所面临的挑战进行分析,提出解决问题的思路和措施,研究和设计了企业级数据中心的分布式ETL方案,并就ETL关键技术、Data Vault混合数据建模、异常处理及保障进行了探讨。

关键词:信息技术;大数据;ETL;Data Vault

中图分类号:TP311.1 文献标识码:A

Abstract:With the continuous development and maturity of information technology,data center construction is one of the topics worth discussing.This paper analyses the challenges faced by ETL in the era of big data,puts forward the ideas and measures to solve these problems,studies and designs the distributed ETL scheme of enterprise data center,and discusses the key technologies of ETL,data Vault mixed data modeling,exception handling and guarantees.

Keywords:information technology;big data;ETL;Data Vault

1 引言(Introduction)

企业在信息化的过程中积累了大量的数据[1],这些数据已成为了企业的财富,也是企业的一种重要战略资源。随着企业对数据的价值越来越敏感和重视,“洞察”数据,分析数据背后的“内涵”将有效地帮助企业在激烈的市场竞争环境中占据优势。然而由于历史、现实等种种原因,企业的数据通常是分布在若干个独立的信息系统中,数据的类型繁多,且缺少统一的接口,数据结构存在巨大差异。合理地集成这些相互关联的分布式异构数据源,无视不同管理系统中的数据差异,以透明的方式访问这些数据,从而充分挖掘大数据价值,是各个企业急需解决的问题。为此人们提出了ETL的概念。ETL是数据抽取、转换和装载(Extract、Transformation、Loading)的英文简称,是数据仓库获取高质量数据的关键环节。通过ETL技术实现对分布在各业务系统的不同种类和形式数据进行抽取、转换、清洗和加载[2],以供后续的分析处理环节使用。企业级数据中心每天创建的数据量呈现爆炸性的增长,如此庞大数据量的采集、存储、管理、数据分析与挖掘是面临的非常严峻的问题[3]。数据中心管理人员为实现数据中心高效性一直在探索提高资源的利用率的方法;硬件的更新速度是大數据发展的基石,但效果往往不甚理想;传统ETL面临复杂数据、海量数据、实时性、混搭架构等方面的挑战[4]。本文基于大规模并行处理(Massively Parallel Processing,简称MPP)、分布式系统基础架构HADOOP,提出了面向企业级数据中心的分布式ETL的设计,从而满足企业级数据中心数据处理实时性要求,建立统一、可视化管控的数据处理平台;搭建数据处理与交换、实时性的服务环境;实现了统一任务调度机制,加强海量数据处理及交换能力。

2 分布式ETL技术分析(Analysis of distributed

ETL technology)

面向企业级数据中心的分布式ETL的设计主要基于MPP、HADOOP等。

2.1 MPP与Hadoop

大规模并行处理(Massively Parallel Processing,简称MPP) 适合替代现有关系数据机构下的大数据处理,具有较高的效率;在非共享数据库集群系统中,集群中的各个节点分别具有相互独立的内存系统和外存储系统,根据数据库模型和应用特点将业务数据划分到不同的节点上,数据节点间通过商业通用网络或专用网络互相连接,彼此协同计算,形成一个整体为用户提供数据库服务。非共享数据库集群系统具有完备的可伸缩性、高可用、高性能、性价比高、资源共享等优势[5]。MPP是将任务分散到多个服务器和节点上并行执行,集群中各个节点在计算完成后,主节点将各节点负责部分的结果汇总形成最终的结果。MPP还适合多维度数据自助分析、数据集市等。

Apache基金会所开发的分布式系统基础架构Hadoop最核心的设计是分布式文件系统(Hadoop Distributed File System,简称HDFS)和编程模型MapReduce;其中HDFS为存储PB级以上的数据提供了基础,MapReduce为大数据的处理提供了方法。在处理非结构化和半结构化数据上Hadoop具备独特的优势,尤其适合PB级以上数据的批处理等,如大数据的存储查询、批量数据ETL、日志、文本等非机构化的数据分析等。

本文的研究使用MPPDB+Hadoop,满足结构化、半结构化和非结构化数据的高效处理需求;用MPP处理海量的、高质量的结构化数据,同时为应用提供丰富的SQL和事务支持能力;半结构化、非结构化数据处理则由Hadoop实现。

2.2 ETL关键技术

本文设计的面向企业级数据中心的分布式ETL平台如图1所示,主要包括一个主节点和多个子节点。主节点接收提交的ETL任务并进行任务调度分配到各个子节点,监控各个子节点中的任务执行状态反馈给用户;子节点执行从主节点接收到ETL任务,从不同的数据源中开始抽取数据并传输到平台中,在平台中经过清洗、转换后传输并装载到数据仓库。

数据抽取一般有全量抽取、增量抽取两种方式。全量抽取就是将数据源中的数据原封不动地从数据库中抽取出来加载到数据仓库中,类似于数据迁移或数据复制;而增量抽取只抽取自上次抽取以来数据库中要抽取的表中新增或修改的数据[6]。建立数据仓库前期一般采用全量抽取方式将来自不同业务系统的数据库中的数据抽取至数据仓库。全量抽取完成后,采用增量抽取方式抽取每天产生或变化的数据。增量抽取捕获变化数据主要有触发器、时间戳、全表对比、日志表等方式[7]。此外,企业的多个业务系统采用的数据库可能来自不同厂商,这需要将这多个数据库集成起来,以满足能从不同数据库中抽取数据的需求。因此,数据集成主要面临数据源异构问题,所以在设计ETL处理平台时要考虑数据源的通用性和扩展性,本文在实现ETL处理平台中尽可能地支持常用的关系型数据库和数据文件。

企业在构建数据仓库的过程中需要建立元数据,所谓元数据是指管理数据的数据,具有解释数据意思的目的[8]。数据没有统一的规范,以至于企业无从汇总数据。在企业建立了元数据之后,需要对业务系统中的数据抽取,并将其转换成标准的规划化数据。数据转换就是用来解决如何将非规范化的数据转换成规范化的数据的问题[9]。

数据加载的任务主要往数据仓库中添加数据,完成数据仓库的数据准备。数据加载添加的数据来自于前一个过程数据转换。

2.3 利用Data Vault混合数据建模

Data Vault(简称DV)是一组有连接关系的规范化的表的集合,DV模型主要用于企业级的数据仓库建模,具备面向细节、可溯源等特征,DV模型架构如图2所示。Data Vault建模是一种数据库建模技术,可提供源自多个源的数据的长期历史存储。一个DV存储事实或“所有数据、所有时间”的单个版本。其灵活、可扩展、一致且适应性强的设计涵盖了第三范式(3NF)和星型模型(star schema)的最佳方面。

通过DV中的业务主键和描述性属性之间的业务主键关联,DV可以解决环境变化的问题。将这些主键设置为数据仓库的结构主干,所有关联的数据都可以围绕它们进行组织。这些枢纽表(业务键)、连接表(关联)和SAT(描述性属性)产生适应性很强的数据结构,同时保持强大的数据完整性。特定的链接就像突触(向相反方向的向量),只要业务关系能够根据需要转换数据模型而自动进行更改而不影响现有的数据结构,就可以创建或删除它们。

Data Vault模型构建后,就可以通过ETL构建数据集成过程(即从源系统将数据填充到目标系统中)。构建面向全行业、标准化数据处理中心,为用户提供快速、安全的企业级别的大数据处理解决方案,为各企业用户在更短时间内收集、处理和发送更多精准的数据,而且所需要的资源和成本更低。

3 面向企业级数据中心的分布式ETL架构 (Distributed ETL architecture for enterprise data center)

面向企业级数据中心的分布式ETL解决的具体措施即建立数据处理和交换平台。集中建设数据处理与交换平台,并制定各系统采集的接口标准;加强实时流处理能力,形成海量数据批处理与实时处理、分析并存的能力;建立数据中心统一调度机制,覆盖ETL及数据分发企业级应用;提供流程及任务调度可视化操作及监控界面。面向企业级数据中心的分布式ETL架构如图3所示。

3.1 统一采集

面向企業级数据中心的分布式ETL架构对数据同意采集,提供多接口、多源采集方式,实现多域数据的融合,为适应企业级数据中心多类型数据源采集的需要,平台需支持多种类型的数据采集方式,包括:API接口、JDBC/ODBC接口、消息队列(MQ)接口、FTP/SFTP接口、第三方工具集成等。

3.2 统一作业

面向企业级数据中心的分布式ETL架构统一作业,提供丰富的图形化、定制化开放能力。统一作业流程如图4所示。支持各种复杂作业关系配置,系统通过图形化界面配置从前端快速简明的配置作业任务,提供对外开放能力,支持不同厂商开发人员的开发定制能力,提供作业执行流程监控。支持定时、常驻任务,灵活的定义时间格式;支持数据触发,作业关系管理;方便华为、思特奇等多厂商开发人员的使用。

采用“内存不落地方式”任意数据交换,对源数据库和目标数据库进行灵活的配置,使得一个相同的源数据可以交换至多个异构数据库。交换中心对数据的处理采用不落地分布方式,通过多进程管道实现数据的并行读取,这样数据的通用转换过程在内存中就可以完成,同时还支持转码、加密等操作。经过分发路由转换成适应各种类型数据库的多路数据,且分发转换支持多种数据格式转换,最后并行加载到不同的目标数据库或者写入文件。

3.3 统一调度

面向企业级数据中心的分布式ETL架构实现跨平台间的统一调度,实现了多系统、多用户协同调度。完成多个平台独立调度,以及多个平台间依赖调度。提供独立工作区和用户,各平台可自行管理调度和ETL作业。权限管理,操作人员可设置ETL作业和调度,监控人员只提供查询权限。

建立多触发方式的跨平台灵活调度机制,满足不同的应用场景。时间触发:一次性触发、定时触发、频次触发;循环触发:循环操作,直至job达到失效时间;条件触发:几个前置的job流程的完成进行触发;事件触发:外部数据插入事件触发表,后台根据参数在指定时间将流程调度起来;组合触发:提供同时设置多个触发规则,触发规则间提供与或关系。

3.4 统一管控

面向企业级数据中心的分布式ETL架构具备跨平台统一监控及管理功能。集群监控及分析:提供统一运维界面,支持对集群、平台程序的监控和维护,主要包括主备管理、任务分配、负载均衡等功能;资源监控:提供节点资源监控功能,对各节点的CPU、IO、内存、内核处理速度进行监控、报警。

应用执行监控:提供对后台多种应用的执行情况监控、应用执行效率分析功能,支持多种告警方式与错误反馈,并可对应用的重新运行、继续运行等操作。

3.5 异常处理及保障

异常处理是数据处理中心平台重要的安全机制,通过建立多种异常校验处理机制,保障数据处理与交换的可靠性。

(1)一致性校验异常:数据源总记录数与加载目标库总记录数进行校验,校验结果在指定范围内则两者数据一致,否则一致性校验失败,任务重新执行。

(2)准确性校验异常:数据读入内存中进行数据准确性校验,校验不通过的记录写入错误文件(最大写入记录数),并通知运维人员处理,同时将正确的记录正常加载到目标库。

(3)网络中断等外部原因造成的异常:平台设定自动处理时间和次数,超限后,发送预警信息由外部人员手工干预。

4 结论(Conclusion)

面向企业级数据中心的分布式ETL系统通过Data Vault将大数据技术和建模、方法、架构和实践融合在一起。随着数据量的不断增大,数据可以很容易地融入到data vault数据模型中,消除星型模式设计的清洁规范,data vault通过减少耗尽和维持影响大数据系统潜力的相关插入,从而在巨大的数据集上展现优势。

通过集中建设数据处理与交换平台,在可用性、扩展性、实时性、兼容性、可视性上有很大提升。高可用集群与负载均衡能力,硬件线性扩展及功能横向扩展能力,借助流式计算、流式处理能力,通过内存管道流技术,充分提高数据处理与分析实时性能;工具采用采用插件式开发,同时将对外服务、集成功能封装成API供其他软件调用。也可以方便集成符合API接口的第三方软件;可视化操作统一监控能力,提供了图形化界面,方便集成商使用和维护。

面向企业级数据中心的分布式ETL系统通过部署集中数据处理平台,采用管道技术,对不同数据库采用并行抽取,并且对抽取内容做内存压缩,从而为数据处理提速,数据生成时间缩小,性能提升明显,效果显著。新技术的运用帮助企业减少了投资,提升了数据处理性能和效率。

参考文献(References)

[1] Meng X,Bradley J,Yavuz B,et al.Mllib:Machine learning in apache Spark.The Journal of Machine Learning Research,2016,17(1):1235-1241.

[2] Kumar Hota CPP,Ramu Y,Subba Rao DBV.A relative study on traditional ETL and ETL with apache hadoop.NCRTIT2K16.Andhra Pradesh,India,2016,20(2):74-78.

[3] WU X,ZHU X,WU G,et al.Data Mining with Big Data[J].IEEE Transancations on Knowledge & Data Engineering 2016,26(1):97-102.

[4] 韓文彪,李晖,陈梅,等.PBS:一种面向集群环境的ETL调度算法[J].计算机与数字工程,2017,45(5):793-796.

[5] 徐立新.基于异构数据资源整合的方法和系统实现[J].计算机技术与发展,2014(12):173-179.

[6] 杨杉,苏飞,程新洲,等.面向运营商大数据的分布式ETL研究与设计[J].邮电设计技术,2016,8(1):50-52.

[7] 施霖,杨爱民.一种基于时间戳和日志的增量数据捕获和抽取方法[P].CN,CN 102915336 A,2013.

[8] 王春阳,赵书良,王长宾.粒子群算法在分布式ETL任务调度中的应用[J].计算机工程与应用,2013,49(9):150-155.

[9] Kakish K,Kraft T A.ETL evolution for real-time data;warehousing[C].Proceedings of the Conference on Information Systems Applied Research ISSN,2012:2167-1508.

[10] 孟维一.基于数据仓库的保险商业智能系统设计与实现[D].北京交通大学,2016.

作者简介:

翁业林(1981-),男,硕士,讲师.研究领域:计算机网络技术.

周 泓(1981-),女,博士,副教授.研究领域:计算机软件.

侯 兵(1980-),男,硕士,高级工程师.研究领域:大数据开发.

猜你喜欢
大数据信息技术
新一代信息技术征稿启示
新一代信息技术征稿启示
新一代信息技术征稿启示
新一代信息技术征稿启示
新一代信息技术征稿启示
信息技术在幼儿教育中的有效应用
大数据环境下基于移动客户端的传统媒体转型思路
基于大数据背景下的智慧城市建设研究