1. 程式人生 > >《BI專案筆記》增量ETL資料抽取的策略及方法

《BI專案筆記》增量ETL資料抽取的策略及方法

增量抽取 增量抽取只抽取自上次抽取以來資料庫中要抽取的表中新增或修改的資料。在ETL使用過程中。增量抽取較全量抽取應用更廣。如何捕獲變化的資料是增量抽取的關鍵。對捕獲方法一般有兩點要求:準確性,能夠將業務系統中的變化資料按一定的頻率準確地捕獲到;效能,不能對業務系統造成太大的壓力,影響現有業務。目前增量資料抽取中常用的捕獲變化資料的方法有:
a.觸發器:在要抽取的表上建立需要的觸發器,一般要建立插入、修改、刪除三個觸發器,每當源表中的資料發生變化,就被相應的觸發器將變化的資料寫入一個臨時表,抽取執行緒從臨時表中抽取資料,臨時表中抽取過的資料被標記或刪除。觸發器方式的優點是資料抽取的效能較高,缺點是要求業務表建立觸發器,對業務系統有一定的影響。

b.時間戳:它是一種基於快照比較的變化資料捕獲方式,在源表上增加一個時間戳欄位,系統中更新修改表資料的時候,同時修改時間戳欄位的值。當進行資料抽取時,通過比較系統時間與時間戳欄位的值來決定抽取哪些資料。有的資料庫的時間戳支援自動更新,即表的其它欄位的資料發生改變時,自動更新時間戳欄位的值。有的資料庫不支援時間戳的自動更新,這就要求業務系統在更新業務資料時,手工更新時間戳欄位。同觸發器方式一樣,時間戳方式的效能也比較好,資料抽取相對清楚簡單,但對業務系統也有很大的傾入性(加入額外的時間戳欄位),特別是對不支援時間戳的自動更新的資料庫,還要求業務系統進行額外的更新時間戳操作。另外,無法捕獲對時間戳以前資料的delete和update操作,在資料準確性上受到了一定的限制。

c.全表比對:典型的全表比對的方式是採用MD5校驗碼。ETL工具事先為要抽取的表建立一個結構類似的MD5臨時表,該臨時表記錄源表主鍵以及根據所有欄位的資料計算出來的MD5校驗碼。每次進行資料抽取時,對源表和MD5臨時表進行MD5校驗碼的比對,從而決定源表中的資料是新增、修改還是刪除,同時更新MD5校驗碼。MD5方式的優點是對源系統的傾入性較小(僅需要建立一個MD5臨時表),但缺點也是顯而易見的,與觸發器和時間戳方式中的主動通知不同,MD5方式是被動的進行全表資料的比對,效能較差。當表中沒有主鍵或唯一列且含有重複記錄時,MD5方式的準確性較差。

d.日誌對比:通過分析資料庫自身的日誌來判斷變化的資料。Oracle的改變資料捕獲(CDC,ChangedDataCapture)技術是這方面的代表。CDC特性是在Oracle9i資料庫中引入的。CDC能夠幫助你識別從上次抽取之後發生變化的資料。利用CDC,在對源表進行insert、update或delete等操作的同時就可以提取資料,並且變化的資料被儲存在資料庫的變化表中。這樣就可以捕獲發生變化的資料,然後利用資料庫檢視以一種可控的方式提供給目標系統。CDC體系結構基於釋出者/訂閱者模型。釋出者捕捉變化資料並提供給訂閱者。訂閱者使用從釋出者那裡獲得的變化資料。通常,CDC系統擁有一個釋出者和多個訂閱者。釋出者首先需要識別捕獲變化資料所需的源表。然後,它捕捉變化的資料並將其儲存在特別建立的變化表中。它還使訂閱者能夠控制對變化資料的訪問。訂閱者需要清楚自己感興趣的是哪些變化資料。一個訂閱者可能不會對釋出者釋出的所有資料都感興趣。訂閱者需要建立一個訂閱者檢視來訪問經發布者授權可以訪問的變化資料。CDC分為同步模式和非同步模式,同步模式實時的捕獲變化資料並存儲到變化表中,釋出者與訂閱都位於同一資料庫中。非同步模式則是基於Oracle的流複製技術。

