基于大数据平台化的ETL可复用框架--原创

基于大数据平台化的ETL可复用框架--原创

  为了在大数据处理下提高ETL开发效率、任务维护及监控能力、减少人工操作工作、在多种相似数据存储过程中共享ETL过程,提出一种基于大数据平台化的ETL可复用框架。根据ETL工作原理、数据存储过程以及任务特点,在任务调度开发、数据存储过程方面进行了改进,以配置文件方式进行自动化开发模式,从而构建基于大数据平台化ETL可复用框架。在实际应用中,将该可复用框架分别应用于各个数据仓库的项目建设和数据集市项目建设中。实验结果表明该框架能够大幅度提高工作效率以及任务监控能力,极大减少开发人员手工开发Shell脚本进行任务调度和后续任务调度的监控及维护工作,以此验证基于大数据平台化的ETL可复用框架的有效性。

关键词大数据处理;ETL框架;平台配置化;可复用

中图法分类号:TP391         文献标识码:A       文章编号:

Design andImplementation of ETL General Framework Based

on Big Data

LIUDeng-he, SU Yu

AbstractAimingat the problems of low development efficiency, poor task maintenance andmonitoring capabilities, and more manual operations in the storage process ofthe traditional ETL framework, a general ETL framework based on big dataplatform is proposed. By analyzing the working principle of ETL, data storageprocess and task characteristics, design platform configuration task schedulingmanagement module, system monitoring module, etc. When using thisplatform-based framework for ETL development, data task scheduling can beachieved only by configuring the corresponding parameters of the task in theplatform. At the same time, the progress and logs of the task can be viewedaccording to the system monitoring module, and problems can be found andresolved in a timely manner, forming a closed loop as a whole. The ETL generalframework based on big data platform has been improved in task schedulingdevelopment and data storage process. The framework can focus more developerson data logic processing, which can greatly reduce the manual development ofshell scripts by developers. Maintenance work for task scheduling and follow-uptask scheduling improves work efficiency and task monitoring capabilities.

Key WordsBig

data processing; ETL framework; platform configuration; task scheduling; stored

procedure

0 引言

随着互联网技术的飞速发展,不知不觉已进入大数据时代,产生的海量数据和信息是现代企业最重要的资源,通过对海量数据进行ETL处理以及有效的数据挖掘能够从中挖掘出潜藏在数据中的有效规则、有价值的信息,为企业提供决策支持,为科学管理企业提供数据支持[1]。目前基于大数据的ETL过程已经成为建设数据仓库、数据集市项目主要的技术手段,ETL过程能够将源系统中包含噪音数据、不完整数据以及无价值的数据进行抽取、转换以及装载,最终将获取到更高质量的数据存放在数据仓库中[2]。由于ETL过程在整个数据仓库及数据集市建设中所占用的工作量较大,开发过程效率较低,若ETL过程中还存在质量问题会直接影响数仓及数据集市构建的效率及质量[3]。因此本文致力于构建基于大数据平台化的ETL可复用框架,强调ETL框架的灵活性、可复用性以及可扩展性,能够将ETL框架适用于数据仓库和数据集市项目的构建中,发现其共同特征、知识、需求等,以配置文件方式进行自动化开发模式,大幅度提高ETL开发效率、减少人工重复开发工作,提高任务调度监控能力,从而提升建设数据仓库、数据集市的效率。

1 ETL工作流方案设计

ETL的工作流程主要包括:数据抽取(DataExtraction)、数据转换(DataTransformation)、数据加载(DataLoading),它是从多个异构的数据源中,依据一定的抽取规则获取数据,经转换后,加载到目标数据(仓)库的处理过程[4]。在构架数据仓库时,数据ETL处理过程作为第一步,也是最重要的一步操作,能够为后续的数据挖掘及报表等经营决策提供数据支持。下面将详细介绍ETL的三个阶段。

1.1数据抽取

数据抽取作为ETL过程的第一步,需要分析各个不同的数据源获取数据的策略,包括全量和增量两种方式进行抽取,对于数据量大,不会修改和删除历史数据的表,必须考虑增量抽取。一般情况下,业务系统会记录业务数据的发生时间,可以作为增量标记,每次执行完一次ETL调度后,源系统会产生新的数据,用增量标记来抽取其中所有变化的数据则为增量抽取,最后将抽取的全量和增量数据存入HDFS分布式文件系统中,完成数据抽取过程。

1.2数据转换

