?

開源商業智能技術在鐵路客運營銷輔助決策中的應用

2016-02-16 02:10汪健雄賈成強劉婷婷
鐵路計算機應用 2016年6期
關鍵詞:商業智能數據倉庫控件

汪健雄,王 芳,賈成強,劉婷婷

(中國鐵道科學研究院 電子計算技術研究所,北京 100081)

開源商業智能技術在鐵路客運營銷輔助決策中的應用

汪健雄,王 芳,賈成強,劉婷婷

(中國鐵道科學研究院 電子計算技術研究所,北京 100081)

提出基于Pentaho的鐵路客運營銷輔助決策解決方案,重點介紹基于Kettle的ETL設計、報表立方體設計和OLAP分析、報表制作以及根據用戶需要定制個性化報表控件等關鍵技術,解決了商用軟件由于在接口和代碼上的封閉性,不能完全自定義客戶個性化需求的問題,節約了軟件采購成本,具有廣闊應用前景。但該解決方案也存在一些不足,如:開發工作量大、軟件文檔不足,以及系統安全性和并發性能未做很好的測試和優化等問題,在今后的研究和生產中需要重點解決。

開源商業智能;Pentaho;客運營銷輔助決策;OLAP;自定義控件

鐵路客運營銷輔助決策系統是為鐵路總公司、各鐵路局提供鐵路運能、運量、收入、效益分析等指標的決策支持系統。從系統建設之初起,引入商業智能軟件,實現了客運數據在鐵路總公司和鐵路局范圍內的共享,鐵路總公司、鐵路局、站段各級用戶通過統一授權訪問,從運能、運量和收入各個層面分析、評價客運組織情況,預測客流趨勢并指導今后的發展,鐵路各級管理者在客運組織工作方面有了重大改變,起到了提高客運業務的核心競爭能力的作用[1]。但上述商業智能軟件在適應了復雜業務分析的需求之后,一些問題逐漸顯現出來,主要包括:

(1)商用軟件在接口、代碼上的封閉性,不能完全自定義客戶個性化的需求,如果廠商不主動發布升級版本,很難對系統進行拓展。

(2)隨著數據量與日俱增,當前商業智能軟件在大數據應用方面的支持相對較弱,同時系統查詢性能也存在瓶頸,很難再繼續優化。

(3)商用軟件價格昂貴,支出較大,不利于系統建設方控制成本。

近年來,開源商業智能項目在互聯網行業得到了長足發展,很多優秀的開源產品可與商業產品一較高低。在商業智能(BI)方面,近年來開源社區中的Pentaho具有很多特點,正成為開源BI事實上的標準,為此在鐵路總公司級的客運營銷輔助決策系統中嘗試采用開源的Pentaho BI套件解決方案。

1 Pentaho BI套件簡介

Pentaho是對多個開源項目進行改進、擴充和集成組成的BI平臺,涵蓋了常規BI系統的開發、部署和運行環境。Pentaho平臺的核心思想是以業務流程為核心,基于工作流技術,讓決策成為業務的一個環節,實現企業業務過程整合[2]。Pentaho提供了圍繞特定項目制定方案的集成開發環境,體現了面向解決方案的BI研發思路。PentahoBI平臺主要由以下幾部分組成:

(1)OLAP服務器:集成了基于Java開發的OLAP服務器,Mondrian,用于對存儲在關系數據庫中的大型數據集進行交互分析。

(2)OLAP分析工具:集成了JPivot可視化組件,可實現多維數據表和多維數據圖以及數據立方體的展示。報表工具組件名為ReportDesigner,是基于JSP的B/S分析工具,用于自定義分析報表。

(3)ETL組件PDI:Pentaho整合了開源ETL工具Kettle,包括Spoon和Pan兩個包。Kettle提供的Spoon和Chef工具提供Drag&Drop的圖形化界面,用于定義和執行ETL轉換流程,同時在Chef或Kitchen中通過Job可以定義和執行定時任務。

