一种基于多数据源的ETL方法及装置制造方法及图纸

技术编号:30371702 阅读:21 留言:0更新日期:2021-10-16 17:53
本发明专利技术公开了一种基于多数据源的ETL方法及装置,该方法包括:配置自定义数据;选择输出的目的表和字段的清洗规则;根据配置和选择操作生成对应的消息格式,并写入到kafka消息队列;利用spark流式计算框架处理kafka消息队列中的数据后,再将处理后的数据入库;其有益效果是:(1)使用web页面的方式简化了运维开发人员接数据的操作,不用执行命令,不用修改配置文件,不用执行程序就可以轻松完成多种复杂数据的迁移和接入,降低了学习成本和运维难度;(2)利用制定了数据接入的通用规则,不同库不同表的数据都可以写成此格式,可以用这一套流程代码来完成所有的不同源的数据ETL操作,大大减少了开发量。大减少了开发量。大减少了开发量。

【技术实现步骤摘要】
一种基于多数据源的ETL方法及装置


[0001]本专利技术涉及数据处理
,具体涉及一种基于多数据源的ETL方法及装置。

技术介绍

[0002]目前大数据ETL(数据抽取、转换和加载)的应用越来越广泛,例如电商领域,金融领域和安防领域等。现有技术中,数据接入和存储大多数都为一种数据来源和一个目标数据源定制开发一个ETL程序,但是随着数据源越来越多,数据分析的维度也越来越多,所需要开发的程序也越来越多,进而造成开发成本和运维成本直线上升。

技术实现思路