一般情况下,数据仓库分为ODS、DW两部分,通常的做法是从业务系统到ODS做清洗,将脏数据和不完整数据过滤掉,再从ODS到DW的过程中转换,进行一些业务规则的计算和聚合[7]。其中数据清洗的任务是过滤那些不符合要求的数据,将过滤的结果交给业务主管部门,确认是否过滤掉还是由业务单位修正之后再进行抽取。不符合要求的数据主要是有不完整的数据、错误的数据和重复的数据三大类。数据转换的任务主要是进行不一致的数据转换、数据粒度的转换和一些业务规则的计算。其中不一致数据转换,这个过程是一个整合的过程,将不同业务系统的相同类型的数据统一;业务规则的计算,不同的业务部门有不同的业务规则,不同的数据指标,这些指标有的时候不是简单的加加减减就能完成,这个时候需要在ETL中将这些数据指标计算好了之后存储在数据仓库中,供分析使用。

1.3数据加载

将源系统抽取转换的数据最终装载到数据仓库中的数据汇总层和数据集市。

2 基于大数据的ETL可复用框架设计

现如今通过深入分析国内某商业银行各个业务系统,了解到各个业务系统每天都会产生大量的数据,对数据仓库所存储的数据做一个总体的预估。根据数据存储情况,设计基于大数据平台化的ETL可复用框架,将各个业务系统数据进行抽取,在进行清洗和转换,最终存储在Hadoop分布式集群的HDFS文件系统中[5]。Hive是基于Hadoop的一个数据仓库管理技术,可以方便我们对HDFS上的文件进行转换处理操作。由于ETL过程在整个数据仓库及数据集市建设中所占用的工作量较大,开发过程效率较低,若ETL过程中还存在质量问题会直接影响数仓及数据集市构建的效率及质量[6]。因此本文致力于构建基于大数据平台化的ETL可复用框架,强调ETL框架的灵活性、可复用性以及可扩展性,以配置文件方式进行自动化开发模式,减少人工重复开发工作,提高任务调度监控能力。本文中提供的ETL框架的运行环境为:Hadoop、Hive(数据仓库管理工具)、Python语言、Shell脚本。结合国内某商业银行的业务特点,构建基于大数据平台化的ETL可复用框架如图1所示。

图1 ETL复用框架设计

从图中可以看出,基于大数据平台化的ETL可复用框架的流程主要是从业务系统如核心系统、线上贷款、联合贷款等系统中进行数据抽取,将抽取和采集到的结构化数据、非结构化数据以及半结构化数据等存储在Hadoop分布式集群的HDFS中,在对这些数据通过shell、hive、sqoop、python等技术进行数据转换和存储,最终将底层数据源通过数据转换分别存储在数据仓库的分层架构中,包括数据湖ODS、主题模型层、共性加工层以及数据集市层,完成整个数据存储过程。

2.1 ETL任务设计

传统ETL任务采用人工方式进行重复性的ETL过程开发、ETL任务调度开发、airflow日志告警,实现整个ETL数据存储到数据仓库中。为避免开发人员重复开发繁重ETL脚本,能够高效、高质量完成ETL的数据处理和存储,本文将设计构建大数据平台化ETL可复用框架。本文将设计构建大数据平台化ETL可复用框架。本文在国内某商业银行的内部资产定价转移(FTP)项目基础上,通过基于大数据平台化的ETL框架来完成数据的转换和存储。在遵循ETL逻辑架构的基础上,为各个源数据系统中的每一张业务表设计一个调度作业任务,其中调度作业就是业务表的ETL开发过程。

在进行ETL开发时,只需登录大数据管理平台,在Web页面上将必须的配置参数进行写入,包括编号、业务线、源库类型、数据源表、结果表写入模式、任务id、子任务id、任务描述、sql参数、资源分配情况等参数,将配置化参数存在Mysql数据库中,通过对配置参数进行解析,自动生成Spark的ETL任务和Airflow分布式调度作业,实现整个ETL过程到数据仓库中,最后要为任务处理过程中的一些常用操作提供公共工具接口,以方便全局调用,最终达到大数据平台一体化的ETL配置过程。因此针对新增ETL任务能够通过在Web页面上写入必要配置参数,通过配置文件解析程序来实现任务作业。针对ETL任务作业运行过程中,需要实时监控所有作业的执行情况,设计监控程序,首先要分析整理出调度作业的任务信息,包括数据源系统、各个系统中所有调度作业的编号、调度作业的阶段信息、调度作业之间的前后驱关系等。通过Airflow分布式任务调度查看日志内容,遍历日志中出现的关键字进行告警。

