做者:向師富 轉自:阿里巴巴數據中臺官網
dp.alibaba.com 概述 數據抽取是指從源數據抽取所須要的數據, 是構建數據中臺的第一步。 數據源通常是關係型數據庫,近幾年,隨着移動互聯網的蓬勃發展,出現了其餘類型的數據源,典型的如網站瀏覽日期、APP瀏覽日誌、IoT設備日誌 從技術實現方式來說,從關係型數據庫獲取數據,能夠細分爲全量抽取、增量抽取2種方式,兩種方法分別適用於不用的業務場景
用時間戳方式抽取增量數據很常見,業務系統在源表上新增一個時間戳字段,建立、修改表記錄時,同時修改時間戳字段的值。 抽取任務運行時,進行全表掃描,經過比較抽取任務的業務時間、時間戳字段來決定抽取哪些數據。 此種數據同步方式,在準確率方面有兩個弊端: 一、只能獲取最新的狀態,沒法捕獲過程變動信息,好比電商購物場景,若是客戶下單後很快支付,隔天抽取增量數據時,只能獲取最新的支付狀態,下單時的狀態有可能已經丟失。針對此種問題,須要根據業務需求來綜合斷定是否須要回溯狀態。 二、會丟失已經被delete的記錄。若是在業務系統中,將記錄物理刪除。也就沒法進行增量抽取。通常狀況下,要求業務系統不刪除記錄,只對記錄進行打標。
業務系統維護時間戳 若是使用了Oracle、DB2等傳統關係型數據庫,須要業務系統維護時間戳字段,業務系統在更新業務數據時,在代碼中更新時間戳字段。此種方法很常見,不過因爲須要編碼實現,工做量會變大,有可能會出現漏變動的情形
觸發器維護時間戳 典型的關係型數據庫,都支持觸發器。當數據庫記錄有變動時,調用特定的函數,更新時間戳字段。典型的樣例以下:
數據庫維護時間戳 MySQL能夠自動實現變動字段的維護,必定程度上減輕了開發工做量。 具體的實現樣例以下: 建立記錄
近幾年,隨着互聯網的蓬勃發展,互聯網公司通常使用MySQL做爲主數據庫,因爲是開源數據庫,不少公司都作了定製化開發。 其中一個很大的功能點是經過訂閱MySQL binlog日誌,實現了讀寫分離、主備實時同步,典型的示意圖以下:
解析binlog日誌,給數據同步帶來了新的方法,將解析以後結果發送到Hive/MaxCompute等大數據平臺,實現秒級延時的數據同步。
解析binlog日誌增量同步方式技術很先進,有3個很是大的優勢: 1.數據延時小。在阿里巴巴雙11場景,在巨大的數據量之下,能夠作到秒級延時; 2.不丟失數據,能夠捕獲數據delete的情形; 3.對業務表無額外要求,能夠缺乏時間戳字段;
固然,這種同步方式也有些缺點: 1.技術門檻很高。通常公司的技術儲備不夠,不足以自行完成整個系統搭建。目前國內也僅限於頭部的互聯網公司、大型的國企、央企。不過隨着雲計算的快速發展,在阿里雲上開放了工具、服務,能夠直接實現實時同步,經典的組合是MySQL、DTS、Datahub、MaxCompute; 2.資源成本比較高,要求有一個系統實時接收業務庫的binlog日誌,一直處於運行狀態,佔用資源較多 3.業務表中須要有主鍵,以便進行數據排序
Oracle是功能很是強大的數據庫,經過Oracle GoldenGate實時解析Redo Log日誌,並將解析後的結果發佈到指定的系統
全量抽取 全量抽取是將數據源中的表或視圖的數據原封不動的從數據庫中抽取出來,並寫入到Hive、MaxCompute等大數據平臺中,有點相似於業務庫之間的數據遷移。 全量同步比較簡單,經常使用於小數據量的離線同步場景。不過這種同步方法,也有兩個弊端,與增量離線同步如出一轍: 1.只能獲取最新的狀態 2.會丟失已經被delete的記錄
原則上,在數據上雲這個環節,建議只進行數據鏡像同步。不進行業務相關的數據轉換工做。從ETL策略轉變爲ELT,出發點有3個: 1.機器成本。在庫外進行轉換,須要額外的機器,帶來新的成本; 2.溝通成本。 業務系統的開發人員,也是數據中臺的用戶,這些技術人員對原始的業務庫表很熟悉,若是進行了額外的轉換,他們須要額外的學習其餘工具、產品; 3.執行效率。庫外的轉換機器性能,通常會低於MaxCompute、Hadoop集羣,增長了執行時間; 同步過程當中,建議全表全部字段上雲,減小後期變動成本
-
小數據量表 來源數據每日全量更新,採用數據庫直連方式全量抽取,寫入每日/每個月全量分區表。
-
日誌型表 原始日誌增量抽取到每日增量表,按天增量存儲。由於日誌數據表現爲只會有新增不會有修改的狀況,所以不須要保存全量表。
-
大數據量表 數據庫直連方式經過業務時間戳抽取增量數據到今日增量分區表,再將今日增量分區表merge前一日全量分區表,寫入今日全量分區表。
-
小時/分鐘增量表/不按期全量 來源數據更新頻率較高,達到分鐘/小時級別,從源數據庫經過時間戳抽取增量數據到小時/分鐘增量分區表,將N個小時/分鐘增量分區表merge入每日增量分區表,再將今日增量分區表merge前一日全量分區表,寫入今日全量分區表。
更多內容詳見阿里巴巴數據中臺官網
dp.alibaba.com 阿里巴巴數據中臺團隊,致力於輸出阿里雲數據智能的最佳實踐,助力每一個企業建設本身的數據中臺,進而共同實現新時代下的智能商業! 阿里巴巴數據中臺解決方案,核心產品: Dataphin,以阿里巴巴大數據核心方法論OneData爲內核驅動,提供一站式數據構建與管理能力; Quick BI,集阿里巴巴數據分析經驗沉澱,提供一站式數據分析與展示能力; Quick Audience,集阿里巴巴消費者洞察及營銷經驗,提供一站式人羣圈選、洞察及營銷投放能力,鏈接阿里巴巴商業,實現用戶增加。