關於資料事實表彙總的模擬實現——原理
原始資料因為儲存了基本上原封不動的資料,導致系統儲存壓力增大,同時也造成查詢使系統效能的下降;而輕度綜合資料由於資料進行壓縮更為簡潔,通常情況下對資料倉儲的訪問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、並同步進行時間和狀態的更新 |
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/6517/viewspace-145461/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 關於資料事實表彙總的模擬實現——指令碼實現指令碼
- 關於模擬 new操作符的實現
- c++模擬實現順序表C++
- Vue響應式原理與模擬實現Vue
- 積體電路模擬器(SPICE)的實現原理
- promise的模擬實現Promise
- javascript模擬new的實現JavaScript
- JavaScript 模擬new的實現JavaScript
- new&instanceof原理解析及模擬實現
- javascript模擬實現replaceAll()JavaScript
- Java 實現彙總排序Java排序
- Java的Covariance設計原理和SAP ABAP的模擬實現Java
- svpwm的matlab模擬實現Matlab
- strlen函式的模擬實現函式
- 虛擬函式表-C++多型的實現原理函式C++多型
- iOS底層原理總結 - 關聯物件實現原理iOS物件
- 【Tomcat】Tomcat工作原理及簡單模擬實現Tomcat
- 虛擬函式的實現原理函式
- .Net 虛擬框架的實現原理框架
- 【Java】——模擬登入實現Java
- JavaScript模擬實現replaceAll方法JavaScript
- 分散式鎖實現彙總分散式
- qsort的模擬實現和練習
- JavaScript深入之new的模擬實現JavaScript
- JavaScript深入之bind的模擬實現JavaScript
- JavaScript 深入之new的模擬實現JavaScript
- JavaScript 深入之bind的模擬實現JavaScript
- 菜鳥學SSH(十五)——簡單模擬Hibernate實現原理
- 關於base64編碼的原理及實現
- 實戰模擬│單點登入 SSO 的實現
- 特效實現用查表法實現對水波的模擬(轉)特效
- 基於 Formily 的表單設計器實現原理分析 ORM
- 基於 Agent 的模型入門:Python 實現隔離模擬模型Python
- 模擬實現apply/call/bindAPP
- bind,call,apply模擬實現APP
- JavaScript中模擬實現jsonpJavaScriptJSON
- 模擬實現簡易版shell
- js模擬實現列舉效果JS