APP下载

基于大数据平台化的ETL可复用框架设计

2021-11-21壮,苏

无线互联科技 2021年18期
关键词:任务调度数据仓库集市

何 壮,苏 瑀

(长春电子科技学院,吉林 长春 130000)

0 引言

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

1 ETL工作流方案设计

ETL的工作流程主要包括:数据抽取(Data Extraction)、数据转换(Data Transformation)、数据加载(Data Loading),在不同的数据源中,利用选定的采样方式得到数据,经提取变化后,加载到目标数据(仓)库的处理方式。在构架数据仓库时,数据ETL处理过程作为第一步,也是最重要的一步操作,能够为后续的数据挖掘及报表等经营决策提供数据支持。

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

现如今通过深入银行内部系统间交互产生数据的分析,了解到数据的增长量情况,依据增长的数据量对数据仓库的容量做评估预测,设计基于大数据平台化的ETL可复用框架,将各个业务系统数据进行抽取,在进行清洗和转换,最终存储在Hadoop分布式集群的HDFS文件系统中。Hive是基于Hadoop的一个数据仓库管理技术,可以方便我们对HDFS上的文件进行转换处理操作。由于ETL过程在整个数据仓库及数据集市建设中所占用的工作量较大,开发过程效率较低,若ETL过程中还存在质量问题会直接影响数仓及数据集市构建的效率及质量。因此本文致力于构建基于大数据平台化的ETL可复用框架,强调ETL框架的灵活性、可复用性以及可扩展性,以配置文件方式进行自动化开发模式,减少人工重复开发工作,提高任务调度监控能力。本文中提供的ETL框架的运行环境为:Hadoop、Hive(数据仓库管理工具)、Python语言、Shell脚本。结合国内某商业银行的业务特点,构建基于大数据平台化的ETL可复用框架,该框架的流程主要是从业务系统如核心系统、线上贷款、联合贷款等系统中进行数据抽取,将抽取和采集到的结构化数据、非结构化数据以及半结构化数据等存储在Hadoop分布式集群的HDFS中,在对这些数据通过shell,hive,sqoop,python等技术进行数据转换和存储,最终将底层数据源通过数据转换分别存储在数据仓库的分层架构中,包括数据湖ODS、主题模型层、共性加工层以及数据集市层,完成整个数据存储过程。

2.1 ETL任务设计

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

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

2.2 ETL任务调度实现

在上述设计的ETL任务调度中,对参数进行相应的配置来实现所需要的操作。利用脚本程序,调用相应的参数来完成ETL中对所需数据的调度。对不同的业务,利用SQL脚本对需求进行分析和编码,从而完成任务,优点是对参数调节较方便。根据需求,进行配置,用来创建调度作业任务JOB,记录了相应的基本信息,包括:任务作业名称、类型、调用脚本、编号、业务线、源库类型、数据源表、结果表写入模式、任务id、子任务id、任务描述、sql脚本、sql参数、资源分配情况等参数,该方法方便初始化任务作业信息。当新增任务作业信息时,可直接写入详细参数完成新增任务作业的信息存储,调用sql脚本等参数,在airflow分布式调度中生成任务作业,完成数据开发过程,把JOB表中的数据利用数据仓库进行备份及存储。在新任务开启后,清空JOB表,将新数据进行追加。根据新任务的需求,更改SQL脚本编码,在airflow分布式调度系统中实现对新任务的调度功能。当新任务完成后,对任务信息产生的日志进行分析,查看运行结果,将成功执行的数据追加到数据仓库中。

2.3 ETL监控设计

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

3 结语

本文以国内某商业银行的内部资产定价转移(FTP)项目为背景,设计开发了基于大数据平台化的ETL可复用框架,整体架构灵活易扩展、支持跨平台,改变传统ETL开发方式,同时以较少的人工和时间成本,完成高效率的开发作业,应用价值前景广阔。对商业银行各子系统中不同的源数据进行清理、转换、加工和融合,并利用数据仓库进行记录和分析,最终目的是高效率实现全行业务数据的一致化、标准化和高质量化,全面提升商业银行数字化发展水平。

猜你喜欢

任务调度数据仓库集市
热闹的集市
基于改进NSGA-Ⅱ算法的协同制造任务调度研究
基于数据仓库的住房城乡建设信息系统整合研究
探访于山“相亲集市”
基于时间负载均衡蚁群算法的云任务调度优化
分布式存储系统在液晶面板制造数据仓库中的设计
探析电力系统调度中数据仓库技术的应用
云计算环境中任务调度策略
云计算中基于进化算法的任务调度策略
基于数据仓库的数据分析探索与实践