歡迎咨詢,合作! weix:wonter
名詞解釋:
CDC又稱變更數據捕獲(Change Data Capture),開啟cdc的源表在插入INSERT、更新UPDATE和刪除DELETE活動時會插入數據到日志表中。CDC通過捕獲進程將變更數據捕獲到變更表中,通過cdc提供的查詢函數,我們可以捕獲這部分數據。
ETL數據倉庫技術(Extract-Transform-Load),它是將數據從源系統加載到數據倉庫的過程。用來描述將數據從來源端經過萃取(extract)、轉置(transform)、加載(load)至目的端的過程。使用到的工具包含(kettle、flume、sqoop)。
Kettle基於JAVA的ETL工具,支持圖形化的GUI設計界面,然后可以以工作流的形式流轉,在做一些簡單或復雜的數據抽取、質量檢測、數據清洗、數據轉換、數據過濾等方面有着比較穩定的表現。
Flume是Cloudera提供的一個高可用的,高可靠的,分布式的海量日志采集、聚合和傳輸的系統,Flume支持在日志系統中定制各類數據發送方,用於收集數據;同時,Flume提供對數據進行簡單處理,並寫到各種數據接受方(可定制)的能力。
Sqoop是Apache開源軟件,主要用於在HADOOP(Hive)與傳統的數據庫(mysql、postgresql…)間進行數據的傳遞。
適用於能與大數據集群直接通信的關系數據庫間的大批量數據傳輸。
數據集成方案對比
數據集成有兩種方案:
一種是通過ESB接口方式進行數據集成,優點是數據的時效性高,但最大的弊端是依賴於業務系統的接口改造,往往會涉及和廠商的接口費用。另一種方式就是通過ETL方式抽取數據,並通過CDC方式實現數據實時同步,優點是不依賴於業務系統,只需要獲取業務系統數據庫權限便可實現集成。
CDC+ETL數據集成方案
第一步:通過kettle抽取歷史數據到數倉中間庫。
支持圖形化的GUI設計界面,方便第一輪實施人員無業務化操作流程,穩定、高效。
第二步:業務系統鏡像數據庫啟動CDC功能,並實時同步數據到數倉中間庫。
該技術通過讀取鏡像數據庫日志文件,解析回放數據庫操作方式,實現業務數據變更捕獲。日志讀取、解析、回放等操作都是在鏡像數據庫上進行,業務數據庫只會產生少量的I/O開銷,以最大限度地降低對業務系統的影響。
第三步:通過Sqoop從中間庫抽取歷史數據到Haoop。
使用頤東數倉配置數據目錄映射關系,自動生成跨數據庫抽取的SQL語句。
第四步:基礎表通過CDC功能實時同步數據到Hadoop。
基礎表為人員信息表、數據字典表等會經常維護變更的表。
第五步:記錄表通過flume增量實時抽取數據到Hadoop。
記錄表為數據攜帶時間戳的表,該表內容變更多以修改操作狀態形式增量添加。
第六步:數據中台
數據湖提供數據中台服務,根據業務活動,自定義勾選數據集市所需字段,生成ElasticSearch索引,並自動生成數據接口。
需要考慮的幾個問題
做數據集成前需要對業務表進行分析
1、哪些表是基礎表(需對原數據做物理變更操作),哪些表是記錄表
2、集成后哪些數據需要實時查詢,哪些數據可以離線查詢(生成調度任務,延時給出結果。)
數據應用
推薦閱讀: