姚曉捷 周麗娟
(1.遼寧省衛生健康服務中心,遼寧 沈陽 110005;中化二建集團有限公司,山西 太原 030024)
隨著大數據、云計算等新一代信息技術的飛速發展,結合業務的大數據分析將會是未來助推企業管理效益穩健提升的一個重要途徑,而企業級報表系統作為一種信息數據組織和展示的手段正是實現這一重要途徑的最有效方式之一。靈活,實用、高效、美觀的企業級報表系統將會發揮企業業務信息數據的最大價值,將會為管理層的經營決策提供強有力的數據支撐。
傳統的報表系統一般采用電子報表軟件(如Excel)和報表管理軟件(一般內嵌于某信息系統)的形式來實現對企業信息數據的采集、分析和展示。采用這些形式就存在如數據分散、架構落后、功能有限、維護困難、界面樣式單一等問題。隨著企業業務的不斷發展,業務數據出現多樣化的特點,傳統的報表系統已不能滿足業務需要,無法向各層管理人員提供高效、準確的決策支持。因此,如何借助新一代信息技術,開發一套企業級、跨業務平臺的報表系統,將已有業務數據資源高效整合并完美展示,為各層管理人員提供一個真實、科學、可靠的數據平臺就成為當前研究的一個重要課題。
本文就Z公司數據分析系統的建設為研究對象,從分析原有系統存在的問題、系統需求分析、系統建設目標、系統總體設計、系統實施、系統建設效果等幾個方面總結出了一套企業級報表系統的設計和實現的解決方案,為后續的類似信息系統研發提供借鑒。
公司原有報表系統是嵌入在綜合項目管理系統PMS系統中的,隨著公司業務的不斷擴大和各層管理人員信息化管理水平的不斷提高,現有報表系統的弊端和現有管理模式間的矛盾越來越凸顯。具體體現在如下幾個方面。
一是原有報表系統是基于PMS系統的,不能采集到其他業務系統的數據并形成報表,跨業務系統的報表制作和數據分析仍需靠傳統的Excel等方式來處理,效率低下,企業缺乏統一的數據展示和分析平臺。
二是原有報表系統的嵌入在綜合項目管理系統PMS中,系統交互界面、業務邏輯處理、數據庫操作都是在一個開發程序下,所以任何需求或邏輯的變更,都必須重新修改、發布整個綜合項目管理系統的開發程序,維護難,成本高。
三是原有報表系統的顯示界面、業務邏輯和數據庫處理過程等都沒有分離,導致開發的報表功能有限,開發周期較長,很難快速響應需求的變化。
四是原有報表系統處理復雜邏輯數據的能力有限,甚至無法處理,滿足不了實際工作的需要。
五是原有報表系統的樣式單一,不能有個性化的顯示樣式。
六是原有報表系統沒有移動客戶端程序,訪問方式不靈活。
整個系統建設需堅持“先進性并適當超前”的原則。在此基礎上,充分發揮系統的“靈活性”,一個成功的報表系統應該能同時響應靜態和隨時變化的動態數據,并提供實用美觀的交互界面。具體需求包括以下幾個方面的內容。
系統須支持從不同的平臺不同的數據庫讀取數據,然后進行整合,直觀上做到所有數據從一個數據源提取,為建設企業級的報表平臺提供基礎數據。
系統的報表設計端須功能強大、簡便易用,能快速響應不斷變化的需求,設計出各類報表、支持參數查詢、圖表分析、數據鉆取、界面風格調整等,以提升用戶的使用體驗。
系統須具有強大的處理復雜數據邏輯計算的能力,支持各種復雜業務數據的處理,以滿足各層管理人員的實際工作需求。
系統須具有強大的數據錄入功能,可通過計算機或者移動端設備進行高效的數據補錄、刪除或修改,并支持數據的校驗,以保證數據的規范性、有效性和完整性。
系統須開發移動端訪問程序,為各層管理人員提供隨時隨地訪問的系統、迅速獲取數據的便利。
系統須能開發企業級數據大屏,大屏支持異構數據源輕松整合、多種可視化的圖表展示、數據的鉆取聯動分析及炫酷的可視化特效等功能。
基于以上需求,選擇了3家國內知名的報表平臺軟件:南京帆軟軟件有限公司的FineReport、廣州思邁特軟件有限公司的SmartBI及北京億信華辰軟件有限責任公司的i@Report,分別進行了調研和試用。綜合考慮到產品品牌、市場占有率、功能、項目實施、售后服務等因素,最終選擇了帆軟報表作為本次企業級報表系統的設計開發平臺。
基于上述原有系統存在的問題并結合公司實際發展需要,在詳細分析業務需求后,明確了系統的建設目標。具體為:構建一個貼合業務數據、技術架構合理、跨業務平臺、跨數據庫、高靈活性、高擴展性、高性能的企業級的報表系統;同時需要建設企業級數據大屏以實現領導決策層對企業運行情況的整體把控;建設移動客戶端訪問程序,以方便各級管理人員的隨時隨地訪問系統,提高工作效率。
原報表系統是嵌入在綜合項目管理系統中的,它所有的數據采集、處理及展示都依賴于綜合項目管理系統,是一個強耦合的系統。其的缺點就是功能有限、維護升級困難,隨著數據量的不斷增大,系統性能會越來越差。
基于以上,對系統總體架構進行了改進:將從各業務系統數據庫采集到的所有業務數據抽取到目標數據庫里進行統一處理。這樣做的優勢是既不影響到原業務系統的運行,又能提高數據的處理效率。因此,新報表系統的總體設計分為三個主要的部分:數據采集子系統、數據處理整合子系統、數據分析展示子系統。總體架構如圖1所示。

