周勇強
摘要:業(yè)務系統(tǒng)運行多年沉淀的大量數(shù)據(jù)已成為企業(yè)新的數(shù)字資源,通過深入分析和挖掘,發(fā)現(xiàn)其中有價值的信息,為管理決策提供支持,已成為很多企業(yè)的新需求。以某校在一卡通POS交易數(shù)據(jù)分析方面存在的需求為起點,采用Microsoft商業(yè)智能技術體系及產(chǎn)品集,應用Kimball維度建模方法,構(gòu)建了適合實際情況的、易于擴展的DW/BI解決方案。重點研究系統(tǒng)架構(gòu)、維度建模及OLAP數(shù)據(jù)分析。
關鍵詞:商業(yè)智能;數(shù)據(jù)倉庫;OLAP;維度模型;多維數(shù)據(jù)集
中圖分類號:TP311.13 ? ? ? ?文獻標識碼:A
文章編號:1009-3044(2019)13-0283-03
某校的一卡通系統(tǒng)已運行多年,積累了大量業(yè)務數(shù)據(jù),但缺乏靈活的數(shù)據(jù)分析手段。下面是一些業(yè)務需求:
① 管理層希望從卡戶、商戶、時間、POS終端、用餐團隊等多個角度快速分析POS交易數(shù)據(jù),并可靈活切換分析角度及分析粒度。
② 教職工餐廳在工作餐(中餐)時段,用餐人員有時排起長隊有時空閑,管理層希望分析用餐流量分布規(guī)律,提升管理服務水平。
本案例需求進入了商業(yè)智能(BI)的應用范疇,即:將應用數(shù)據(jù)在數(shù)據(jù)倉庫(DW)系統(tǒng)中組織成一致的分析型數(shù)據(jù),然后通過聯(lián)機分析處理(OLAP)或數(shù)據(jù)挖掘(DM)等技術手段,發(fā)現(xiàn)有價值的信息,為管理決策提供支持。本案例研究將Kimball維度建模技術融入Microsoft商業(yè)智能技術體系及產(chǎn)品集,構(gòu)建DW/BI解決方案,重點研究系統(tǒng)架構(gòu)、維度建模及OLAP多維數(shù)據(jù)分析。
1 系統(tǒng)架構(gòu)
在數(shù)據(jù)倉庫領域,Kimball數(shù)據(jù)倉庫構(gòu)建方法是一種以業(yè)務過程為導向的、迭代式的敏捷開發(fā)模式,其維度建模技術幾乎已經(jīng)成為數(shù)據(jù)倉庫建模的最佳實踐。另一方面,微軟BI方案擁有覆蓋整個BI生命周期的完整、完全集成的技術體系及產(chǎn)品集,各部分可有效地協(xié)同工作。將Kimball方法融入微軟BI平臺,可快速構(gòu)建易于維護的、高性價比的DW/BI系統(tǒng)。本案例系統(tǒng)架構(gòu)見圖1,由源數(shù)據(jù)區(qū)、SSIS、SQL Server RDBMS、SSAS、BI應用等部分組成。
源數(shù)據(jù)區(qū)包含一卡通等多個OLTP系統(tǒng)數(shù)據(jù)庫。
SSIS(SQL Server Integration Services)用于構(gòu)建ETL系統(tǒng)。ETL從源數(shù)據(jù)區(qū)抽取數(shù)據(jù),經(jīng)過清洗、規(guī)格化等處理后轉(zhuǎn)換成分析型數(shù)據(jù),加載到關系數(shù)據(jù)倉庫數(shù)據(jù)庫中。其中ETL數(shù)據(jù)存儲用于存儲ETL過程中的有關數(shù)據(jù)。
關系數(shù)據(jù)倉庫數(shù)據(jù)庫是數(shù)據(jù)倉庫數(shù)據(jù)保存的第一個位置,由SQL Server RDBMS管理,數(shù)據(jù)結(jié)構(gòu)按星型維度模型組織。這個數(shù)據(jù)庫用于向SSAS(SQL Server Analysis Services)管理的多維數(shù)據(jù)倉庫數(shù)據(jù)庫提供數(shù)據(jù)。
多維數(shù)據(jù)倉庫數(shù)據(jù)庫是數(shù)據(jù)倉庫數(shù)據(jù)保存的第二個位置,由SSAS生成和管理。 SSAS采用MOLAP存儲模式將關系數(shù)據(jù)倉庫數(shù)據(jù)庫中的數(shù)據(jù)在多維數(shù)據(jù)倉庫數(shù)據(jù)庫中重組為多維數(shù)據(jù)集。SSAS通過OLAP服務向終端用戶開放多維數(shù)據(jù)倉庫數(shù)據(jù)庫,提供OLAP分析及數(shù)據(jù)挖掘功能。
在BI應用部分,終端用戶使用Excel軟件通過SSAS連接多維數(shù)據(jù)倉庫數(shù)據(jù)庫,進行OLAP分析或數(shù)據(jù)挖掘。
2 維度建模
2.1 維度建模的基本概念
Kimball維度建模是圍繞業(yè)務過程進行的。業(yè)務過程是業(yè)務流程中一個可度量的事件或活動,業(yè)務過程捕獲或生成的度量指標稱為度量值(或事實),參與業(yè)務過程的對象稱為維度。使用Kimball方法建模,首先需要通過需求分析選取業(yè)務過程,每次針對一個業(yè)務過程建模,迭代式地構(gòu)建數(shù)據(jù)倉庫。
保證每次迭代所構(gòu)建的數(shù)據(jù)集市能在整個數(shù)據(jù)倉庫體系中無縫融合,并能適應未來發(fā)展的Kimball方法是采用數(shù)據(jù)倉庫總線架構(gòu)??偩€架構(gòu)和一致性維度、一致性事實共同組成了Kimball多維體系結(jié)構(gòu)的基礎,形成了一套可以逐步建立數(shù)據(jù)倉庫的方法論。其核心是在體系結(jié)構(gòu)確立階段,設計出在整個企業(yè)內(nèi)具有統(tǒng)一解釋的標準化的維度和事實,即一致性維度和一致性事實。一致性維度就像企業(yè)范圍內(nèi)的一組總線,將多個數(shù)據(jù)集市在邏輯上結(jié)合在一起,一致性事實保證不同數(shù)據(jù)集市間的事實數(shù)據(jù)可以交叉探查,所有數(shù)據(jù)集市聯(lián)合組成分布式數(shù)據(jù)倉庫??山柚贙imball的企業(yè)總線矩陣列出企業(yè)范圍中的業(yè)務過程及維度,企業(yè)總線矩陣是DW/BI系統(tǒng)的總體數(shù)據(jù)架構(gòu)藍圖,是每次迭代的路標。
在維度模型中事實和維度是分開存儲的,事實存儲在事實表中,維度存儲在各自的維度表中,事實表中除了度量值,一般只存儲指向維度表的外鍵,事實表和維度表通過主外鍵關聯(lián)在一起。
本案例維度模型按星型模式設計,在星型模型中,通過反規(guī)范化設計將存在關聯(lián)關系的維度表合并存儲在一張維度表中,因為消除了復雜的維表間關聯(lián),因此提高了查詢性能,且更易被用戶理解。
2.2 維度建模
按Kimball的4步設計方法進行維度建模。
2.2.1 選擇業(yè)務過程
在本案例的企業(yè)數(shù)據(jù)倉庫總線矩陣中,包含有POS交易、圖書借還、會議簽到等眾多業(yè)務過程。用戶當前的主要需求可以歸納為對POS交易數(shù)據(jù)進行分析,而POS交易數(shù)據(jù)來自于卡戶在POS終端刷卡扣費、充值等交易活動,并存儲在一卡通系統(tǒng)數(shù)據(jù)庫中,因此“POS交易”業(yè)務過程有最高的業(yè)務價值、有源數(shù)據(jù)支撐、易于實現(xiàn),應優(yōu)先建模。限于篇幅,本文只選擇這個業(yè)務過程建模,并將維度模型進行了簡化。
2.2.2 聲明粒度
粒度是指數(shù)據(jù)倉庫中數(shù)據(jù)的細化和綜合程度。DW/BI系統(tǒng)幾乎總是要求數(shù)據(jù)盡可能以最細粒度(原子粒度)來表示,原子粒度數(shù)據(jù)能以任何方式進行切分操作,從而回答各種不可預測的分析請求,提供最佳的分析靈活性。在本案例中,最細粒度是POS交易的每次刷卡數(shù)據(jù)。
2.2.3 確定維度
粒度確定后,根據(jù)業(yè)務場景可確定日期、時間、人員、POS終端、錢包等維度,見圖2。維度表的主鍵命名以“Key”結(jié)尾,均采用代理鍵;來自業(yè)務系統(tǒng)的業(yè)務主鍵命名以“ID”結(jié)尾,用于識別數(shù)據(jù)來源。維度表使用代理主鍵是公認的最佳實踐,用于整合不同源數(shù)據(jù)、處理第二種類型的緩慢變化維度(Type 2 SCD)。
日期維度:“日”是日期維度的原子粒度。為了滿足不同場合對分析粒度及報表標簽名稱的需求,設計了年、季度、月、日、星期、節(jié)假日等各種日期維度屬性。日期維度存在多種層次結(jié)構(gòu),如年/季度/月/日、年/周/日等。本案例使用的日期范圍是前10年及今后20年,共約11000條記錄。
當天時間維度:用餐流量可以通過用餐時間段內(nèi)以分鐘為粒度的用餐流量變化規(guī)律進行分析。除了當天時間的時、分,還設計了餐次等時間段屬性。當天時間維度表有1440條記錄,如果將當天時間和日期合并在一起,將產(chǎn)生約1500萬條記錄的巨大的日期維度表,因此我們將日期和當天時間分開存儲,這兩張維表容量都很小,性能得以提高。
人員維度:人員維度是企業(yè)數(shù)據(jù)倉庫總線中一個較為復雜的一致性維度。包含人員數(shù)據(jù)的業(yè)務系統(tǒng)有一卡通系統(tǒng)、主業(yè)務管理平臺、酒店管理系統(tǒng)、圖書管理系統(tǒng)等,這些系統(tǒng)已經(jīng)作了對接,人員、部門等主要數(shù)據(jù)是共享的,但每個源系統(tǒng)創(chuàng)建的共享數(shù)據(jù)所共享的范圍各不相同,整個企業(yè)中這些共享數(shù)據(jù)的產(chǎn)生和更新以源系統(tǒng)為準,因此ETL需要從這幾個系統(tǒng)中抽取各系統(tǒng)的源頭數(shù)據(jù)。 “源系統(tǒng)ID”用于區(qū)分數(shù)據(jù)源頭。對人員姓名、部門、狀態(tài)、人員類別等的變化按Type 2 SCD進行處理,對于性別、出生日期等屬性按Type 1 SCD進行處理。
POS終端維度:在一卡通系統(tǒng)中,POS交易終端配置在“交易站點”中。交易終端分為A、B二類,每個站點可以容納一個A類終端或一個以上B類終端。因此每個交易終端可使用(站點ID,終端機號ID)進行唯一性識別(A類終端的終端機號ID固定為0)
錢包維表:一卡通系統(tǒng)支持多個電子錢包。
交易類型維表:包含商務消費、卡戶存款等交易類型。
2.2.4 確定事實
POS交易過程獲取的事實有交易金額、優(yōu)惠金額等,擴展事實還有交易人次、交易人數(shù)等。擴展事實可在BI工具中通過添加計數(shù)、非重復計數(shù)等實現(xiàn)。
3 OLAP多維數(shù)據(jù)分析
使用Excel的數(shù)據(jù)透視表和數(shù)據(jù)透視圖連接多維數(shù)據(jù)倉庫數(shù)據(jù)庫,通過簡單的鼠標拖放操作,即可以即席查詢(Ad Hoc)方式進行OLAP多維數(shù)據(jù)分析。以下是兩個分析例子。
3.1 團隊商務收費構(gòu)成的即席分析
圖3是兩個團隊的團隊商務收費構(gòu)成透視表。分析對象為“POS交易”多維數(shù)據(jù)集,分析的事實是交易金額,分析維度有交易類型、日期(年/季度/月/日)、POS終端、當天時間(餐次)、人員(部門/人員)。通過鼠標點擊維度標簽上的加、減號,即可實現(xiàn)上鉆、下鉆操作;通過鼠標拖放調(diào)整維度組合、對維度進行過濾和排序,即可實現(xiàn)變換分析角度、進行切片/切塊分析。
3.2 用餐流量分析
圖4是教職工餐廳2017年2季度中餐刷卡流量透視圖,分析對象為“POS交易”多維數(shù)據(jù)集,分析的事實是刷卡次數(shù),分析維度有POS終端、日期(年/季度/月/日)、當天時間(時/分)。
中餐時間段為11:30~12:30。由圖可知,用餐流量高峰出現(xiàn)在11:50~12:05,在11:30~12:10這段時間中,除了用餐高峰外的用餐流量較為均衡,開餐時間11:30之前有少量用餐流量,用餐結(jié)束時間12:30之前20分鐘(12:10~12:30)用餐人數(shù)稀少。
接下來,切換日期維度到其它的季度,或者上鉆到年份,或者下鉆到月份、日來進行更細致的觀察,我們得到了和上述分析類似的結(jié)論(限于篇幅,不再展示這些數(shù)據(jù))
根據(jù)以上分析,管理層可以結(jié)合實際情況優(yōu)化用餐流量,如:一、適當調(diào)整中餐時間段;二、進一步分析不同人群的流量分布規(guī)律(如:即席添加一個人員維度并上鉆到部門粒度,即可以折線圖等方式顯示每個部門的流量分布),結(jié)合學校業(yè)務特點有針對性地向非高峰時段引導用餐流量。
4 結(jié)論
本案例快速構(gòu)建了一個能滿足當前需求、適合學校發(fā)展實際情況的DW/BI系統(tǒng)。本系統(tǒng)有不少改進或擴展空間,后續(xù)可在目前基礎上迭代式發(fā)展,如添加更多業(yè)務過程、擴展數(shù)據(jù)挖掘功能、加入第三方工具、開發(fā)自定義BI應用,以發(fā)掘出更多有價值的信息。
參考文獻:
[1] (美)Ralph Kimball.數(shù)據(jù)倉庫生命周期工具箱[M]. 唐富年,等,譯. 2版.北京:清華大學出版社,2009.
[2] Ralph Kimball,Margy Ross.The Data Warehouse Toolkit: The Definitive Guide to Dimensional Modeling, 3rd Edition[M]: US: Wiley Computer Publishing,2013.
[3] (美)Lynn Langit.SQL Server 2008商業(yè)智能完美解決方案[M]. 張猛,等,譯.北京:人民郵電出版社.2010.
[4] Ralph Kimball. Design Tip #15: Combining SCD Techniques [EB/OL]. https://decisionworks.com/2000/10/design-tip-15-combining-scd-techniques/.
【通聯(lián)編輯:代影】