綜上所述:本BI專案中採取時間戳方式.

相關推薦

BI專案筆記增量ETL資料抽取策略方法

增量抽取 增量抽取只抽取自上次抽取以來資料庫中要抽取的表中新增或修改的資料。在ETL使用過程中。增量抽取較全量抽取應用更廣。如何捕獲變化的資料是增量抽取的關鍵。對捕獲方法一般有兩點要求:準確性,能夠將業務系統中的變化資料按一定的頻率準確地捕獲到;效能,不能對業務系統造成太大的壓力,影響現有業務。目前增量資料抽

增量ETL資料抽取策略方法

這是很久以前在處理增量時的老文章,近年實施大量專案中的經驗處理方式是往往不得已時才採取增量處理的方式。而更多采用的方式是嚴格控制操作資料視窗,在滿足業務限制及分析需求的前提下力求資料更新視窗最小化,這種最簡單的策略反而被證明是一種簡單、快速、高效的做法。以下是舊文: 增

BI專案筆記》多維資料集中度量值設計時的聚合函式

Microsoft SQL Server Analysis Services 提供了幾種函式,用來針對包含在度量值組中的維度聚合度量值。預設情況下,度量值按每個維度進行求和。但是,通過 AggregateFunction 屬性,您可以修改此行為。聚合函式的累加性可確定度量值如何在多維資料集的所有維度中進行聚合

BI專案筆記》建立多維資料集Cube(1)

有兩個事實表,因此就有兩個度量值組,並且嚮導將為非維度鍵的事實表中的每一個數值列建立一個度量值。由於我們這裡不需要那麼多,所以只選擇部分度量值。另外要注意,度量值的名稱源於事實表中的列,所有名稱由可能相同。但是在多維資料集中,由於度量值的名稱必須是唯一的,所以嚮導會在重複的度量值名稱後新增所屬的度量值組名

BI專案筆記》SSAS部署時發生的問題——元資料管理器中存在錯誤 解決辦法