(4)數據挖掘工具Weka: Weka作為一個公開的數據挖掘工作平臺,集合了大量能承擔數據挖掘任務的機器學習算法,包括對數據進行預處理,分類,回歸、聚類、關聯規則以及在新的交互式界面上的可視化。

(5)集成管理和開發環境:Pentaho Design Studio是基于Eclipse的開發、項目測試和部署環境,集成Action Sequence編輯器用于定義工作流的圖形化界面。

Pentaho涵蓋了數據倉庫、ETL、OLAP、數據挖掘以及報表生成、儀表盤等應用的測試和部署的集成開發環境,是目前對BI的功能支持最為全面的開源套件,同時與商業軟件相比在二次開發和成本方面具有較大優勢,因此選用Pentaho進一步研究鐵路客運決策支持系統。

2 基于Pentaho的鐵路客運營銷輔助決策系統設計

基本設計思路是以數據倉庫的設計和實施為中心,數據挖掘的應用為補充,構建基于Pentaho的商業智能系統。通過在鐵路總公司營銷系統及其他業務系統基礎上構建Pentaho 商業智能平臺來實現系統集成,使從日常的業務中的操作型數據變為分析型數據,從分析型數據中提煉決策信息,協助鐵路客運管理者做出正確的決策。

系統分為4個層次:

(1)數據層:包括原有的中國鐵路總公司營銷系統、客票發售與預定系統(簡稱:客票系統)可以為 BI 提供大量的寶貴的源數據,同時為了解決鐵路總公司綜合分析的要求,引入了客圖接口數據、鐵路客運清算系統成本數據以及其他可用于客運決策支持的原始數據。

(2)基礎架構層:引入Pentaho BI平臺中的OLAP技術和Weka數據挖據工具進行多目標、多維度的分析以及即席查詢;未來還將引入開源數學計算項目R來實現預測、盈虧分析等應用的模型與算法形成運算引擎。通過基于Kettle的數據抽取、轉換、加載工具形成數據倉庫。

(3)業務應用平臺:根據鐵路總公司需求,重點實現可圖管理、數據挖掘、運營報表、預測和盈虧分析等應用,該平臺將集成在Pentaho BI Server組件中。

(4)展現層:根據鐵路總公司需求,利用JSP、AJAX、Flex等技術實現報表、統計圖形、OLAP展現以及一些自定義交互應用。其中,儀表盤可以高效集成各種BI內容,并以較簡單、統一的視圖呈現給各級用戶,各種不同層次的BI用戶還可以定制適合自己的儀表盤。Pentaho Dashboard工具基于CDF(Community Dashboard Framework)項目整合而來的,可以直接將儀表盤等應用集成在Pentaho BI Server中作為解決方案進行發布,如圖1所示。

3 Pentaho BI技術在鐵路客運營銷輔助決策中的應用

3.1 ETL設計

數據的抽取、轉換和加載(ETL)是BI項目中最常見、基礎的數據操作。在數據倉庫的構建期間,各個業務系統的數據必須經過嚴格的ETL過程,整合到數據倉庫中為后續的分析、數據展現提供支撐。數據可能來自不同業務部門,以及不同的數據源規格。另外,一些即席報表對運行的時間要求較高,通常需要對海量數據進行數據聚合和初步加工來更改數據的粒度,使得報表服務器可以更快的響應用戶提交的數據請求。在Pentaho平臺使用Kettle作為ETL處理組件,從SybaseASE數據源、SybaseIQ和平面文件中抽取數據。利用Kettle中的Spoon工具對業務數據進行必要的字段處理和格式轉換,把處理過的數據重新加載到數據倉庫中,然后利用Kitchen工具,實現系統定期執行ETL腳本,完成數據的自動抽取[3]。Kettle工具定義的ETL流程如圖2所示。

圖1 基于Pentaho的客運營銷BI體系設計

圖2 Kettle工具定義的ETL流程

