回顧:
- Day 3 總結了無限客戶端的日志采集 大數據之路 讀書筆記 Day 3
- Day 2總結了瀏覽器端的日志采集 大數據之路 讀書筆記 Day 2
數據同步
阿里數據體系中的數據同步,主要指的是在不同的數據存儲系統之間進行數據的傳輸與更新,以保證數據的一致性和實時性。這個過程通常涉及到源系統的數據抽取、數據轉換處理以及目標系統的數據加載三個核心步驟,簡稱ETL(Extract, Transform, Load)。
DataX在阿里數據體系中扮演著關鍵的角色,它是一款高性能的離線數據同步工具,主要用于實現不同數據源之間的數據遷移和同步。DataX的設計理念是為了提供一種靈活、高效且可擴展的方式,來解決數據在各種異構系統之間的傳輸問題。
總的來說,數據同步有三種方式:
- 直連同步
- 數據文件同步
- 數據庫日志解析同步
本文將重點介紹后兩種,因為比較重要
1. 直連同步
定義了規范接口API,配置簡單,但性能較差
2. 數據文件同步
約定好文件編碼、大小、格式,直接從源系統生成數據的文本文件,然后上傳到文件服務器(FTP),然后加載到目標系統。
好處:
- 可以包含多個異構數據庫系統,如oracle、mysql、DB2等等
- 還可以傳輸互聯網的日志類數據,因為它們也是文本文件形式存儲
注意:
- 由于文件服務器上傳、下載可能會丟包,所以還需要上傳校驗文件
- 在源系統生成數據文件時,可以壓縮和加密,大大提高傳輸性能和安全性
3. 數據庫日志解析同步
通過直接解析日志文件,獲取發生變更的數據,從而滿足增量數據同步的需求
以Oracle舉例
- 通過源系統進程讀取歸檔日志文件,收集數據變化信息
- 判斷是否屬于被收集對象
- 解析到目標數據文件(以上三步均通過操作系統完成,不通過數據庫,因此不會影響源系統性能)
- 通過網絡協議傳輸
- 通過數據加載模塊導入
數據庫日志解析同步方式實現了實時與準實時同步的能力,延遲可以控制在毫秒級別,并且對業務系統的性能影響也較小,目前廣泛應用于從業務系統到數據倉庫系統的增量數據同步應用之中。
本書中還介紹了數據庫日志抽取中,針對不同的業務場景,須采用不同的落地手法。如類似刪除數據后產生的日志的處理方法,結合主鍵考慮,這里不再詳述。
4. 阿里數據倉庫的同步方式
4.1 阿里數據倉庫的特點
- 數據來源的多樣性,包括mysql等結構化數據,同時還包含web服務器產生的日志、各類圖片、視頻等
- 海量數據,目前阿里巴巴的大數據處理系統maxcompute的數據存儲達到EB級別,需要同步的數據量達到PB級別
以上兩點,使得處理數據需要采取不同策略
4.2 批量數據同步
阿里巴巴的 DataX 是一個能滿足多方向高自由度的異構數據交換服務產品。對于不同的數據源,DataX 通過插件的形式提供支持,將數據從數據讀出并轉換為中間狀態,同時維護好數據的傳輸、緩存等工作。數據在 DataX 中以中間狀態存在,并在目標數據系統中將中間狀態的數據轉換為對應的數據格式后寫入。目前 DataX 每天都需要處理 2PB 左右的批量數據同步任務,通過分布式模式,同步完所有的數據所需要的時間一般在 3 小時以內,有力保障了大數據同步的準確及高效性。
- Job:數據同步作業。
- Splitter:作業切分模塊,將一個大任務分解成多個可以并行的小任務。
- Sub-Job:數據同步作業切分后的小任務,或稱之為 Task。
- Reader:數據讀入模塊,負責運行切分后的小任務,將數據從源系統裝載到 DataX。
- Channel:Reader 和 Writer 通過 Channel 交換數據。
- Writer:數據寫出模塊,負責將數據從 DataX 導入目標數據系統。
4.3 實時數據同步
產生原因:
處理雙11這種需要實時匯總,實現秒級數據刷新的業務場景
具體來說,就是建立一個數據日志交換中心,從每臺服務器源源不斷的讀取日志數據,然后通知訂閱了這些日志的數據倉庫獲取,TimeTunnel能夠實現這樣的需求
示意圖和介紹:
具體來說,TT 是一種基于生產者、消費者和 Topic 消息標識的消息中間件,將消息數據持久化到 HBase 的高可用、分布式數據交互系統。
-
生產者:消息數據的產生端,向 TimeTunnel 集群發送消息數據,就是圖中的生產 Client。
-
消費者:消息數據的接收端,從 TimeTunnel 集群中獲取數據進行業務處理。
-
Topic:消息類型的標識,如淘寶 acookie 日志的 Topic 為 taobao_acookie,生產 Client 和消費 Client 均需要知道對應的 Topic 名字。
-
Broker 模塊:負責處理客戶端收發消息數據的請求,然后往 HBase 取發數據。
TimeTunnel 高效、穩定地支持阿里巴巴實時數據的同步,每天處理的日志類數據多達幾百 TB,數據庫 binlog 解析的實時增量數據同步也有幾百 TB,在天貓“雙 11”大促活動中,在峰值為每秒十幾萬筆交易量的極端情況下延遲控制在 3s 以內,有效保障了各種場景的實時數據應用。
以上就是今天的內容啦
點贊收藏關注,獲取更多干貨知識~