關於資料事實表彙總的模擬實現 原理

2021-09-05 05:27:39 字數 1519 閱讀 1677

在資料倉儲中通常會儲存雙重粒度級別的資料來滿足不同的需要,輕度綜合資料和原始資料,在原始資料層面上可以訪問細節資料,而在分析層面則訪問輕度綜合資料。

原始資料因為儲存了基本上原封不動的資料,導致系統儲存壓力增大,同時也造成查詢使系統效能的下降;而輕度綜合資料由於資料進行壓縮更為簡潔,通常情況下對資料倉儲的訪問 95%以上都是通過輕度綜合資料訪問來進行的。

資料增量聚合的實現和增量抽取類似,都是盡量以時間戳的方式,儘量減少每次事務的開銷。

下面開始對基於時間戳的資料增量聚合進行系統設計:

1、 首先需要定義一張資料字典表,定義需要進行處理的任務,其中主要包括任務名稱,任務描述,本次聚合開始時間、結束時間、當前時間、執行的系統時間,狀態,最大時限等等。

序號 欄位名稱

字段描述

字段型別

備註 1

factprocname

任務名稱

varchar(40)

2 factdesc

任務描述

varchar(100)

3 facttype

任務型別

int

4 lastlogtime

當前處理時間

datetime

5 begintime

本次任務開始時間

datetime

6 endtime

本次任務結束時間

datetime

7 status

本次任務執**況

varchar(20)

finshed

running

exception

8 loglimit

本次任務處理最大時限

int

9 step

本次任務處理距離當前時間最大間隔

int

10 cancelflag

取消標誌

int

1,取消

0,正常

11 curtime

本次任務執行的系統時間

datetime 

2、 有了這張字典表就可以開始進行工作了,為了方便表達,暫時處理成偽**形式,同時只以乙個表的處理為例。

1、獲取上次處理的惡最後時間,狀態和取消情況

2、如果取消狀態,則直接退出

3、判斷是否存在該任務

4、如果沒有,則新增,如果存在更新當前狀態為執行

5、獲取本次任務開始時間和結束時間

6、並根據系統表中的最大處理時限和時間間隔進行擷取時間

7、根據控制事務處理大小的粒度,進行迴圈抽取

8、 insert into t_fact_table(targetfieldlist)

select sourcefieldlist from t_org_table

where logdate> begindate

and logdate< begindate+粒度

9、並同步進行時間和狀態的更新

關於資料增量抽取的模擬實現 指令碼實現

本文主要是針對關於資料增量抽取的模擬實現 原理 進行實現的 實現的環境 業務資料庫 oracle9i 資料倉儲資料庫 sqlserver2000 1 前提sqlserver伺服器已經安裝oracle驅動,不再詳細累述 2 建立鏈結資料庫 開啟企業管理器 安全性 鏈結伺服器 右鍵新建 一般情況下執行c...

關於資料增量抽取的模擬實現 原理

原創於2006年12月28日,2009年10月15日遷移至此。etl是資料倉儲的乙個重要處理環節,extract即是從業務資料庫中抽取資料 transform即是根據業務邏輯規則對資料進行加工的過程,load即是把資料載入到資料倉儲的過程。通常為了盡可能的減少對業務系統的壓力和效能影響,或者因為網路...

關於資料增量抽取的模擬實現 原理

etl是資料倉儲的乙個重要處理環節,extract即是從業務資料庫中抽取資料 transform即是根據業務邏輯規則對資料進行加工的過程,load即是把資料載入到資料倉儲的過程。通常為了盡可能的減少對業務系統的壓力和效能影響,或者因為網路傳輸異構資料庫等原因,一般都是根據特定的增量抽取原則,將資料從...