[发明专利]一种基于多数据源的ETL方法及装置有效
申请号: | 202110862612.1 | 申请日: | 2021-07-29 |
公开(公告)号: | CN113505119B | 公开(公告)日: | 2023-08-29 |
发明(设计)人: | 刘晓文;李凡平;石柱国 | 申请(专利权)人: | 青岛以萨数据技术有限公司 |
主分类号: | G06F16/215 | 分类号: | G06F16/215;G06F16/21;G06F16/22;G06F16/2457;G06F16/25 |
代理公司: | 北京酷爱智慧知识产权代理有限公司 11514 | 代理人: | 何忠仪 |
地址: | 266000 山东省青岛*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 多数 etl 方法 装置 | ||
本发明公开了一种基于多数据源的ETL方法及装置,该方法包括:配置自定义数据;选择输出的目的表和字段的清洗规则;根据配置和选择操作生成对应的消息格式,并写入到kafka消息队列;利用spark流式计算框架处理kafka消息队列中的数据后,再将处理后的数据入库;其有益效果是:(1)使用web页面的方式简化了运维开发人员接数据的操作,不用执行命令,不用修改配置文件,不用执行程序就可以轻松完成多种复杂数据的迁移和接入,降低了学习成本和运维难度;(2)利用制定了数据接入的通用规则,不同库不同表的数据都可以写成此格式,可以用这一套流程代码来完成所有的不同源的数据ETL操作,大大减少了开发量。
技术领域
本发明涉及数据处理技术领域,具体涉及一种基于多数据源的ETL方法及装置。
背景技术
目前大数据ETL(数据抽取、转换和加载)的应用越来越广泛,例如电商领域,金融领域和安防领域等。现有技术中,数据接入和存储大多数都为一种数据来源和一个目标数据源定制开发一个ETL程序,但是随着数据源越来越多,数据分析的维度也越来越多,所需要开发的程序也越来越多,进而造成开发成本和运维成本直线上升。
发明内容
针对现有技术中存在的缺陷,本发明实施例的目的在于提供一种基于多数据源的ETL方法及装置。
为实现上述目的,第一方面,本发明实施例提供了一种基于多数据源的ETL方法,包括:
配置自定义数据;
选择输出的目的表和字段的清洗规则;其中,所述配置和选择均通过在前端Web页面中操作所得;
根据所述配置和选择操作生成对应的消息格式,并写入到kafka消息队列;
利用spark流式计算框架处理所述kafka消息队列中的数据后,再将处理后的数据入库。
作为本申请的一种具体实施方式,所述清洗规则为封装完成的函数;所述清洗规则包括:
字段内容清除,删除空格;
空值替换,指定值替换为NULL。
作为本申请的一种具体实施方式,所述spark流式计算框架的处理包括以下步骤:
根据数据量和实时性的要求设置批处理的时间;
将接收的kafka数据,按照预先定义好的数据格式封装为javabean;
使用spark的dstream的filter算子根据所述数据格式里的目标数据库字段分为不同的dstream流,再对每个流遍历进行入库操作。
作为本申请的一种具体实施方式,对同一批流的数据按照目标表字段分组,使用RDD的groupby算子计算出目标表的数量,然后对目标表们进行遍历,再次使用RDD的filter算子把相同表的数据筛选到一块,每一个RDD都是同一类的目标表;
当同一类目标表的数据都在一起后,统一进行清洗操作,取出数组对应位置的字段值,再取出对应清洗字段的值,用清洗规则的方法名反射清洗规则,对字段进行清洗。
进一步地,作为本申请的一种优选实施方式,采用sparksql里的dataframe进行入库。
第二方面,本发明实施例还提供了一种基于多数据源的ETL装置,包括:
配置模块,用于配置自定义数据;
选择模块,用于选择输出的目的表和字段的清洗规则;其中,所述配置和选择均通过在前端Web页面中操作所得;
封装模块,用于根据所述配置和选择操作生成对应的消息格式,并写入到kafka消息队列;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于青岛以萨数据技术有限公司,未经青岛以萨数据技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110862612.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种带积放功能可控节奏的码垛机械手臂
- 下一篇:隐藏式门板升降机构