馬根峰 趙明



摘 ?要: 數據倉庫以其面向主題的、集成的、不可更新的、隨時間不斷變化等特征,更好地支持了企業或組織的決策分析處理。它通過將數據按照不同的綜合程度(即粒度)來組織,以滿足不同分析的需要。星形模式是基于關系數據庫的數據倉庫中的一個著名概念,由于星形連接模式的設計思想能夠滿足人們從不同觀察角(維)度分析數據的需求,所以在基于關系數據庫的數據倉庫設計中被廣泛使用。本文主要介紹了《廣東省高速公路一張網資金結算情況分析系統》中的數據倉庫技術。
關鍵詞: 數據倉庫; 星形模式; 維度; 萬能數據庫查詢分析器; OLAP
中圖分類號:TP392 ? ? ? ? ?文獻標志碼:A ? ? 文章編號:1006-8228(2015)07-39-03
Guangdong highway settlement business analysis system based on star schema in data warehousing
Ma Genfeng1, Zhao Ming2
(1. Guangdong Unitoll Services incorporated, Guangzhou, Guangdong 510620, China; 2. Tianjin University of Technology and Education)
Abstract: Data warehouse is characterized by its subject-oriented, integrated, non-renewable, time-changing, and better support for decision analysis processing of enterprise or organization. It organizes the data in accordance with different degree of synthesis (i.e. granularity), to meet the needs of different analysis. The star schema is a well-known concept of data warehouse based on relational database, due to the design idea of the star schema can meet the demands for data analysis of the different observation angle (dimension), so it is widely used. This paper mainly introduces the star schema of data warehousing used in Guangdong highway settlement business analysis system.
Key words: data warehousing; star schema; dimensionality; DB query analyzer; OLAP
0 引言
數據倉庫技術用以處理面向主題的,集成的,不可更新的,隨時間不斷變化的數據集合。它通過將數據按照不同的綜合程度(即粒度)來組織,以滿足不同分析的需要[5]。
星形模式是基于關系數據庫的數據倉庫中的一個著名概念,由于星形連接模式的設計思想能夠滿足人們從不同觀察角(維)度分析數據的需求,加上數據倉庫通常用來回答綜合性的問題,所以在基于關系數據庫的數據倉庫設計中廣泛地使用了星形模式,如電信運營商中普遍進行的話務量總體分析[1]。
本文主要圍繞“廣東省高速公路一張網資金結算情況分析系統”中如何使用數據倉庫技術來實現“資金結算情況的分析”這個主題進行探討。
1 系統中的數據倉庫設計
1.1 廣東聯合電子結算中心操作型環境DB2數據庫服務器下的數據組織情況
在廣東聯合電子結算中心,“異常流水”、“流水拆分”、“流水上傳”等關系模式有以下。
⑴ 粵通卡精確拆分結果明細表
tb_cardaccuratesplitresult(流水號,工班,出口路段…,收入路段)
⑵ 現金精確拆分結果明細表
tb_cashaccuratesplitresult(流水號,工班,出口路段…,收入路段)
⑶ 流水非精確拆分記錄表
tb_inaccuratesplitrecord(流水號,工班,出口路段…,收入路段)
⑷ 拆分流水異常記錄表
tb_outlistspliterrorgb(流水號,工班,出口路段,…,錯誤類型代碼)
⑸ 拆分流水異常記錄歷史表
tb_outlistspliterrorgb_his(流水號,工班,出口路段,…,錯誤類型代碼)
⑹ 流水異常記錄表
tb_outlisterrorgb(流水號,工班,出口路段,…,錯誤類型代碼)
⑺ 流水異常記錄歷史表
tb_outlisterrorgb_his(流水號,工班,出口路段,…,錯誤類型代碼)
⑻ 出口流水表
tb_outlistgb(流水號,工班,出口路段,…,上傳時間)
1.2 數據倉庫設計[1]
設計步驟簡化為三步:
⑴ 概念模型設計;
⑵ 邏輯模型設計;
⑶ 數據倉庫生成。
1.2.1 概念模型設計中的界定系統邊界
在廣東聯合電子服務股份有限公司,管理者最迫切需要的分析目標主要有:
⑴ 各高速公路路段公司若干工班的流水上傳、流水拆分;
⑵ 各個高速公路路段公司上傳的異常流水(包含異常及拆分異常)及其修改的情況。
要進行以上分析,所需數據應包括:
⑴ 分析各條高速公路路段公司在一段周期內的流水上傳數量、拆分數量、拆分流水比例;異常流水數量、異常流水修改的數量、修改比例;
⑵ 分析各條高速公路對應的軟件開發商上傳的異常流水(包含異常流水及拆分異常流水)數量、上傳的異常(包含異常及拆分異常)流水修改的數量,以及修改的比例;
⑶ 每個工班全省上傳的異常流水數量的總體分析;
⑷ 全省所有高速公路收費系統的軟件開發商,產生的各種類型的異常流水數量的分析;
⑸ 全省所有高速公路上傳的各種類型的異常流水的分析。
1.2.2 邏輯模型設計
因為細節級數據太大,數據倉庫又建立在本人的PC機MS SQL SERVER服務器上,加之迫于分析任務提交時間的壓力,故本數據倉庫中不再涉及細節級數據表的設計、數據挖掘[6]。
本文只設計了以下幾個綜合級的關系模式,ok_xiugai對應于已經成功修改的異常流水信息;no_xiugai對應于還沒有進行修改的異常流水信息;upload_split對應于各條高速公路流水上傳及拆分的數量; 而kaifa代表維表“開發商”,tb_road代表維表全省的各條高速公路[2]。
關系模式定義:
ok_xiugai (LISTNO, UPLOADTIME, OUTROADNO,
SQUADDATE, ERRCODE, ERRMSG…)
no_xiugai (LISTNO, UPLOADTIME, OUTROADNO,
SQUADDATE, ERRCODE, ERRMSG…)
upload_split(路段編碼,路段名稱,工班,上傳流水數量,拆分流水數量…)
kaifa (roadno, kaifa_name)
tb_road(areano,roadno,roadname,…)
1.2.3 數據倉庫數據生成
數據倉庫中數據的生成包括:操作型環境數據的挖掘和數據倉庫中數據的生成兩部分。如圖1和圖2這里所要做的工作是接口編程,實現將操作型環境OLTP下的數據裝載進入數據倉庫的OLAP環境中。
[生產機數據庫][數據倉庫][拆分流水異常記錄表\&\&][流水異常記錄表\&\&][數據挖掘] [no_xiugai\&ListNo
UPLOADTIME
OUTROADNO
SQUADDATE
ERRCODE
ERRMSG\&]
圖1 ?數據挖掘(生成未修改的流水信息)
設集合A為拆分流水異常記錄表,B為流水異常記錄表,C為OLAP操作環境中的no_xiugai ,則
C=, 其中、
以下給出生成修改正確的流水信息算法。
設集合A為拆分流水異常記錄表,B為流水異常記錄表,C為拆分流水異常記錄歷史表,D為流水異常記錄歷史表,E為OLAP操作環境中的ok_xiugai,則
E=∪, 其中、、、
[生產機數據庫][數據倉庫][奧通卡精確拆分結果明細表\&\&][現金精確拆分結果明細表\&\&][數據挖掘] [uplond_split\&路段編碼
…\&][流水非精確拆分記錄表\&\&][出口流水表\&\&]
圖2 ?數據挖掘(生成流水上傳與拆分的信息)
設集合A為粵通卡精確拆分結果明細表,B為現金拆分結果明細表,C為流水非精確拆分記錄表,D為出口流水表,E為OLAP操作環境中的upolad_split,則
E=()×,其中、、、
2 數據倉庫的數據導出與展現
2.1 萬能數據庫查詢分析器
萬能數據庫查詢分析器,中文版本《DB查詢分析器》、英文版本《DB Query Analyzer》。它具有強大的功能、友好的操作界面、良好的操作性、跨越各種數據庫平臺乃至于EXCEL和文本文件[3]。
可以通過它查詢ODBC數據源(包括世面上所有的數據庫、TXT/CSV文件、EXCEL文件)的數據??梢酝瑫r執行多條DML語句乃至存貯過程,結果會以已設定的表格、文本框、文件來返回。當從數據庫導出千萬條數據時,其效率與DBMS沒有什么區別[4]。
《萬能數據庫查詢分析器》中文版本《DB 查詢分析器》在中關村的在線下載量超過10萬次,位居整個數據庫類排行榜中第10位,所以在實際工作中,本人用《DB查詢分析器》作為客戶端,實現將數據倉庫中的數據展現與導出。
2.2 本系統中的兩個分析目標的星形模式
設集合A、B、C、D為OLAP環境下的ok_xiugai、no_xiugai、tb_road、upload_split,E為分析模型“異常流水及修改情況、流水上傳與拆分”,則
E=()××
設集合A、B、C、D為OLAP環境下的ok_xiugai、no_xiugai、tb_road、kaifa,E為分析模型“高速公路公司、各條高速公路開發商的異常流水及修改情況”,則
E=()××
具體如圖3和圖4。
roadname\&] [路段代碼] [kaifa\&roadno
kaifa_name\&]
圖4 ?星型模式下的“高速公路公司、各條高速
公路開發商的異常流水及修改情況”分析
2.3 數據樣例示意
數據樣例示意如圖5、圖6所示。
3 結束語
數據倉庫技術對于回答及解決一些綜合性的面向主題的問題,具有強大的優勢。而對于使用數據倉庫來回答綜合性問題的場合,星形連接模式可以滿足決策者從不同的維來觀察數據的需求。筆者在《廣東省高速公路一張網資金結算情況分析系統》的研究與開發過程中,采用了數據倉庫的設計理念進行數據倉庫的各級模型設計,并通過數據挖掘來生成數據倉庫中的數據,最后使用萬能數據庫查詢分析器來進行數據展現,這也是本人在實際工作中對數據倉庫技術的又一次運用。近一年來,該系統每周在經過數據挖掘、倉庫數據生成和數據展現后,為企業管理者提供了較為清晰地分析結果。文中的不足之處,還請有關專家批評指正。
圖5 ?數據展現
圖6 ?點擊“DB查詢分析器”的工具欄按鈕,即可導出數據
參考文獻:
[1] 馬根峰.基于關系數據庫的數據倉庫星形模式下維使用原則的研究[J].
計算機工程與設計,2005.1.
[2] 馬根峰.廣東電信公話200專用話機話務動態分析系統的構建[J].電
信科學,2003.11.
[3] 新產品&工具點評.特別推薦:“萬能數據庫查詢分析器”發布[J].程
序員,2007.2.
[4] 馬根峰.《DB查詢分析器》批量執行DML語句并返回更詳細的信息[J].
電腦編程技巧與維護,2011.24.
[5] 王珊.數據倉庫技術與聯機分析處理[M].科學出版社,1998.
[6] Michael Corey(美), Michael Abbey(美). SQL SERVER 7 Data
Warehousing[M].希望電子出版社,2000.