图2 ETL任务设计流程图

2.2 ETL任务调度实现

在上述设计的ETL任务调度中,所有的操作过程都是通过配置参数来实现的。开发外部SQL脚本程序,调用配置参数来实现ETL系统的数据调度功能。SQL取数逻辑脚本可以根据不同的业务需求进行编写,实现其功能,这样做的好处是配置作业比较容易。根据业务需求,进行调度作业的任务配置,创建一个调度作业任务JOB,JOB表结构如图3所示。该表记录了实现任务作业以及调用程序的基本信息,包括:任务作业名称、任务作业类型、调用脚本、编号、业务线、源库类型、数据源表、结果表写入模式、任务id、子任务id、任务描述、sql脚本、sql参数、资源分配情况等参数,该方法方便初始化任务作业信息。当新增任务作业信息时,可直接写入详细参数完成新增任务作业的信息存储,调用sql脚本等参数,在airflow分布式调度中生成任务作业,完成数据开发过程,最终将表中的业务数据存储备份至数据仓库中。当需要重新调度新的作业时,初始化JOB表为空,插入新增任务作业信息,根据新作业的业务特点,修改SQL脚本逻辑,在airflow分布式调度系统中实现新增任务作业的调度功能。当作业调度开发结束后,通过查询调度作业日志,查看数据调度是否成功,调度成功则数据成功存储至数据仓库中,如图4所示。若调度失败,则查看日志,找到调度失败原因并修改,重新执行调度任务,直至调度作业执行成功。

2.3 ETL监控设计

在进行ETL任务调度运行时,需要实时监控所有的作业执行情况,而Airflow分布式调度任务作业中包含着运行日志是不能够进行告警提示,需要人工查看日志才能够知道作业的执行情况,同时还需要在yarn中查看详细的错误日志,才能定位到问题所在。这样的方式会占有大量人工查看任务日志的时间,针对错误任务的手工处理效率较低。因此本文设计的ETL监控系统能够实时的监控所有作业执行情况,遍历所有任务作业的执行日志,通过关键词进行任务结果判断,若有失败信息等关键词,则通过数据检测消息发送器发送告警信息,我们可接收数据检测消息发送器的消息并做相应的处理。

3 结束语

本文以国内某商业银行的内部资产定价转移(FTP)项目为背景,设计开发了基于大数据平台化的ETL可复用框架,整体架构灵活易扩展、支持跨平台,改变传统ETL开发方式,同时减少了传统ETL人工开发成本,节约时间开销,提高执行效率等优点,具有良好的应用价值。实现将商业银行各个业务系统的底层数据进行加工转换后存储到数据仓库的过程,最终目的是高效率实现全行业务数据的一致化、标准化和高质量化,全面提升商业银行数字化发展水平。在大数据时代下,人工智能和数据挖掘技术已被广泛应用于商业银行,这也成为了商业银行竞争的重要手段和方式,因此做好数据仓库显得尤为重要,基于数据仓库进行数据挖掘,能够更好的挖掘出商业银行潜在的客户及商业信息等,能够为领导提供管理决策支持,使商业银行的经济效益最大化,从而使银行更好更快的发展。

参考文献

[1] 徐俊刚,裴莹. 数据ETL研究综述[J]. 计算机科学,

2011,38(4):15-20

[2] L Baldacci,M Golfarelli,S Graziani,et al.QETL:An Approach toOn-Demand ETL from Non-Owned Data Sources[J].Data & Knowledge Engineering,2017.

[3] V Theodorou,A Abelló,M Thiele,et al.Frequent Patterns in ETLWorkflows: An Empirical Approach[J].Data & Knowledge Engineering,2017:112.

[4] Dupor S,Jovanovic V.An approach to conceptual modelling of ETL

processes[C].International Convention on Information and CommunicationTechnology,Electronics and Microelectronics.IEEE,2014:1485-1490.

[5] 沈琦,陈博.基于大数据处理的ETL框架的研究与设计[J].电子设计工程,2016,24(2):25-27.

[6] 张靖,雷航,唐雪飞,等.ETL应用优化设计与实现研究[J].微电子学与计算机,2012,29(4):134-137.

[7] 宋旭东,刘晓冰.数据仓库ETL任务调度模型研究[J].控制与决策,2011,26(2):271-275.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容