圖1 系統總體架構圖
(1)數據采集子系統
本系統主要功能:從各業務系統及補錄表單中采集數據,如從財務系統、人力資源系統、綜合項目管理系統等信息系統中將需要的數據原樣采集到的目標數據庫中。
(2)數據處理整合子系統
本系統主要功能:將采集到目標數據庫的原始數據通過分析,進行預處理,生成目標數據源保存到目標數據庫表中,為下一步的數據分析展示提供數據源。
(3)數據分析展示系統
本系統主要功能:為各層管理人員提供業務報表及大屏數據分析服務,包括報表的實時查詢、統計分析、下載等功能。報表和大屏展的數據來源于數據整合子系統。
系統整體實施要求在保證系統功能需求和安全性的前提下,最大限度的提高系統的性能和靈活性。系統采用Kettle進行了數據的采集和整合處理,采用CentOS7.0作為服務器的操作系統,MySql5.7作為目的數據庫,帆軟報表設計器FR10.0作為設計平臺,進行了系統實施工作。建設完成了中化二建數據分析系統,實現了對系統用戶、權限管理、系統配置、業務報表、數據大屏等統一管理。
根據需求,報表系統的數據來源暫時有兩種,一是直接從PMS系統數據庫中提取,二是通過報表系統的補錄功能進行提取(PMS系統中不涉及的數據)。
本系統主要功能是通過數據抽取轉換工具Kettle定時將PMS系統中的數據庫表從SQL Server數據庫中原樣抽取到目標數據庫MySQL中。這個過程需執行一個總體的作業來完成,這個作業中又包含多個用于抽取具體表數據的轉換。圖2所示即為整體數據采集作業情形。

圖2 數據采集作業
通過這個作業就把整個系統所需要基礎數據庫表原樣抽取到了目標數據庫中。下面以經濟活動分析表為例具體闡述數據采集的過程。
(1)分析數據源
通過分析得知經濟活動分析表的數據來源于以下幾張數據庫表:項目清單明細表HER_RPT_QDKZMX,經營數據表HER_RPT_JYGL及明細表;人員數據表HER_RPT_RYTJ及明細表;財務數據表HER_RPT_CWGL及明細表,計劃統計表HER_RPT_JHTJLR及明細表。
(2)原樣抽取數據源
利用工具Kettle把涉及的表原樣抽取到目標數據庫,通過定義抽取具體表的轉換完成數據抽取任務,如轉換ODS_HER_RPT_QDKZMX.ktr,完成了項目清單明細表HER_RPT_QDKZMX從源數據庫到目標數據庫的轉換,轉換完成的目標表為:ODS_HER_RPT_QDKZMX。
通過上述的作業和轉換,在目標數據庫中生成了經濟活動分析表所需要的底層的數據庫表ODS_HER_RPT_QDKZMX,ODS_HER_RPT_JHTJLR,ODS_HER_RPT_JHTJLRMX,ODS_HER_RPT_CWGL,ODS_HER_RPT_CWGLMX,ODS_HER_RPT_JYGL,ODS_HER_RPT_JYGLMX,ODS_HER_RPT_RYTJ,ODS_HER_RPT_RYTJMX表。
本子系統主要完成了數據源表的裝載、清洗和轉換工作。通過Kettle將目標數據庫中各類底層數據表進行二次或多次抽取轉換、計算、匯總的處理后保存到新的數據庫表中。
下面仍以經濟活動分析報表為例進行闡述。由于經濟活動分析表中需要計算匯總項目的進度款審批、實際完成及資金回收的本月、年累和開累數據,而這些數據是分別以項目、以數據日期為單位存儲在項目清單明細表、經營數據表、財務數據表、人員數據表、計劃統計表中的,這些表間沒有明確的關系,如何通過一定的邏輯關系將他們關聯起來是報表實現的一個難點。最后通過分析,采取了邏輯主鍵的方式,即通過項目ID,數據日期的年、月的組合來構造一個邏輯主鍵作為經濟活動分析表的主鍵。通過作業和轉換生成了財務、經營、人員、計劃統計的維度表、當月數據表、當年數據表、年累數據表和開累數據表等邏輯表。如圖3所示生成邏輯表。

