一种基于模块可编程扩展的ETL工具构建方法技术

技术编号:36257572 阅读:24 留言:0更新日期:2023-01-07 09:53
本发明专利技术涉及数据处理领域,尤其是一种基于模块可编程扩展的ETL工具构建方法,针对数据工程中,数据处理遇到的大量频繁查询、复杂交叉转换、分布式实时处理等问题,根据解决问题的不同分为面向查询服务的、面向多维数据的和面向大数据的三种,面向查询服务的重点关注构件组装、源表解析、查询配置、结果输出等功能,面向多维数据的重点关注抽取、转换、质量、装载、配置等规则设计,面向大数据重点关注分布式部署、实时数据处理和存储。实时数据处理和存储。实时数据处理和存储。

【技术实现步骤摘要】
一种基于模块可编程扩展的ETL工具构建方法


[0001]本专利技术涉及数据处理领域,尤其涉及基于模块可编程扩展的高效数据处理下的ETL工具构建方法。

技术介绍

[0002]随着物联网、云计算、大数据技术的普及应用,生产中积累了大量数据,包括结构化的文本、数据库、实时流等,半结构化的邮件、报表、网页等,非结构化的图像、视音频等。实现精准的数据管理、快速的数据服务和智能化的决策,需要通过使用ETL(抽取、转换、加载)工具将来源不同、格式各异和特点相近的数据在逻辑上或物理上有机地集中在一起,达到数据格式标准化、访问一致化、存储集中化。
[0003]大数据市场的蓬勃发展推动了国内外软硬件技术的进步,出现了Oracle Data Integrator(ODI)、Informatica、Oracle Goldengate、DataPipline、RestCloud、Kettle和DataX等数据集成和管理工具。这些工具有数据容灾备份、导入导出、同步处理等功能,但在处理灵活需求、复杂变化的转换逻辑、实时数据等基本功能方面依旧有难度,而且存在实现过程复杂、数据转化率低、无法集群管理、不支持断点续传、需要大量人工分析等问题。因此,需要研发新的ETL工具。

技术实现思路

[0004]针对上述问题,本专利技术提供一种高效数据处理下模块可编程扩展的新ETL工具构建方法。针对数据工程中,数据处理遇到的大量频繁查询、复杂交叉转换、分布式实时处理等问题,根据解决问题的不同分为面向查询服务的、面向多维数据的和面向大数据的三种,面向查询服务的重点关注构件组装、源表解析、查询配置、结果输出等功能,面向多维数据的重点关注抽取、转换、质量、装载、配置等规则设计,面向大数据重点关注分布式部署、实时数据处理和存储。
[0005]本专利技术提供如下技术方案:一种基于模块可编程扩展的ETL工具构建方法,包括以下步骤:S1、对ETL工具模块化分割,每个构件包括类、函数和变量,是独立的和可组装、替换、配置、编程和执行的程序模块,对内构件参数覆盖功能,对外提供一组规范化接口;S2、在数据查询服务中,在pycharm中新建项目或模块,根据源数据库的类型从构件库中选择合适的输入数据引擎读取构件、写入构件、报表生成构件,接入源数据所在数据库,将查询结果存到txt、excel报表或者数据仓库中;S3、对于多维数据交叉转换,将多表头的Excel表格数据抽取到关系数据库,实现数据和多个维度组合唯一对应的关系;S4、对于大数据时,通过B/S架构web管理系统,对ETL分布式集群进行管理,共同配置部分由ZooKeeper统一管理,通过消息中间件Kafka集群实现消息的转发。
[0006]步骤S1中,根据多维度关系表格或者关系数据库表,对ETL工具解构,包括数据源
的管理、数据引擎、读取写入、公共维度、数据维度、源表解析、目标表解析、更新删除、读取配置、ETL主执行模块、异常处理、日志管理、运行监控,各模块采用逻辑和参数配置分离设计模式,以配置文件形式实现定位和具体功能,并将变量封装在轻量级json格式的数据文件中。
[0007]数据源包括关系数据库、半结构化数据包括xlxs、csv格式文件、非结构化数据包括doc、txt格式文件和外部API,并使用完整的数据字典形式详细记录的各类数据源,如数据库的名称、类型、访问方式、主机名称;数据操作引擎模块包括JDBC、HTTP访问数据源的方法;读取写入模块负责数据的读写;源数据从维度和数据层面进行分析,其中维度又分为公共、私有维度,源表、目标表解析模块是依据具体的表结构设计的解析和存储代码实现方法,更新、删除模块从另一条线路负责数据工程中单独表的特殊操作,ETL管理包括异常处理、日志管理、运行监控模块。
[0008]步骤S2中,在数据查询服务中,针对集成工具在数据工程中应具有批量数据查询和导出合适格式的数据的功能,设计了一种面向查询服务的ETL工具构建方法,快速数据处理,构建步骤包括:S21,在pycharm中新建项目或模块,根据源数据库的类型从构件库中选择需要的输入数据引擎读取构件、写入构件、报表生成构件,接入源数据所在数据库;S22,配置源表解析模块,包括多条sql查询语句文档和逻辑代码执行程序,或者根据需求编写新的业务处理逻辑;S23,根据目标数据格式配置输出数据引擎模块,将查询结果存到txt、excel报表或者数据仓库中;S24,组合以上过程,运行得到文档,经人工调整完成本次查询服务。
[0009]步骤S3中,设计面向多维数据ETL工具,其中配置文件Config.json,多值可通过嵌套实现,多维数据转换ETLmain算法,其中输入是根据路径读取配置文件中的数据得到Public、Data、Dim和Table四类数据:Public(year、city);Data(column_start、columns);Dim(row_start、row、row_code_num、sql_model_table);Table(数据:excel_data,总行数:total_row,开始行row_start),流程通过调用delete.json文件进行删除或更新操作,判断row_start是否小于total_rows,构造多维度模型sql_model和value两个向量,组合成可执行的insert_sql_model语句,实现数据转换,将多维数据按二维数据格式存储到关系数据库中的表中。
[0010]在步骤S4中,先在系统架构中引入分布式协调服务框架ZooKeeper来完成分布式集群管理和集群资源调度的工作,再采用Django框架实现简单的集群管理功能,达到分布式系统配置文件的配置、节点的部署情况查看和节点的状态监控,ETL执行节点分布在集群的子节点上,执行具体的任务,将数据从源数据库抽取到目标数据库中,元数据库中存储着ETL执行节点所需的配置信息。
[0011]ETL接入Kafka集群,大数据生产者创建消息,将消息发送到Kafka集群,消费者从Kafka集群中获得消息,进而进行业务逻辑处理,python接入kafka有两个常用库:kafka

