抽取處理需要重點考慮增量抽取,也被稱為變化資料捕獲,簡稱cdc。假設乙個資料倉儲系統,在每天夜裡的業務低峰時間從操作型源系統抽取資料,那麼增量抽取只需要過去24小時內發生變化的資料。變化資料捕獲也是建立準實時資料倉儲的關鍵技術。
當你能夠識別並獲得最近發生變化的資料時,抽取及其後面的轉換、裝載操作顯然都會變得更高效,因為要處理的資料量會小很多。遺憾的是,很多源系統很難識別出最近變化的資料,或者必須侵入源系統才能做到。變化資料捕獲是資料抽取中典型的技術挑戰。
常用的變化資料捕獲方法有時間戳、快照、觸發器和日誌四種。相信熟悉資料庫的讀者對這些方法都不會陌生。時間戳方法需要源系統有相應的資料列表示最後的資料變化。快照方法可以使用資料庫系統自帶的機制實現,如oracle的物化檢視技術,也可以自己實現相關邏輯,但會比較複雜。觸發器是關係資料庫系統具有的特性,源表上建立的觸發器會在對該錶執行insert、update、delete等語句時被觸發,觸發器中的邏輯用於捕獲資料的變化。日誌可以使用應用日誌或系統日誌,這種方式對源系統不具有侵入性,但需要額外的日誌解析工作。
cdc大體可以分為兩種,一種是侵入式的,另一種是非侵入式的。所謂侵入式的是指cdc操作會給源系統帶來效能的影響。只要cdc操作以任何一種方式對源庫執行了sql語句,就可以認為是侵入式的cdc。基於時間戳的cdc、基於觸發器的cdc、基於快照的cdc是侵入性的,基於日誌的cdc是非侵入性的。下表總結了四種cdc方案的特點。
時間戳方式
快照方式
觸發器方式
日誌方式
能區分插入/更新否是
是是週期內,檢測到多次更新否否
是是能檢測到刪除否是
是是不具有侵入性否否
否是支援實時否否
是是需要dba否否
是是不依賴資料庫是是
否否
Hadoop MongoDB的四種方案
背景 公司核心業務庫現存在mongodb中,分布在6臺mongodb節點。現面臨如下問題 1.最大的一張表有10多個g,mongodb在查詢方面尚能勝任,但是涉及到複雜計算時會比較吃力。2.mongodb中有三張表,分別記錄了終端使用者在三個不同系統 遊戲,桌牌等 的行為,需要按使用者匯聚成一張表。...
四種測試層次的比較
名稱測試物件 側重點參照物 充分性的評價方法 時機測試方法 測試執行者 單元測試 軟體的最小單元,如函式 方法等 邏輯的正確性 詳細設計 源程式 分支等覆蓋率 軟體中的基本組成單位完成後,邊開發邊測試 白盒測試 動態測試 一般是開發人員 整合測試 軟體的模組 子系統 介面的正確性 概要設計 詳細設計...
四種測試層次的比較
名稱 測試物件 側重點參照物 充分性的評價方法 時機測試方法 測試執行者 單元測試 軟體的最小單元,如函式 方法等 邏輯的正確性 詳細設計 源程式 分支等覆蓋率 軟體中的基本組成單位完成後,邊開發邊測試 白盒測試 動態測試 一般是開發人員 整合測試 軟體的模組 子系統 介面的正確性 概要設計 詳細設...