在生成和部署期間出錯。是否繼續?解決辦法: 用Microsoft SQL Server Management Studio 連線Analysis Services 然後刪除多維資料庫,重新佈署。這樣就OK的。 (adsbygoogle = window.adsbygoogle

BI專案筆記》建立多維資料集Cube(2)

本節建立: 歷年的初煙水分均值變化分析Cube:區域維度:地州,專縣時間維度:年等級維度:大等級,小等級指標:水分均值資料來源檢視: 資料處理: ALTER TABLE T_QualMoisture_Middle ALTER COLUMN V_Produce_ID VARCHAR(50)

BI專案筆記》歷年感官評吸質量均值變化分析Cube的建立

分析主題主要維度:菸葉級別、菸葉級別按等級資訊、菸葉級別按分級標準(標準維度)產地(父子維度)檢測時間(時間維度,以Tqc_Raw_SmokingTest .CheckTime欄位派生CheckDate欄位)樣品維度 主要指標: 香氣特徵_清香_平均值香氣特徵_甜香_平均值香氣特徵_焦香_平均值煙氣特徵_

BI專案筆記》歷年外觀質量均值變化分析Cube的建立

分析主題主要維度:菸葉級別、菸葉級別按等級資訊、菸葉級別按分級標準(標準維度)產地(父子維度)檢測時間(時間維度,以Tqc_Raw_PresentationQuality . CheckTime欄位派生CheckDate欄位)樣品維度 主要指標:部位_平均值顏色_平均值成熟度_平均值油分_平均值身份_平均值

BI專案筆記》報到資訊分析Cube

--處理丟失外來鍵關係資料 SELECT * FROM T_ReportLeafGrade WHERE FSubFID NOT IN ( SELECT FID FROM T_RaceLeafReport )

BI專案筆記》無法解密受保護的 XML 節點“DTS:Password” 解決辦法

說明: 無法解密受保護的 XML 節點“DTS:Password”,錯誤為 0x8009000B“該項不適於在指定狀態下使用。”。可能您無權訪問此資訊。當發生加密錯誤時會出現此錯誤。請確保提供正確的金鑰。 解決辦法:1.在Integration Services中找到要執行的包,右鍵選擇匯出包,在匯出包屬性

BI專案筆記》建立時間維度(2)

建立步驟: 序號 選擇的屬性 重新命名後的名稱 屬性類別 1 DateKey D

BI專案筆記》建立時間維度(1)

SSAS Date 維度基本上在所有的 Cube 設計過程中都存在,很難見到沒有時間維度的 OLAP 資料庫。但是根據不同的專案需求, Date 維度的設計可能不大相同,所以在設計時間維度的時候需要搞清楚幾個問題: 你的業務涉及到的最低的細節級別是什麼?比如按季度檢視報表還是按月份,或者按周,或者再甚者

BI專案筆記》建立父子維度

建立步驟: 而ParentOriginID其實就是對應的ParentOriginID,它的 Usage 必須是 Parent 才能表示這樣的一個父子維度。 檢視OriginID屬性, Usage 是 Key。 在這裡一定要注意,父子關係層次結構中的子級必須是維度的關鍵屬性,所以OriginID這裡的

BI專案筆記》歷年的初煙水分均值變化分析Cube的建立

主要維度: 班組班次檢測項質檢日期(時間維度)加工客戶加工型別收購型別生產線產地菸葉級別 主要指標:慢速測定_平均值快速測定_平均值紅外測定_平均值ETL設計 需要抽取的維度表: 序號 表名 說明 備註 1 T_Departme

BI專案筆記》基於雪花模型的維度設計

GBGradeCode 外來鍵關係: 1 菸葉等級 T_GBGradeCode.I_DistinctionID=T_Distinction.I_Distinc

BI專案筆記》挑選產出分析Cube

資料來源設定: 資料處理邏輯: --I_GBGradeID SELECT * FROM T_NPick_PkgMov WHERE I_GBGradeID NOT IN ( SELECT I_GBGradeID FROM

迴歸測試的策略方法

業界的迴歸測試策略基本上有兩種:   ● 全部迴歸,也就是把之前的所有的測試用例,無論是手動的,還是自動的,全部跑一遍   ● 部分迴歸,定性分析程式碼改動有哪些影響,程式碼改動的檔案/模組和其他的檔案/模組的依賴性,然後選擇被影響到的檔案/模組相應的測試用例來跑一遍   

Oracle BI基礎之ETL資料增量抽取方案

一篇好文見百度文庫: 一、 ETL 簡介 資料整合是把不同來源、格式和特點的資料在邏輯上或物理上有機地集中,從而提供全面的資料共享,是企業商務智慧、資料倉庫系統的重要組成部分。ETL 是企業資料整合的主要解決方案。 隨著資訊化建設的發展,巨大的投資為公安行業建立

ETL工具kettle怎麽進行增量數據抽取:一、通過標誌位

text term ESS log 繼續 需要 roc 默認值 RoCE 在平時的操作過程中可能大家需要經常進行增量的數據抽取,方法有很多種,接下來幾天講給大家介紹幾種我本人經常使用的幾種方式;首先給大家介紹我最喜歡的一種,就是通過標誌位;操縱方法如下,在源表中增加一個標識

ETL工具kettle怎麽實現增量數據抽取:二 時間戳

字段 ima 數據抽取 最好 工具 water 增量 -o ket 再進行增量數據抽取的時候,通過標誌位來進行之外,還可以通過時間戳,所謂的時間戳就是某個時間字段,最好每條記錄的該字段都是非空的;這種方法很簡單,就是在輸入的時候增加where條件;where條件語句就是一個