標籤:
什麼是資料幫浦
資料幫浦是指從來源資料源系統抽取目的資料來源系統需要的資料。實際應用中,資料來源較多採用的是關聯式資料庫。
[編輯]
資料幫浦的方式
(一) 全量抽取
全量抽取類似於資料移轉或資料複製,它將資料來源中的表或視圖的資料原封不動的從數 據庫中抽取出來,並轉換成自己的ETL 工具可以識別的格式。全量抽取比較簡單。
(二) 增量抽取
增量抽取只抽取自上次抽取以來資料庫中要抽取的表中新增或修改的資料。在ETL 使用過程中,增量抽取較全量抽取應用更廣。如何捕獲變化的資料是增量抽取的關鍵。對捕獲方法一般有兩點要求:準確性,能夠將業務系統中的變化資料按一定的頻率準確地捕獲到;效能,不能對業務系統造成太大的壓力,影響現有業務。目前增量資料幫浦中常用的捕獲變化資料的方法有:
(a) 觸發器方式(又稱快照式)
在要抽取的表上建立需要的觸發器,一般要建立插入、修改、刪除三個觸發器,每當源表中的資料發生變化,就被相應的觸發器將變化的資料寫入一個臨 時表,抽取線程從暫存資料表中抽取資料,暫存資料表中抽取過的資料被標記或刪除。 優點:資料幫浦的效能高,ETL 載入規則簡單,速度快,不需要修改業務系統資料表結構,可以實現資料的遞增載入。 缺點:要求業務表建立觸發器,對業務系統有一定的影響,容易對來源資料庫構成威脅。
(b) 時間戳記方式
它是一種基於快照比較的變化資料擷取方式,在源表上增加一個時間戳記欄位,系統中更新修改表資料的時候,同時修改時間戳記欄位的值。當進行資料幫浦 時,通過比較上次抽取時間與時間戳記欄位的值來決定抽取哪些資料。有的資料庫的時間戳記支援自動更新,即表的其它欄位的資料發生改變時,自動更新時間戳記欄位的 值。有的資料庫不支援時間戳記的自動更新,這就要求業務系統在更新業務資料時,手工更新時間戳記欄位。
優點:同觸發器方式一樣,時間戳記方式的效能也比較好,ETL 系統設計清晰,來源資料抽取相對清楚簡單,可以實現資料的遞增載入。
缺點:時間戳記維護需要由業務系統完成,對業務系統也有很大的傾
入性(加入額外的時間戳記欄位),特別是對不支援時間戳記的自動更新的資料庫,還要求業務系統進行額外的更新時間戳記操作;另外,無法捕獲對時間戳記以前資料的delete和update 操作,在資料準確性上受到了一定的限制。
(c) 全表刪除插入方式
每次ETL 操作均刪除目標表資料,由ETL 全新載入資料。
優點:ETL 載入規則簡單,速度快。
缺點:對於維表加外鍵不適應,當業務系統產生刪除資料操作時,綜合資料庫將不會記錄到所刪除的曆史資料,不可以實現資料的遞增載入;同時對於目標表所建立的關聯關係,需要重新進行建立。
(d) 全表比對方式
全表比對的方式是ETL 工具事先為要抽取的表建立一個結構類似的暫存資料表,該暫存資料表記錄源表主鍵以及根據所有欄位的資料計算出來,每次進行資料幫浦時,對源表和暫存資料表進行的比對, 如有不同,進行Update 操作,如目標表沒有存在該主索引值,表示該記錄還沒有,即進行Insert 操作。
優點:對已有系統資料表結構不產生影響,不需要修改業務操作程式,所有抽取規則由ETL完成,管理維護統一,可以實現資料的遞增載入,沒有風險。
缺點:ETL 比對較複雜,設計較為複雜,速度較慢。與觸發器和時間戳記方式中的主動通知不同,全表比對方式是被動的進行全表資料的比對,效能較差。當表中沒有主鍵或唯一列且含有重複記錄時,全表比對方式的準確性較差。
(e)日誌表方式
在業務系統中添加系統日誌表,當業務資料發生變化時,更新維護日誌表內容,當作ETL 載入時,通過讀日誌表資料決定載入那些資料及如何載入。 優點:不需要修改業務系統資料表結構,來源資料抽取清楚,速度較快。可以實現資料的遞增載入。 缺點:日誌表維護需要由業務系統完成,需要對業務系統業務操作程式作修改,記錄日誌資訊。日誌表維護較為麻煩,對原有系統有較大影響。工作量較大,改動較 大,有一定風險。
(f) Oracle 變化資料捕捉(CDC 方式)
通過分析資料庫自身的日誌來判斷變化的資料。Oracle 的改變資料擷取(CDC,Changed Data Capture)技術是這方面的代表。CDC 特性是在Oracle9i 資料庫中引入的。CDC 能夠協助你識別從上次抽取之後發生變化的資料。利用CDC,在對源表進行insert、update 或 delete 等操作的同時就可以提取資料,並且變化的資料被儲存在資料庫的變化表中。這樣就可以捕獲發生變化的資料,然後利用資料庫檢視以一種可控的方式提供給目標系 統。CDC 體繫結構基於發布/訂閱模型。發行者捕捉變化資料並提供給訂閱者。訂閱者使用從發行者那裡獲得的變化資料。通常,CDC 系統擁有一個發行者和多個訂閱者。發行者首先需要識別捕獲變化資料所需的源表。然後,它捕捉變化的資料並將其儲存在特別建立的變化表中。它還使訂閱者能夠 控制對變化資料的訪問。訂閱者需要清楚自己感興趣的是哪些變化資料。一個訂閱者可能不會對發行者發布的所有資料都感興趣。訂閱者需要建立一個訂閱者視圖來 訪問經發行者授權可以訪問的變化資料。CDC 分為同步模式和非同步模式,同步模式即時的捕獲變化資料並儲存到變化表中,發行者與訂閱都位於同一資料庫中;非同步模式則是基於Oracle 的流複製技術。
優點:提供了便於使用的API 來設定CDC 環境,縮短ETL 的時間。不需要修改業務系統資料表結構,可以實現資料的遞增載入。
缺點:業務系統資料庫版本與產品不統一,難以統一實現,實現過程相對複雜,並且需深入研究方能實現。或者通過第三方工具實現,價格昂貴。
什麼是資料幫浦