[0003]针对现有技术中存在的缺陷,本专利技术实施例的目的在于提供一种基于多数据源的ETL方法及装置。
[0004]为实现上述目的,第一方面,本专利技术实施例提供了一种基于多数据源的ETL方法,包括:
[0005]配置自定义数据;
[0006]选择输出的目的表和字段的清洗规则;其中,所述配置和选择均通过在前端Web页面中操作所得;
[0007]根据所述配置和选择操作生成对应的消息格式,并写入到kafka消息队列;
[0008]利用spark流式计算框架处理所述kafka消息队列中的数据后,再将处理后的数据入库。
[0009]作为本申请的一种具体实施方式,所述清洗规则为封装完成的函数;所述清洗规则包括:
[0010]字段内容清除,删除空格;
[0011]空值替换,指定值替换为NULL。
[0012]作为本申请的一种具体实施方式,所述spark流式计算框架的处理包括以下步骤:/>[0013]根据数据量和实时性的要求设置批处理的时间;
[0014]将接收的kafka数据,按照预先定义好的数据格式封装为javabean;
[0015]使用spark的dstream的filter算子根据所述数据格式里的目标数据库字段分为不同的dstream流,再对每个流遍历进行入库操作。
[0016]作为本申请的一种具体实施方式,对同一批流的数据按照目标表字段分组,使用RDD的groupby算子计算出目标表的数量,然后对目标表们进行遍历,再次使用RDD的filter算子把相同表的数据筛选到一块,每一个RDD都是同一类的目标表;
[0017]当同一类目标表的数据都在一起后,统一进行清洗操作,取出数组对应位置的字段值,再取出对应清洗字段的值,用清洗规则的方法名反射清洗规则,对字段进行清洗。
[0018]进一步地,作为本申请的一种优选实施方式,采用sparksql里的dataframe进行入库。
[0019]第二方面,本专利技术实施例还提供了一种基于多数据源的ETL装置,包括:
[0020]配置模块,用于配置自定义数据;
[0021]选择模块,用于选择输出的目的表和字段的清洗规则;其中,所述配置和选择均通过在前端Web页面中操作所得;
[0022]封装模块,用于根据所述配置和选择操作生成对应的消息格式,并写入到kafka消息队列;
[0023]处理模块,用于利用spark流式计算框架处理所述kafka消息队列中的数据后,再将处理后的数据入库。
[0024]作为本申请的一种具体实施方式,所述清洗规则为封装完成的函数;所述清洗规则包括:
[0025]字段内容清除,删除空格;
[0026]空值替换,指定值替换为NULL。
[0027]作为本申请的一种具体实施方式,所述spark流式计算框架的处理包括以下步骤:
[0028]根据数据量和实时性的要求设置批处理的时间;
[0029]将接收的kafka数据,按照预先定义好的数据格式封装为javabean;
[0030]使用spark的dstream的filter算子根据所述数据格式里的目标数据库字段分为不同的dstream流,再对每个流遍历进行入库操作。
[0031]作为本申请的一种具体实施方式,对同一批流的数据按照目标表字段分组,使用RDD的groupby算子计算出目标表的数量,然后对目标表们进行遍历,再次使用RDD的filter算子把相同表的数据筛选到一块,每一个RDD都是同一类的目标表;
[0032]当同一类目标表的数据都在一起后,统一进行清洗操作,取出数组对应位置的字段值,再取出对应清洗字段的值,用清洗规则的方法名反射清洗规则,对字段进行清洗。
[0033]作为本申请的一种具体实施方式,采用sparksql里的dataframe进行入库。
[0034]实施本专利技术实施例,主要有益效果如下:
[0035](1)使用web页面的方式简化了运维开发人员接数据的操作,不用执行命令,不用修改配置文件,不用执行程序就可以轻松完成多种复杂数据的迁移和接入,降低了学习成本和运维难度;
[0036](2)利用制定了数据接入的通用规则,不同库不同表的数据都可以写成此格式,所以可以用这一套流程代码来完成所有的不同源的数据ETL操作,大大减少了开发量。
附图说明
[0037]为了更清楚地说明本专利技术具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。
[0038]图1是本专利技术实施例所提供的一种基于多数据源的ETL方法的流程图;
[0039]图2是本专利技术实施例所提供的一种配置示意图;
[0040]图3是本专利技术实施例所提供的一种选择输出的目的表的示意图;
[0041]图4是本专利技术实施例中所提供的一种数据处理的流程示意图;
[0042]图5是本专利技术实施例所提供的一种基于多数据源的ETL装置的结构示意图。
具体实施方式
[0043]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0044]应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
[0045]需要说明的是,文中的专业术语为计算机领域技术人员通常所理解的含义。
[0046]如图1至图4所示,本专利技术实施例提供了一种基于多数据源的ETL方法,所述方法包括:
[0047]S101,配置自定义数据。
[0048]具体地,用户在Web页面自定义选择数据源表,选字段,数据类型,数据长度和精度等。
[0049]S102,选择输出的目的表和字段的清洗规则;其中,所述配置和选择均通过在前端Web页面中操作所得;
[0050]所述选择输出的目的表,即表示这个表最终要写到哪个表里去。
[0051]具体地,用户在Web页面选择数据清洗规则,目标的数据库,目标的数据表和目标的数据类本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于多数据源的ETL方法,其特征在于,包括:配置自定义数据;选择输出的目的表和字段的清洗规则;其中,所述配置和选择均通过在前端Web页面中操作所得;根据所述配置和选择操作生成对应的消息格式,并写入到kafka消息队列;利用spark流式计算框架处理所述kafka消息队列中的数据后,再将处理后的数据入库。2.如权利要求1所述的一种基于多数据源的ETL方法,其特征在于,所述清洗规则为封装完成的函数;所述清洗规则包括:字段内容清除,删除空格;空值替换,指定值替换为NULL。3.如权利要求2所述的一种基于多数据源的ETL方法,其特征在于,所述spark流式计算框架的处理包括以下步骤:根据数据量和实时性的要求设置批处理的时间;将接收的kafka数据,按照预先定义好的数据格式封装为javabean;使用spark的dstream的filter算子根据所述数据格式里的目标数据库字段分为不同的dstream流,再对每个流遍历进行入库操作。4.如权利要求3所述的一种基于多数据源的ETL方法,其特征在于,对同一批流的数据按照目标表字段分组,使用RDD的groupby算子计算出目标表的数量,然后对目标表们进行遍历,再次使用RDD的filter算子把相同表的数据筛选到一块,每一个RDD都是同一类的目标表;当同一类目标表的数据都在一起后,统一进行清洗操作,取出数组对应位置的字段值,再取出对应清洗字段的值,用清洗规则的方法名反射清洗规则,对字段进行清洗。5.如权利要求4所述的一种基于多数据源的ETL方法,其特征在于,采用sparksql里的dataframe进行入库。6.一种基于多数据源的ETL装置,其特征在...

【专利技术属性】
技术研发人员:刘晓文李凡平石柱国
申请(专利权)人:青岛以萨数据技术有限公司
类型:发明
国别省市:

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

1