[发明专利]一种基于多数据源的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 方法 装置 | ||
1.一种基于多数据源的ETL方法,其特征在于,包括:
配置自定义数据;
选择输出的目的表和字段的清洗规则;其中,所述配置和选择均通过在前端Web页面中操作所得;
根据所述配置和选择操作生成对应的消息格式,并写入到kafka消息队列;
利用spark流式计算框架处理所述kafka消息队列中的数据后,再将处理后的数据入库;
所述spark流式计算框架的处理包括以下步骤:
根据数据量和实时性的要求设置批处理的时间;
将接收的kafka数据,按照预先定义好的数据格式封装为javabean;
使用spark的dstream的filter算子根据所述数据格式里的目标数据库字段分为不同的dstream流,再对每个流遍历进行入库操作;
对同一批流的数据按照目标表字段分组,使用RDD的groupby算子计算出目标表的数量,然后对目标表们进行遍历,再次使用RDD的filter算子把相同表的数据筛选到一块,每一个RDD都是同一类的目标表;
当同一类目标表的数据都在一起后,统一进行清洗操作,取出数组对应位置的字段值,再取出对应清洗字段的值,用清洗规则的方法名反射清洗规则,对字段进行清洗。
2.如权利要求1所述的一种基于多数据源的ETL方法,其特征在于,所述清洗规则为封装完成的函数;所述清洗规则包括:
字段内容清除,删除空格;
空值替换,指定值替换为NULL。
3.如权利要求2所述的一种基于多数据源的ETL方法,其特征在于,采用sparksql里的dataframe进行入库。
4.一种基于多数据源的ETL装置,其特征在于,包括:
配置模块,用于配置自定义数据;
选择模块,用于选择输出的目的表和字段的清洗规则;其中,所述配置和选择均通过在前端Web页面中操作所得;
封装模块,用于根据所述配置和选择操作生成对应的消息格式,并写入到kafka消息队列;
处理模块,用于利用spark流式计算框架处理所述kafka消息队列中的数据后,再将处理后的数据入库;
所述spark流式计算框架的处理包括以下步骤:
根据数据量和实时性的要求设置批处理的时间;
将接收的kafka数据,按照预先定义好的数据格式封装为javabean;
使用spark的dstream的filter算子根据所述数据格式里的目标数据库字段分为不同的dstream流,再对每个流遍历进行入库操作;
对同一批流的数据按照目标表字段分组,使用RDD的groupby算子计算出目标表的数量,然后对目标表们进行遍历,再次使用RDD的filter算子把相同表的数据筛选到一块,每一个RDD都是同一类的目标表;
当同一类目标表的数据都在一起后,统一进行清洗操作,取出数组对应位置的字段值,再取出对应清洗字段的值,用清洗规则的方法名反射清洗规则,对字段进行清洗。
5.如权利要求4所述的一种基于多数据源的ETL装置,其特征在于,所述清洗规则为封装完成的函数;所述清洗规则包括:
字段内容清除,删除空格;
空值替换,指定值替换为NULL。
6.如权利要求4所述的一种基于多数据源的ETL装置,其特征在于,采用sparksql里的dataframe进行入库。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于青岛以萨数据技术有限公司,未经青岛以萨数据技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110862612.1/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种带积放功能可控节奏的码垛机械手臂
- 下一篇:隐藏式门板升降机构