python,pykafka。
[0012]设置了日志管理和API 服务管理,日志管理记录了系统运行状态和各节点的运行状态,API服务提供整个系统的REAEST服务,用于对接第三方应用,通过wsgiref快速实现接口。
[0013]通过上述描述可以看出,本方案本专利选择python语言设计ETL工具,可使用
Scikit

learn、PyTorch、Tensorflow和MxNet等库,可将原始数据转换为表、图和树的结构,或深度学习和机器学习应用程序所接受的向量、矩阵、张量等格式,实现了面向不同计算平台和应用环境对各种数据进行格式、存储、提取、转换和移动管理,弥合数据工程和数据分析之间的鸿沟,解决了来源广泛、格式异构、需求不定、业务复杂等数据处理问题,为高质量支撑服务和系统级应用研究的提供重要支撑。
附图本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于模块可编程扩展的ETL工具构建方法,其特征在于包括以下步骤:S1、对ETL工具模块化分割,每个构件包括类、函数和变量,是独立的和可组装、替换、配置、编程和执行的程序模块,对内构件参数覆盖功能,对外提供一组规范化接口;S2、在数据查询服务中,在pycharm中新建项目或模块,根据源数据库的类型从构件库中选择合适的输入数据引擎读取构件、写入构件、报表生成构件,接入源数据所在数据库,将查询结果存到txt、excel报表或者数据仓库中;S3、对于多维数据交叉转换,将多表头的Excel表格数据抽取到关系数据库,实现数据和多个维度组合唯一对应的关系;S4、对于大数据时,通过B/S架构web管理系统,对ETL分布式集群进行管理,共同配置部分由ZooKeeper统一管理,通过消息中间件Kafka集群实现消息的转发。2.根据权利要求1所述的基于模块可编程扩展的ETL工具构建方法,其特征在于,步骤S1中,根据多维度关系表格或者关系数据库表,对ETL工具解构,包括数据源的管理、数据引擎、读取写入、公共维度、数据维度、源表解析、目标表解析、更新删除、读取配置、ETL主执行模块、异常处理、日志管理、运行监控,各模块采用逻辑和参数配置分离设计模式,以配置文件形式实现定位和具体功能,并将变量封装在轻量级json格式的数据文件中。3.根据权利要求2所述的基于模块可编程扩展的ETL工具构建方法,其特征在于,数据源包括关系数据库、半结构化数据包括xlxs、csv格式文件、非结构化数据包括doc、txt格式文件和外部API,并使用完整的数据字典形式详细记录的各类数据源,如数据库的名称、类型、访问方式、主机名称;数据操作引擎模块包括JDBC、HTTP访问数据源的方法;读取写入模块负责数据的读写;源数据从维度和数据层面进行分析,其中维度又分为公共、私有维度,源表、目标表解析模块是依据具体的表结构设计的解析和存储代码实现方法,更新、删除模块从另一条线路负责数据工程中单独表的特殊操作,ETL管理包括异常处理、日志管理、运行监控模块。4.根据权利要求1所述的基于模块可编程扩展的ETL工具构建方法,其特征在于,步骤S2中,在数据查询服务中,针对集成工具在数据工程中应具有批量数据查询和导出合适格式的数据的功能,设计了一种面向查询服务的ETL工具构建方法,快速数据处理,构建步骤包括:S21,在pycharm中新建项目或模块,根据源数据库的类型从构件库中选择需要的输入数据引擎读取构件、写入构件、报表生成构件,接入源数据所在数据库;S22,配置源表...

【专利技术属性】
技术研发人员:杨国立姜树明魏志强李凤娇张莹莹李建
申请(专利权)人:齐鲁工业大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1