[發明專利]一種基于多數據源的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.szxzyx.cn/pat/books/202110862612.1/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種帶積放功能可控節奏的碼垛機械手臂
- 下一篇:隱藏式門板升降機構





