資料同步基礎:資料同步技術更通用的含義是不同系統間的資料流轉,有多種不同的應用場景。主資料庫與備份資料庫之間的資料備份,以及主系統與
子系統之間的資料更新,屬於同型別不同集群資料庫之間的資料同步。
另外,還有不同地域、不同資料庫型別之間的資料傳輸交換,比如分布
式業務系統與資料倉儲系統之間的資料同步。對於大資料系統來說,包含資料從業務系統同步進入資料倉儲和資料從資料倉儲同步進入資料
服務或資料應用兩個方面。總的來說,同步方式可以分為三種 直連同步 、資料檔案同步和資料庫日誌解析同步。
直連同步:這種方式配置簡單,實現容易,比較適合操作型業務系統的資料同步。但是業務庫直連的方式對源系統的效能影響較大,當執行大批量數
據同步時會降低甚至拖垮業務系統的效能。如果業務庫採取主備策略,則可以從備庫抽取資料,避免對業務系統產生效能影響。但是當資料量
較大時,採取此種抽取方式效能較差,不太適合從業務系統到資料倉儲
系統的同步。
資料檔案同步:資料檔案同步通過約定好的檔案編碼、大小、格式等,直接從源系統生成資料的文字檔案,由專門的檔案伺服器,如 ftp 伺服器傳輸到
目標系統後,載入到目標資料庫系統中。當資料來源包含多個異構的資料
庫系統(如 mys ql oracle ql server db2 等)時,用這種方式比較簡單、實用。另外,網際網路的日誌類資料,通常是以文字檔案形式存
在的,也適合使用資料檔案同步方式。
個校驗檔案,該校驗檔案記錄了資料檔案的資料量以及檔案大小等校驗
資訊,以供下游目標系統驗證資料同步的準確性。
另外,在從源系統生成資料檔案的過程中,可以增加壓縮和加密功能,傳輸到目標系統以後,再對資料進行解壓縮和解密 這樣可以大大
提高檔案的傳輸效率和安全性。
資料庫日誌解析同步:
目前,大多數主流資料庫都已經實現了使用日誌檔案進行系統恢復
,因為日誌 檔案資訊足夠豐富,而且資料格式也很穩定,完全可以通
過解析日誌檔案獲取發生變更的資料,從而滿足增量資料同步的需求。
oracle 為例,可以通過源系統的程序,讀取歸檔日誌檔案用以收集變化的資料資訊,並判斷日誌中的變更是否屬於被收集物件,將其
解析到目標資料檔案中。這種讀操作是在作業系統層面完成的,不需要
通過資料庫,因此不會給源系統帶來效能影響。
然後可通過網路協議,實現源系統和目標系統之間的資料檔案傳輸。相關程序可以確保資料檔案的正確接收和網路資料報的正確順序,
並提供網路傳輸冗餘,以確保資料檔案的完整性。
資料檔案被傳輸到目標系統後,可通過資料載入模組完成資料的導人,從而實現資料從源系統到目標系統的同步。
資料庫日誌解析同步方式實現了實時與準實時同步的能力,延遲可以控制在毫秒級別,並且對業務系統的效能影響也比較小,目前廣泛應
用於從業務系統到資料倉儲系統的增量資料同步應用之中。
通過資料庫日誌解析進行同步的方式效能好、效率高,對業務系統的影響較小。但是它也存在如下一些問題:
(1)資料延遲。例如,業務系統做批量補錄可能會使資料更新量超出系統處理峰值,導致資料延遲。
(2)投人較大。採用資料庫日誌 抽取的方式投入較大,需要在源資料庫與目標資料庫之間部署 乙個系統實時抽取資料。
(3)資料漂移和遺漏。資料漂移, 一般是對增量表而言的,通常是指該表的同乙個業務日期資料中包含前一天或後一天凌晨 附近的
資料或者丟失當天的變更資料。
批量資料同步:
要實現各類資料庫系統與資料倉儲系統之間的批量雙向資料同步,就需要先將資料轉
換為中間狀態,統一資料格式。
阿里巴巴的 datax 就是這樣 個能滿足多方向高自由度的異構資料交換服務產品。對於不同的資料來源, datax 通過外掛程式的形式提供支援,
將資料從資料來源讀出並轉換為中間狀態,同時維護好資料的傳輸、快取
等工作。
•job :資料同步作業
• splitter :作業切分模組,將 個大任務分解成多個可以並發行的小任務
• sub-job :資料同步作業切分後的小任務,或稱之為 task
• read er :資料讀人模組,負 執行切分後的小任務,將資料從源系統 載到 datax
• channel: eader writer 通過 hannel 交換資料。
• writer :資料 出模組,負責將資料從 datax 導人目標資料系統。
分庫分表處理:
高效同步和批量同步:
增量與全量同步的合併:現在我們比較推薦的方式是全外連線( full outer join) +資料全量覆蓋
的時間週期(如3-7 天)
另外,當業務系統的表有物理刪除資料的操作,而資料倉儲需要保留所有歷史資料時,也可以選擇這種方式,在資料倉儲中永久保留最新
全量資料快照。
資料漂移的處理:通常是指 ods 表的同乙個業務日期資料中包含前一天或後一天凌晨附近的資料或者丟失當天的變更資料。
由於 ods 需要承接面向歷史的細節資料查詢需求,這就需要物理落地到資料倉儲的 ods 表按時間段來切分進行分割槽儲存 ,通常的做法
是按某些時間戳字段來切分,而實際上往往由於時間戳字段的準確性問
題導致發生資料漂移。
處理方法主要有以下兩種:
( l )多獲取後一 天的資料
(2 )通過多個時間戳字段限制時間來獲取相對準確的資料
最後將兩份資料根據訂單做全外連線,將漂移資料回補到當天資料中。
大資料之路 阿里巴巴大資料實踐 資料同步要點
使用者建立資料同步任務,並提交該同步任務。根據系統提前獲知及設定的資料,估算該同步任務需要同步的資料量 平均同步速度 首輪執行期望的執行緒數 需要同步的匯流排程數。根據需要同步的匯流排程數將待同步的資料拆分成相 等數量的資料塊,乙個執行緒處理乙個資料塊,並將該任務對應的所有執行緒提交至同步控制器。同...
軟考之路 資料結構
官方來說,資料結構是計算機儲存,組織資料的方式。資料結構是指相互之間存在一種或多種特定關係的資料元素的集合和該集合中資料元素之間的關係組成。通常情況下,精心選擇的資料結構可以帶來更高的執行或者儲存效率。data stucture d,r 其中d是資料元素的集合,r是該集合中所有元素之間的關係的有限集...
python之路 資料型別初識
python開發之路 資料型別初識 資料型別非常重要。不過我這麼說吧,他不重要我還講個屁?好,既然有人對資料型別不了解,我就講一講吧。反正這東西不需要什麼python 資料型別我講的很死板。大家諒解。資料型別有很多,因為在python3和python2裡用變數執行命令是預設是str字串型別的,如果要...