北京住房建設部網站南寧網站推廣大全
一、數據采集
二、數據同步
2.1、數據同步方式:
數據同步的三種方式:直連方式、數據文件同步、數據庫日志解析方式
關系型數據庫的結構化數據:MYSQL、Oracle、DB2、SQL Server
非關系型數據庫的非結構化數據(數據庫表形式存儲):OceanBase、HBase、MongoDB
文件系統的結構化和非結構化數據(文件形式存儲):阿里云對象存儲OSS、文件存儲NAS
2.1.1、直連同步
通過規(guī)范接口API(ODBC/JDBC等)和基于動態(tài)鏈接庫的方式直連業(yè)務庫
適合:適合操作型業(yè)務系統數據同步
優(yōu)點:配置簡單、方便
缺點:對源系統性能影響 -- 可考慮主備的方式從備庫抽取,但當數據量很大時,抽取性能很差,不適合從業(yè)務庫到數倉的數據同步
主備抽取:
?
?2.1.2、數據文件同步
數據文件通過約定好的文件編碼、格式、大小等將源庫生成的數據的文本文件,通過專門的文件服務器(如FTP服務器),加載到目標數據庫系統
適合:數據源有多個異構數據庫系統(MYSQL、Oracle、SQL Server、DB2等),互聯網的日志類數據通常是文本文件,也適合
優(yōu)點:適合多個數據源
缺點:文件服務器上傳下載易丟包,通常在上傳時候伴隨一份校驗文件,記錄數據文件數據量和大小。同時也可以在上傳下載時候進行壓縮,減少傳輸量
?
2.1.3、數據庫日志解析(主流)
大多主流庫實現了日志文件系統進行系統恢復、主從同步,所以可以通過解析日志文件進行獲取數據變更,達到增量數據同步需求。
以Orcale為例,通過源系統進程,讀取歸檔日志文件收集變化數據信息,解析到對應目標數據文件中(這種讀操作在操作系統層面,不影響源系統性能---在機器層面)。然后通過網絡協議,實現源系統和目標系統之間數據文件傳輸(相關進程保證數據文件接受和網絡包的順序,童工網絡傳輸冗余,確保文件完整性)。數據到目標系統后可通過數據加載模塊完成數據導入,完成同步。
適用:絕大部分實現了日志文件系統的主流數據庫,用于絕大多數業(yè)務庫到數倉增量同步
優(yōu)點:效率高、性能好,達到了實時和準實時同步能力(ms級別延遲),對源庫性能影響很小
缺點:數據延遲(例:業(yè)務庫做補錄會導致數據增量超出系統處理峰值,導致數據延遲);
? ? ? ? ??投入較大,需要部署一個實時抽取任務抽取數據同步;
? ? ? ? ? 數據飄移和遺漏:“零點飄移”問題
注:日志抽取獲得所有數據記錄變更(增-I、刪-D、改-U),所以我們需要根據主鍵去重按照時間倒排去獲取最后狀態(tài)變化情況
1、不過濾刪除。不管是否是刪除操作,都獲取同一主鍵最后的變更記錄
2、過濾最后一條刪除記錄。如果同一主鍵最后一跳變更記錄是刪除操作,就取倒數第二條變更記錄
3、過濾刪除和之前的操作。如果同一主鍵的變更記錄中有刪除操作,則根據操作時間將刪除操作對應的記錄和之前的記錄都過濾掉