3.2 OLAP分析

Pentaho平臺使用的Mondrian組件提供OLAP服務。利用可視化工具Pentaho Schema Workbench,分析人員可以編寫多維查詢語言MDX,并形成模板提供給分析人員使用,同時對數據倉庫中的數據集進行交互分析[4]。為便于試驗,使用Tomcat作為Mondrian應用服務器。使用Mondrian的架構進行OLAP分析的具體步驟如下:

(1)底層:數據庫或從原有的數據庫中提取可用的數據表。

(2)存儲層:數據倉庫的建立,將原有的底層數據庫轉化為星型模型或雪花模型。

(3)維度層:生成schema文件,將存儲層的數據倉庫轉化為一個schema文件,通過schemaworkbench或者手寫完成,可以通過MDX來對多維數據庫進行訪問,并產生可部署到Mondrian服務器上的OLAP解決方案,解決方案的基本配置文件包括流程文件xaction、立方體描述文件等。Mondrian OLAP引擎根據部署的配置文件,從數據庫中計算和緩存數據,并響應來自展示層的各種查詢。專業分析用戶可以直接使用MDX語句訪問;將MDX預先存儲后,非專業用戶也可以在圖形化交互界面中進行數據分析。

(4)展示層:編寫jsp文件用于OLAP展示,由JPivot提供的表現層TagLib實現,這是一個使用Web組件框架(WCF)技術、采用XML/XSLT渲染Web UI的開源組件,可以比較方便的將多維數據展示給最終用戶,可展現多維數據透視圖表,支持鉆取、切片、旋轉等操作。一個按運營單位、日期、票種3個維度分析發送量的立方體模型的schema定義如下:

Cube 建好后即可以利用Kettle抽取數據,并使用JPivot生成報表。

3.3 自定義報表

Pentaho提供的報表生成工具為Report Designer,可以根據用戶需要制作專業化的分析報表,并支持Excel或PDF等通用格式的展現[5]。圖3所示的是正在編輯報表的界面:左側的豎排工具欄顯示的是設計報表時可能用到的控件。中間的部分是編輯自定義報表的主界面,右邊的標簽Structure可以看到報表各個元素的結構,Data標簽包含了展示的數據,如包括報表query的數據源及各種函數。報表設計主界面分成了PageHeader、ReportHeader、Details、ReportFooter、PageFooter等多個區域。Page Header與Page Footer中的對象會在報表的每頁都顯示。Report Header中的對象只在報表開頭時展示一次,Detail中的對象會展現query中的結果集,Report Footer中的對象只在報表的末尾顯示一次。需要展示的字段放在Details區域,通過Structure標簽可以查看報表數據項與頁面之間的組成關系。

圖3 使用Report Designer實現的報表設計視圖

Report Designer制作的報表可以設置輸入參數,通過利用參數來對報表數據源設置filter以達到傳遞交互式查詢條件的目的??稍趫蟊聿樵兊闹鱭uery中加入參數StartDate(其格式為${StartDate})。報表執行時將會顯示當滿足“train_date=${StartDate}”的值時,查詢語句所選擇的數據,如圖4所示的京滬高鐵運營日況報表。該報表除了StartDate參數外,提示頁上還可以使用下拉框選擇報表運行后輸出的格式。輸入參數以后運行的結果頁面:

圖4 在完成的BI門戶中實現的報表運行視圖

3.4 自定義報表控件

開源BI的優勢之一是可以自定義報表控件,對開發工具進行擴展。在列車編組信息管理的開發中,需要實現分席別、指定區域,列車等級和方向列車圖定與實際能力查詢得到旅客列車對數表和運能統計表,同時需要在集成的圖形中展示列車編組、交路信息,包括列車基本信息、運行里程、車底組數、編組布局、交路圖形、開行規律、種類型號、運用狀態等?,F有使用的BI平臺無法實現我們需要的效果。在Pentaho中,使用了JFreeChart這個開源工程來實現自定義報表控件[6],并通過控件可視化拖拽的方式在其他報表中進行復用。

