王朝霞++郭宇棟++談昨非++孟月昊
[摘 要] 完整而規(guī)范的數(shù)據(jù)倉庫既能解決異構(gòu)數(shù)據(jù)源集成問題,也為多維數(shù)據(jù)分析和數(shù)據(jù)挖掘提供數(shù)據(jù)支撐。本文基于基建工程數(shù)據(jù)倉庫研究和建設(shè)的實際做法,闡述了基于數(shù)據(jù)倉庫的決策支持系統(tǒng)架構(gòu)與相應(yīng)的商業(yè)智能開發(fā)平臺構(gòu)建,系統(tǒng)建設(shè)中數(shù)據(jù)倉庫的設(shè)計、數(shù)據(jù)收集的ETL設(shè)計、數(shù)據(jù)分析的OLAP設(shè)計和數(shù)據(jù)展示的報表設(shè)計,希望通過探索和研究,為基本建設(shè)工程領(lǐng)域構(gòu)建規(guī)范化數(shù)據(jù)倉庫提供參考和借鑒意義。
[關(guān)鍵詞] 數(shù)據(jù)倉庫;ETL;OLAP;Report
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2016. 21. 085
[中圖分類號] TP392 [文獻(xiàn)標(biāo)識碼] A [文章編號] 1673 - 0194(2016)21- 0163- 06
0 引 言
經(jīng)過多年發(fā)展,基本建設(shè)工程領(lǐng)域各個業(yè)務(wù)部門開發(fā)并使用各類管理信息系統(tǒng),積累了大量業(yè)務(wù)數(shù)據(jù)。然而,現(xiàn)有系統(tǒng)互不聯(lián)通,相應(yīng)的數(shù)據(jù)資源被分割在不同的系統(tǒng)中,無法實現(xiàn)跨系統(tǒng)綜合查詢與分析,同時,在現(xiàn)有系統(tǒng)中,統(tǒng)計查詢僅僅作為一種輔助功能,直接基于業(yè)務(wù)數(shù)據(jù)庫進(jìn)行簡單的瀏覽查詢和統(tǒng)計匯總。因此,如何將異構(gòu)的數(shù)據(jù)資源集成在一起,實現(xiàn)跨系統(tǒng)、跨表、全面靈活的統(tǒng)計查詢與分析,為基建工程精細(xì)管理與科學(xué)決策提供信息化手段支撐,成為目前的重要研究課題。本文提出了一種基于數(shù)據(jù)倉庫的基建工程決策支持系統(tǒng)框架、搭建了自主集成的商業(yè)智能平臺,在此基礎(chǔ)上重點闡述基建工程數(shù)據(jù)倉庫的建設(shè),以及數(shù)據(jù)倉庫之上的數(shù)據(jù)分析應(yīng)用。通過構(gòu)建數(shù)據(jù)倉庫,有效解決數(shù)據(jù)不一致、冗余、異構(gòu)等問題;同時,基于數(shù)據(jù)倉庫的基建工程決策支持系統(tǒng)支持多維數(shù)據(jù)分析和數(shù)據(jù)挖掘,更好地支撐基建工程管理和決策[1]。
1 系統(tǒng)架構(gòu)與平臺構(gòu)建
1.1 系統(tǒng)架構(gòu)
基于數(shù)據(jù)倉庫的基建工程決策支持系統(tǒng)框架主要包括:數(shù)據(jù)源層、數(shù)據(jù)處理層、數(shù)據(jù)存儲層、應(yīng)用服務(wù)層和用戶訪問層。
1.1.1 數(shù)據(jù)源層
數(shù)據(jù)源層是數(shù)據(jù)倉庫系統(tǒng)的數(shù)據(jù)來源,基建工程業(yè)務(wù)涉及的數(shù)據(jù)源主要分布于工程計劃、房屋土地、住房、兩項普查等核心業(yè)務(wù)系統(tǒng)。
1.1.2 數(shù)據(jù)處理層
數(shù)據(jù)處理層采用統(tǒng)一的ETL調(diào)度平臺,實現(xiàn)對原始數(shù)據(jù)抽取、清洗、轉(zhuǎn)換、加載,消除數(shù)據(jù)間的不一致和冗余,按數(shù)據(jù)倉庫模型結(jié)構(gòu)重新組織數(shù)據(jù)并加載到數(shù)據(jù)倉庫,形成能夠?qū)Q策提供支持的多重粒度級的數(shù)據(jù)倉庫標(biāo)準(zhǔn)化數(shù)據(jù)。
1.1.3 數(shù)據(jù)存儲層
數(shù)據(jù)存儲層主要包括操作數(shù)據(jù)層(ODS)、基礎(chǔ)數(shù)據(jù)層(EDW)和數(shù)據(jù)集市層(DM)3層。ODS層與EDW層共同構(gòu)成企業(yè)統(tǒng)一數(shù)據(jù)平臺。ODS層主要實現(xiàn)企業(yè)數(shù)據(jù)整合、共享和準(zhǔn)實時運營監(jiān)控等功能,EDW層為中央數(shù)據(jù)倉庫,將不同的OLTP數(shù)據(jù)集中到面向主題、集成、穩(wěn)定、隨時間變化的統(tǒng)一數(shù)據(jù)層中,主要為企業(yè)提供分析決策服務(wù)。DM層是針對各部門的特殊分析需要設(shè)計獨立數(shù)據(jù)集市(即EDW的子集),建立維度匯總信息,為不同部門業(yè)務(wù)應(yīng)用建立匯總數(shù)據(jù)區(qū)。
1.1.4 應(yīng)用服務(wù)層
應(yīng)用服務(wù)層是訪問數(shù)據(jù)倉庫信息的核心,它接收用戶請求訪問數(shù)據(jù)倉庫,生成各種形式的復(fù)雜報表,并以多種方式展現(xiàn),包括預(yù)定義報表、多維分析、即席查詢、數(shù)據(jù)挖掘等。
1.1.5 用戶訪問層
用戶訪問層是數(shù)據(jù)服務(wù)與決策人員、管理人員、分析人員和業(yè)務(wù)人員等用戶之間的接口,該層提供用戶對數(shù)據(jù)倉庫數(shù)據(jù)的瀏覽、請求、存取等服務(wù),以及向用戶的數(shù)據(jù)交付。
1.2 自主集成的基于Pentaho的BI平臺
針對基建工程決策支持系統(tǒng)框架,在開源的商業(yè)智能BI(Business Intelligence)平臺基礎(chǔ)上構(gòu)建自主集成的BI平臺。構(gòu)建平臺分兩步走:首先是開源商業(yè)智能BI平臺選型,其次是自主集成商業(yè)智能平臺。
1.2.1 開源商業(yè)智能平臺選型
選擇開源的商業(yè)智能BI平臺的依據(jù)有:平臺具有開放性、靈活性和功能全面。開放性是指源代碼開放,在此基礎(chǔ)上才能實現(xiàn)靈活性;靈活性是指平臺小巧,可移植,可集成;功能全面是指具有通用商業(yè)智能平臺的數(shù)據(jù)集成、數(shù)據(jù)存儲、數(shù)據(jù)分析和數(shù)據(jù)展現(xiàn)功能。通過追蹤權(quán)威咨詢機構(gòu)Gartner從2010-2016年的年度BI報告[3],開源BI平臺Pentaho連續(xù)6年入圍商業(yè)智能魔力四象限圖,因此,我們選擇Pentaho作為決策支持系統(tǒng)的商業(yè)智能平臺。Pentaho滿足通用商業(yè)智能平臺數(shù)據(jù)集成、數(shù)據(jù)存儲、數(shù)據(jù)分析和數(shù)據(jù)展現(xiàn)的功能[4],此外,Pentaho主要目標(biāo)是和商業(yè)BI抗衡,市面上已經(jīng)有一些基于Pentaho的決策支持系統(tǒng)研發(fā)的實例可供參考[5-7]。然而,Pentaho在頁面框架設(shè)計的靈活性和報表展現(xiàn)的美觀性兩方面能力較弱,同時,考慮到對大數(shù)據(jù)存儲與分析的需求,基于Pentaho平臺我們提出一種自主集成的商業(yè)智能BI平臺。
1.2.2 自主集成BI平臺
自主集成的商業(yè)智能平臺分為數(shù)據(jù)持久化層、服務(wù)層、控制層、表現(xiàn)層。數(shù)據(jù)持久化層集成了文件訪問、Hibernate和JDBC,Hibernate是一個開源框架,是對象關(guān)聯(lián)關(guān)系映射的框架,支持各種關(guān)系數(shù)據(jù)庫,對JDBC做了輕量級的封裝,因此,能夠很好地支持對異構(gòu)數(shù)據(jù)源的訪問。數(shù)據(jù)持久層之下集成了Hadoop生態(tài)圈的HDFS、Hbase、Hive和Spark,支持批量數(shù)據(jù)、實時數(shù)據(jù)和增量數(shù)據(jù)的存儲和訪問[8-17]。服務(wù)層包含Pentaho的即席查詢、多維分析展示、OLAP引擎、多維立方體構(gòu)建等功能組件,并集成了數(shù)據(jù)挖掘構(gòu)件Weka,大數(shù)據(jù)分析構(gòu)件Mahout、MLLib,ETL構(gòu)件Kettle、Sqoop等??刂茖硬捎肧pring MVC,分離了控制器、模型對象、分派器以及處理程序?qū)ο蟮慕巧?,這種分離讓他們更容易進(jìn)行定制。表現(xiàn)層則采用基于Web前端開源框架Bootstrap的ACE頁面框架模板,能夠?qū)崿F(xiàn)靈活的頁面設(shè)計。平臺對每一層都提供了相應(yīng)的支持,系統(tǒng)開發(fā)時,可以方便訪問已有的公共構(gòu)件。上述技術(shù)均是基于Java實現(xiàn),符合開放源碼基礎(chǔ)軟件要求。
2 系統(tǒng)建設(shè)
本文以基建工程的“基本建設(shè)與房地產(chǎn)資源”兩項普查數(shù)據(jù)和基建工程各處室在用的18個業(yè)務(wù)系統(tǒng)的業(yè)務(wù)數(shù)據(jù)為數(shù)據(jù)源建立數(shù)據(jù)倉庫,在數(shù)據(jù)倉庫之上建立多維數(shù)據(jù)模型,利用自主集成平臺中Pentaho的OLAP引擎Mondrian對數(shù)據(jù)進(jìn)行多維度、多層次分析,并通過Saiku將分析結(jié)果展現(xiàn)出來。利用ACE頁面框架做報表展現(xiàn)。
2.1 數(shù)據(jù)倉庫建模
數(shù)據(jù)倉庫模型是針對特定的數(shù)據(jù)倉庫應(yīng)用系統(tǒng)的數(shù)據(jù)模型,在整個數(shù)據(jù)倉庫的建模過程中,一般需要經(jīng)歷四個過程:業(yè)務(wù)建模,生成業(yè)務(wù)模型,主要解決業(yè)務(wù)層面的分解和程序化;領(lǐng)域建模,生成領(lǐng)域模型,主要是對業(yè)務(wù)模型進(jìn)行抽象處理;邏輯建模,生成邏輯模型,主要是將領(lǐng)域模型的概念實體以及實體之間的關(guān)系進(jìn)行數(shù)據(jù)庫層次的邏輯化;物理建模,生成物理模型,主要解決邏輯模型針對不同關(guān)系型數(shù)據(jù)庫的物理化以及性能等一些具體的技術(shù)問題[1]。本節(jié)重點介紹基建工程數(shù)據(jù)倉庫的業(yè)務(wù)建模、邏輯建模和物理建模。
2.1.1 業(yè)務(wù)建模
結(jié)合基建工程業(yè)務(wù)特點,將基建工程數(shù)據(jù)倉庫內(nèi)容規(guī)劃為公共基礎(chǔ)、工程建設(shè)管理、土地、住房管理、環(huán)保綠化和空余房地產(chǎn)等六大業(yè)務(wù)管理主線,在每個業(yè)務(wù)主線內(nèi),考慮相應(yīng)的業(yè)務(wù)主線需要分析的業(yè)務(wù)主題(圖1)。
公共基礎(chǔ)主題:指地區(qū)、單位、坐落和分棟四類基礎(chǔ)信息,公共基礎(chǔ)主題是數(shù)據(jù)倉庫中最基礎(chǔ)、最核心的內(nèi)容,所有的業(yè)務(wù)活動都是圍繞地區(qū)、單位、坐落和分棟展開,與其他主題產(chǎn)生緊密聯(lián)系。
工程建設(shè)管理主題:存放機場、地下工程、地面工程、人防工程等設(shè)施數(shù)質(zhì)量情況,泵類、風(fēng)機、柴油發(fā)電機組、配電屏(柜)、控制臺、變壓器、除濕機、空調(diào)、電加熱器和鍋爐等設(shè)備數(shù)質(zhì)量情況。
土地主題:存放土地資源信息,包括土地資源總量,按城鄉(xiāng)、按地域、按地勢資源分布信息。
住房管理主題:存放公寓房、經(jīng)濟適用房、住用人員等相關(guān)實體,包括:住房數(shù)質(zhì)量情況,住用情況。
環(huán)保綠化主題:存放污染治理、綠化資源、放射性污染源等相關(guān)實體,包括:污染源總體情況與污染設(shè)施總體情況,綠化資源總量與分布情況,放射源與射線裝置的種類、用途、數(shù)量、分布、使用和管理狀況。
空余房地產(chǎn)主題:存放空余房地產(chǎn)、租賃管理等相關(guān)實體,包括:儲備房地產(chǎn)、整坐落空余房地產(chǎn)、成片空余營區(qū)數(shù)質(zhì)量情況,租賃坐落、項目、審批、繳費辦證情況。
2.1.2 邏輯建模
目前業(yè)界較為流行的數(shù)據(jù)倉庫的邏輯建模方法主要有范式建模法,維度建模法,實體建模法等。對于本系統(tǒng)來說,ODS層模型的表結(jié)構(gòu)與業(yè)務(wù)系統(tǒng)保持一致,因此,其邏輯模型采用與關(guān)系數(shù)據(jù)庫相一致的實體關(guān)系模型。EDW層數(shù)據(jù)模型依據(jù)圖3的主題劃分建立統(tǒng)一的數(shù)據(jù)模型。同時,根據(jù)部門業(yè)務(wù)決策分析需求,采用維度建模法建立對應(yīng)的數(shù)據(jù)集市(DM,Data Market)模型。例如,住房管理業(yè)務(wù)關(guān)注從不同地區(qū)、不同單位、不同人員類型、不同戶型、不同住房性質(zhì)等角度來掌握住房的面積、出售情況、套數(shù)、住用率,空置率等,因此,按照事實表,維表來構(gòu)建住房星型數(shù)據(jù)模型(圖2)。
2.1.3 物理建模
物理建模是將前面的邏輯數(shù)據(jù)模型落地的一個過程。首先是生成創(chuàng)建表的腳本,其次是針對數(shù)據(jù)集市的需要,按照維度建模的方法,生成事實表和維表等。在這里,我們介紹住房管理主題物理建模的方法。住房管理主題物理建模其實是建立住房管理多維立方體,該立方體為OLAP分析服務(wù)。本文借助Pentaho的Schema workbench來設(shè)計數(shù)據(jù)立方體,構(gòu)建物理的事實表和維度表。如圖3所示,該立方體包括一個住房事實表(圖3的zffact表),多個維度表(例如,人員類別表見圖3的rylb表,住房性質(zhì)表見圖3的zfxingzhi表等)。
將源數(shù)據(jù)加載到數(shù)據(jù)倉庫的過程有兩種形式,一種是進(jìn)入數(shù)據(jù)庫后再進(jìn)行清洗和轉(zhuǎn)換,另一種是首先進(jìn)行清洗轉(zhuǎn)換再進(jìn)入數(shù)據(jù)庫。自主開發(fā)的集成平臺中已經(jīng)集成了Kettle和Sqoop兩個數(shù)據(jù)ETL工具。其中,Kettle是集成在Pentaho中的開源ETL工具,支持將源數(shù)據(jù)庫(一般是關(guān)系數(shù)據(jù)庫)中的數(shù)據(jù)進(jìn)行清洗轉(zhuǎn)換后再裝載入數(shù)據(jù)倉庫。Sqoop是用于Hadoop大數(shù)據(jù)存儲和關(guān)系數(shù)據(jù)庫數(shù)據(jù)存儲相互轉(zhuǎn)移的開源工具。目前主要是將業(yè)務(wù)數(shù)據(jù)庫中的數(shù)據(jù)抽取到數(shù)據(jù)倉庫中,因此,本文采用Kettle實現(xiàn)從源數(shù)據(jù)層到數(shù)據(jù)倉庫層的數(shù)據(jù)清洗、轉(zhuǎn)換和加載。圖4是采用Kettle加載住房管理主題數(shù)據(jù)集市的過程。
2.3 數(shù)據(jù)分析應(yīng)用實例
在數(shù)據(jù)倉庫基礎(chǔ)上,基建工程分析決策系統(tǒng)目前實現(xiàn)了:采用ACE頁面框架實現(xiàn)統(tǒng)計報表功能,例如,采用文本描述與餅圖展示相結(jié)合的方式統(tǒng)計住房數(shù)質(zhì)量情況,為進(jìn)一步優(yōu)化配置住房資源提供科學(xué)的決策依據(jù),如圖5;采用Pentaho的Mondrian和MDX實現(xiàn)多維交叉分析功能,并利用Saiku實現(xiàn)多維分析展現(xiàn),例如,從使用單位、戶型分類、住房質(zhì)量等多個維度掌握住房分布情況,支持下鉆、旋轉(zhuǎn)等操作,并支持自定義多維分析,為住房精細(xì)化管理提供數(shù)據(jù)支持,如圖6。
將源數(shù)據(jù)加載到數(shù)據(jù)倉庫的過程有兩種形式,一種是進(jìn)入數(shù)據(jù)庫后再進(jìn)行清洗和轉(zhuǎn)換,另一種是首先進(jìn)行清洗轉(zhuǎn)換再進(jìn)入數(shù)據(jù)庫。自主開發(fā)的集成平臺中已經(jīng)集成了Kettle和Sqoop兩個數(shù)據(jù)ETL工具。其中,Kettle是集成在Pentaho中的開源ETL工具,支持將源數(shù)據(jù)庫(一般是關(guān)系數(shù)據(jù)庫)中的數(shù)據(jù)進(jìn)行清洗轉(zhuǎn)換后再裝載入數(shù)據(jù)倉庫。Sqoop是用于Hadoop大數(shù)據(jù)存儲和關(guān)系數(shù)據(jù)庫數(shù)據(jù)存儲相互轉(zhuǎn)移的開源工具。目前主要是將業(yè)務(wù)數(shù)據(jù)庫中的數(shù)據(jù)抽取到數(shù)據(jù)倉庫中,因此,本文采用Kettle實現(xiàn)從源數(shù)據(jù)層到數(shù)據(jù)倉庫層的數(shù)據(jù)清洗、轉(zhuǎn)換和加載。圖4是采用Kettle加載住房管理主題數(shù)據(jù)集市的過程。
2.3 數(shù)據(jù)分析應(yīng)用實例
在數(shù)據(jù)倉庫基礎(chǔ)上,基建工程分析決策系統(tǒng)目前實現(xiàn)了:采用ACE頁面框架實現(xiàn)統(tǒng)計報表功能,例如,采用文本描述與餅圖展示相結(jié)合的方式統(tǒng)計住房數(shù)質(zhì)量情況,為進(jìn)一步優(yōu)化配置住房資源提供科學(xué)的決策依據(jù),如圖5;采用Pentaho的Mondrian和MDX實現(xiàn)多維交叉分析功能,并利用Saiku實現(xiàn)多維分析展現(xiàn),例如,從使用單位、戶型分類、住房質(zhì)量等多個維度掌握住房分布情況,支持下鉆、旋轉(zhuǎn)等操作,并支持自定義多維分析,為住房精細(xì)化管理提供數(shù)據(jù)支持,如圖6。
3 結(jié) 語
本文闡述了基于數(shù)據(jù)倉庫的基建工程決策支持系統(tǒng)架構(gòu)與商業(yè)智能開發(fā)平臺構(gòu)建,詳細(xì)介紹了基建工程數(shù)據(jù)倉庫的數(shù)據(jù)建模、數(shù)據(jù)分析與展現(xiàn)的技術(shù)實現(xiàn)。后續(xù)工作將在數(shù)據(jù)倉庫及多維分析基礎(chǔ)上,采用數(shù)據(jù)挖掘技術(shù),在項目計劃動態(tài)排序、工程建設(shè)“三超”評估、房地產(chǎn)資源配置優(yōu)化、保障能力評估、基建工程管理制度輔助決策等方面進(jìn)行更深層次的知識挖掘。
主要參考文獻(xiàn)
[1][美]羅伯特·拉柏格.數(shù)據(jù)倉庫應(yīng)用指南:數(shù)據(jù)倉庫與商務(wù)智能最佳實踐[M].祝洪凱,譯.北京:機械工業(yè)出版社,2012.
[2]趙衛(wèi)東.商務(wù)智能[M].第3版.北京,清華大學(xué)出版社,2014.
[3]Gartner. Magic Quadrant for Business Intelligence and Analytics Platforms[EB/OL]. http://www.gartner.com/doc/2668318/magic-quadrant-business-intelligence-analytics,2016.
[4]Roland Bouman, Jos van Dongen. Pentaho Solutions: Business Intelligence and Data Warehousing with Pentaho and MySQL[M]. Wiley Publishing Inc, 2009.
[5]曾希強.基于Pentaho的電話中心商務(wù)智能系統(tǒng)設(shè)計與實現(xiàn)[D].成都:電子科技大學(xué),2013.
[6]陳榮鑫,付永剛,陳維斌.基于Pentaho的商業(yè)智能系統(tǒng)[J].計算機工程與設(shè)計,2008,29(9):2407-2409.
[7]范鑫,何中威,張素偉.基于Pentaho的數(shù)據(jù)中心研究及應(yīng)用[J].計算機與現(xiàn)代化,2015(11):12-16.
[8]趙英杰.基于商業(yè)智能技術(shù)的決策支持系統(tǒng)設(shè)計與開發(fā)[D].北京:北京工業(yè)大學(xué),2012.
[9] 楊海波,李建林,洪貞啟.潛射導(dǎo)彈作戰(zhàn)指揮輔助決策支持系統(tǒng)框架[J].火力與指揮控制,2015, 40(1):122-125.
[10]毛鶯池,閔偉,接青,等.基于動態(tài)影像的實時數(shù)據(jù)倉庫存取處理技術(shù)[J]. 計算機與現(xiàn)代化,2015(3):108-112.
[11]何麗麗.商務(wù)智能決策支持系統(tǒng)框架的研究與設(shè)計[D].哈爾濱:哈爾濱工業(yè)大學(xué),2012.
[12]夏火松,甄化春.大數(shù)據(jù)環(huán)境下輿情分析與決策支持研究文獻(xiàn)綜述[J].情報雜志,2015,34(2):1-7.
[13]羅賀,楊善林,丁帥.云計算環(huán)境下的智能決策研究綜述.系統(tǒng)工程學(xué)報[J].2013,28(1):134-143.
[14]崔杰,李陶深,蘭紅星.基于Hadoop的海量數(shù)據(jù)存儲平臺設(shè)計與開發(fā)——計算機研究與發(fā)展[J].2012(s1):12-18.
[15]趙長明. 我國二手房地產(chǎn)交易價格風(fēng)險的核算[J]. 統(tǒng)計與決策,2014(1):96-99.
[16]高獻(xiàn)衛(wèi),師智斌.基于Mahout的新用戶推薦算法的設(shè)計與實現(xiàn)[J].計算機工程與科學(xué),2015,37(8):1444-1449.
[17]唐長城,楊峰,代棟,等.一種基于Hbase的數(shù)據(jù)持久性和可用性研究[J].計算機系統(tǒng)應(yīng)用,2013,22(10):175-180.