圖3 邏輯表
根據已經生成的這些表,最終生成了經濟活動分析總表DW_JJHDFXB:此表和權限表關聯后,又根據實際顯示數據,作預處理(此處的預處理包括單位換算、公式計算及判斷等)后,生成DW_JJHDFX_PLN,這個表就是我們經濟活動分析報表的主數據源。
其他報表及大屏的目標數據表的處理方式類似,此處不再贅述。
本子系統主要是根據需求及實際情況,在已生成的目標數據表的基礎上,利用帆軟的報表設計器設計完成經濟活動分析表、生產調度情況表、數據分析顯示大屏及移動客戶端等。
為了保證整個報表系統的風格統一,系統預置了一套具有公司特色的報表開發模板。采用模板的形式進行開發,不僅可以統一風格、提升企業形象,還可以一次成型,提高報表開發效率。
(1)數據源引入
帆軟報表設計器的靈活性之一就體現在多數據源關聯,即數據源可以選擇多種類型的數據庫,如MySQL、SQL Server、Oracle、DB2等。且同一張報表也可以關聯多個數據源,這樣的機制就能輕松實現跨平臺業務數據的讀取。
下面仍以經濟活動分析表為例進行闡述。
在帆軟報表設計器中將經濟活動分析表的數據源DS引入。數據源包括目標數據庫中的DW_JJHDFX_PLN表、權限表及查詢模塊中的參數,主代碼如下:

(2)報表樣式設計
根據已有報表的樣式模板,在報表設計器中通過行列對稱、分欄、分頁、分組、函數(公式)計算等進行報表樣式調整,可通過添加條件屬性實現預警等功能,圖4為報表設計器界面。

圖4 報表設計器界面
在實施過程中,整個經濟活動分析表的數據量是比較大的,有近80000條數據,難以在一個界面中全部展示出來,就考慮到了分頁功能。帆軟報表設計器本身具有分頁的功能,但它的工作機制是一次性從數據源取回所有的數據,然后再分頁展示,這在數據量較大的情況下,就會出現頁面加載速度比較慢的問題,隨著數據量的不斷增大,這個問題會越來越嚴重。如何解決這個問題,就成為了項目進一步實施的瓶頸。為此嘗試了多種方法進行處理,最后采用將分頁功能在前端頁面進行優化的方式來處理,即通過傳遞頁面參數的形式,每次翻頁只從數據源中取回20條數據在當前頁面加載,這樣就大大減輕了數據加載壓力,系統性能得到有效地優化,大大提升用戶了體驗。
分頁優化的部分主代碼如下:

目前,Z公司數據分析系統已經完成整體建設并進入試運行階段,系統的良好運行有效解決了原系統存在的諸如系統功能有限、單一數據源、界面單調、開發維護困難、平臺擴展性差等問題,實現了對公司經營數據的高效統計分析和良好的展示效果。
新的報表系統是一個基于業務數據的,利用新一代信息技術開發完成的企業級的、高度智能的數據分析系統。具體體現以下幾個方面。
一是系統的性能大大提高,提升了用戶體驗。系統先進的數據處理、存儲和傳輸、顯示機制,有效地提高了數據的傳輸速度,縮短了頁面的響應時間,大大提升了用戶體驗。
二是系統開發平臺支持跨數據庫的多種數據源提取和多個數據源的同時提取,實現報表數據源的多樣化。
三是系統開發平臺靈活易學,提高了報表的維護開發效率。系統采用了前后端分離的設計原則,可以根據需求分別修改前后端內容,大大提高了報表開發維護效率。
四是統一的數據源和處理分析標準,提高了數據分析的正確率和效率。同一類數據統一提取,統一更新,避免了多次重復提取和數據差異,提高了系統數據分析的正確率和效率。
五是強大的數據分析邏輯處理能力,為復雜報表的開發提供了技術支撐。
六是移動客戶端,實現隨時隨地訪問系統。移動端看報表,隨時隨地掌握企業運行情況,為各層管理人員提供堅實的數據支撐。
本文給出了企業級報表系統數據分析系統的整個設計和實現過程。對原系統的總體架構進行了分析改進,重點介紹了系統實施過程中的數據采集子系統、數據整合處理子系統和數據顯示子系統,詳細介紹了開發過程中遇到的難點及解決方案。系統的良好運行有效解決了原系統存在的諸如系統功能有限、單一數據源、界面單調、開發維護困難、平臺擴展性差等問題,滿足了建設需求,達到了系統建設目標。
但是隨著系統的廣泛深入推廣運行,系統仍需進一步的改進和完善,如:目前報表系統的數據來源還僅限于綜合項目管理系統和補錄數據,暫時還未對接其他業務系統數據。在未來根據管理需要,可拓展開發出基于多業務數據庫的報表,并根據各項業務數據分析實現對業務數據的自動預警分析及優化建議功能,提高公司的風險預警及管控能力。