在meta-elements.xml中定義元件的元素定義:

將整個文件包編譯成jar包后放到PRD的lib目錄下,重新啟動PRD會在左側控件欄中看到一個紅色火車頭為圖表的自定義控件StationChart,并可以將它拖放到報表中。

StationChart屬性和布局如圖5所示,Station-Chart的運行圖報表如圖6所示。

圖5 在Report Designer中設置StationChart屬性和布局

4 結束語

本文提出了在鐵路客運營銷系統基礎上構建基于Pentaho的商業智能系統的方法,提出了基于Kettle的ETL設計、報表立方體設計和OLAP分析、報表制作以及根據用戶需要定制個性化報表控件等解決方案,在一定程度上解決了由于商用軟件在接口、代碼上的封閉性,不能完全自定義客戶個性化需求的問題,同時節約了軟件采購成本。Pentaho平臺整合了一套適用于開發、部署和運行商業智能系統的環境與工具,為企業級商業智能實現提供了一種開放、經濟的平臺,進一步深入研究還有儀表盤、與Hadoop整合實現大數據集群等應用,由于篇幅問題將另作討論。

圖6 在完成的BI門戶中查看StationChart的報表運行視圖

[1]汪健雄,劉春煌,單杏花,等.業務智能技術在鐵路客運營銷輔助決策系統中的應用 [J].鐵路計算機應用,2009,18(12):23-27.

[2]Pentaho Corporation.Pentaho open source business intelligence platform technical white paper[EB/OL].http://www.pentaho.com,2015.

[3]Pentaho Documentation Team.Evaluate and Learn Pentaho Data Integration[EB/OL].https://help.pentaho.com/Documentation/5.3/0D0/1A0/010/000,2015.

[4]陳榮鑫 ,付永鋼 ,陳維斌.基于 Pentaho 的商業智能系統[J].計算機工程與設計,2008,29(9):2407-2409.

[5]jfree.org.JFreeChart API Documentation[EB/OL].http://www.jfree.org/jfreechart/api/javadoc/ index.html,2015.

[6]Pentaho Documentation Team.Business Analytics Report Designer[EB/OL].http://www.pentaho.com/training-course/ business-analytics-report-designer, 2015.

責任編輯 徐侃春

Open source business intelligence technology applied to Railway Passenger Marketing aided Decision System

WANG Jianxiong,WANG Fang,JIA Chengqiang,LIU Tingting
( Institute of Computing Technologies,China Academy of Railway Sciences,Beijing 100081,China)

This article proposed a solution of Railway Passenger Marketing aided Decision System,introduced several key technologies,such as Kettle based ETL design,report cube design,OLAP analysis,report making and custom personalized report control,and so on.This solution could overcome the shortage of closing codes and hardness of custom control,save software cost,and lead to a wide used prospect.Otherwise,some problems should be settled in the future,such as a large amount of coding work,lack of documents,insuffcient safety test and parallel performance test.

open source business intelligence;Pentaho;Railway Passenger Marketing aided Decision System;OLAP;custom control

U239∶F530.86∶TP39

A

1005-8451(2016)06-0018-06

2015-12-03

中國鐵道科學研究院基金項目(2014YJ013)。

汪健雄,副研究員;王 芳,副研究員。

猜你喜歡
商業智能數據倉庫控件
基于數據倉庫的數據傾斜解決方案研究
基于.net的用戶定義驗證控件的應用分析
基于數據倉庫的住房城鄉建設信息系統整合研究
關于.net控件數組的探討
什么是商業智能?它的定義和解決方案
關于實時商業智能的文獻綜述
探析電力系統調度中數據倉庫技術的應用
廣東省高速公路聯網綜合信息商業智能系統
基于數據倉庫的數據分析探索與實踐
基于嵌入式MINIGUI控件子類化技術的深入研究與應用
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合