潘永才 羅雪姣 溫小清 劉海龍 汪標(biāo)
摘 要:為了實(shí)現(xiàn)信息化管理,以Java EE和Oracle 11g數(shù)據(jù)庫(kù)為基礎(chǔ),開(kāi)發(fā)了數(shù)據(jù)統(tǒng)計(jì)與指標(biāo)分析系統(tǒng)。該系統(tǒng)完成數(shù)據(jù)錄入以及各種分類形式的匯總,指標(biāo)計(jì)算分析和圖表展示等功能。實(shí)際應(yīng)用證明,該系統(tǒng)操作界面友好,數(shù)據(jù)匯總方式符合實(shí)際應(yīng)用標(biāo)準(zhǔn),數(shù)據(jù)處理安全,快速。
關(guān)鍵詞:數(shù)據(jù)統(tǒng)計(jì);指標(biāo)分析;Java EE;Oracle 11g數(shù)據(jù)庫(kù)
中圖分類號(hào):TP316 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-1302(2015)03-00-02
0 引 言
隨著采油廠的生產(chǎn)經(jīng)營(yíng)由“行政管理”到“精細(xì)化”再到“精益化管理”的不斷升級(jí),基礎(chǔ)資料統(tǒng)計(jì)所形成的各類統(tǒng)計(jì)報(bào)表日益增多,而在經(jīng)營(yíng)管理過(guò)程中,經(jīng)營(yíng)指標(biāo)是體現(xiàn)一個(gè)單位管理水平的重要標(biāo)志。傳統(tǒng)的方法是以手工來(lái)進(jìn)行計(jì)算,這使基層人員工作量繁重,而且也不能直觀的對(duì)指標(biāo)進(jìn)行分析對(duì)比,不利于企業(yè)的“精益化管理”。因此,設(shè)計(jì)信息化的數(shù)據(jù)統(tǒng)計(jì)和指標(biāo)分析系統(tǒng)在實(shí)際應(yīng)用中有重要意義。
生產(chǎn)經(jīng)營(yíng)統(tǒng)計(jì)分析系統(tǒng)是從生產(chǎn)經(jīng)營(yíng)管理的實(shí)際以及業(yè)務(wù)開(kāi)展過(guò)程中的數(shù)據(jù)收集、存儲(chǔ)、訪問(wèn)、應(yīng)用現(xiàn)狀與需求出發(fā),掌控生產(chǎn)過(guò)程中的各項(xiàng)經(jīng)營(yíng)指標(biāo),實(shí)現(xiàn)實(shí)物消耗(投入)和產(chǎn)品量(產(chǎn)出)的最佳比值為目的,以單井、單臺(tái)設(shè)備為基本統(tǒng)計(jì)單元,逐級(jí)建立的統(tǒng)計(jì)分析信息化管理系統(tǒng),通過(guò)投入產(chǎn)出基礎(chǔ)數(shù)據(jù)的統(tǒng)計(jì),計(jì)算和分析各項(xiàng)生產(chǎn)經(jīng)營(yíng)指標(biāo),為成本核算、控制、分析及標(biāo)桿管理提供準(zhǔn)確的基礎(chǔ)資料,為管理者決策提供科學(xué)依據(jù)。
1 系統(tǒng)框架設(shè)計(jì)
生產(chǎn)經(jīng)營(yíng)統(tǒng)計(jì)分析系統(tǒng)采用MVC多層架構(gòu)技術(shù),運(yùn)用Eclipse,PowerBuilder多種開(kāi)發(fā)工具,以O(shè)racle 11g數(shù)據(jù)庫(kù)為基礎(chǔ)進(jìn)行開(kāi)發(fā)。
系統(tǒng)錄入部分采用C/S(Client/Server)結(jié)構(gòu),即客戶端和服務(wù)器結(jié)構(gòu)進(jìn)行開(kāi)發(fā)??蛻舳丝砂粋€(gè)或多個(gè)在用戶的電腦上運(yùn)行的程序,而服務(wù)器端是數(shù)據(jù)庫(kù)服務(wù)器端,客戶端通過(guò)數(shù)據(jù)庫(kù)連接訪問(wèn)服務(wù)器端的數(shù)據(jù)。
系統(tǒng)的客戶端采B/S(Browser/Server)結(jié)構(gòu),即瀏覽器和服務(wù)器結(jié)構(gòu)進(jìn)行開(kāi)發(fā)。采用安全高效的Java EE開(kāi)源框架Spring、Spring MVC 、JdbcTemplate組合,該框架組合具有高內(nèi)聚低耦合的特性,使業(yè)務(wù)代碼與頁(yè)面展示相互分離,確保系統(tǒng)數(shù)據(jù)的實(shí)時(shí)性、穩(wěn)定性、安全性,并創(chuàng)建豐富的窗體和可視化空間,達(dá)到界面美觀、友好的效果。
后臺(tái)數(shù)據(jù)庫(kù)服務(wù)器以O(shè)racle 11g數(shù)據(jù)庫(kù)為基礎(chǔ)進(jìn)行開(kāi)發(fā),該數(shù)據(jù)庫(kù)具有快速故障切換、簡(jiǎn)易管理和零數(shù)據(jù)丟失災(zāi)難保護(hù)功能,可以有效提高數(shù)據(jù)的可用性,最大限度地減小由于天災(zāi)、人為操作錯(cuò)誤或正常維護(hù)等各種原因?qū)е峦C(jī)現(xiàn)象所帶來(lái)的風(fēng)險(xiǎn),滿足了油田生產(chǎn)管理過(guò)程中數(shù)據(jù)保存量大,存儲(chǔ)和讀取速度快的要求。
2 系統(tǒng)功能實(shí)現(xiàn)
該系統(tǒng)主要包括錄入系統(tǒng)和查詢系統(tǒng),錄入系統(tǒng)和查詢系統(tǒng)實(shí)現(xiàn)的主要功能如圖1所示。
圖1 生產(chǎn)經(jīng)營(yíng)統(tǒng)計(jì)分析系統(tǒng)
錄入系統(tǒng)主要用于基層工作人員錄入基礎(chǔ)數(shù)據(jù),錄入完成后,數(shù)據(jù)進(jìn)入后臺(tái)數(shù)據(jù)庫(kù)保存。基礎(chǔ)數(shù)據(jù)主要由工作人員通過(guò)錄入系統(tǒng)錄入,錄入的數(shù)據(jù)為月度查詢報(bào)表的主要數(shù)據(jù)來(lái)源,還有部分?jǐn)?shù)據(jù)通過(guò)本地?cái)?shù)據(jù)庫(kù)與遠(yuǎn)程數(shù)據(jù)庫(kù)建立連接,從遠(yuǎn)程數(shù)據(jù)庫(kù)導(dǎo)入。在錄入系統(tǒng)添加了Excel導(dǎo)入導(dǎo)出功能,基層人員可以把已有的Excel報(bào)表直接導(dǎo)入錄入系統(tǒng),減少了工作人員的工作量,同時(shí)可以把錄入報(bào)表直接由數(shù)據(jù)庫(kù)導(dǎo)出,供其他的數(shù)據(jù)使用。
查詢系統(tǒng)報(bào)表將錄入系統(tǒng)的數(shù)據(jù)主要按分類、分區(qū)塊、分油田、分過(guò)程進(jìn)行單月和累計(jì)(多月)匯總,并可以對(duì)比分析每個(gè)月數(shù)據(jù)的變化曲線。上一級(jí)的查詢?nèi)藛T可以點(diǎn)擊某項(xiàng)數(shù)據(jù)追蹤到下一級(jí)別,找到數(shù)據(jù)來(lái)源。每個(gè)單位在每月數(shù)據(jù)匯總完成確定無(wú)誤后對(duì)數(shù)據(jù)進(jìn)審核后數(shù)據(jù)將鎖定不允許再更改。如果必須要更改,則必須由擁有更高系統(tǒng)權(quán)限的人員解除審核才能對(duì)數(shù)據(jù)進(jìn)行重新匯總,這樣確保數(shù)據(jù)的可靠性和安全性。生產(chǎn)經(jīng)營(yíng)指標(biāo)查詢是對(duì)月度查詢報(bào)表中的部分重要數(shù)據(jù)進(jìn)行計(jì)算處理后得到的派生報(bào)表,在生產(chǎn)經(jīng)營(yíng)指標(biāo)的分析結(jié)果以柱狀、餅狀、曲線等圖表的形式展現(xiàn)出來(lái),能夠更直觀地反應(yīng)出相關(guān)的數(shù)據(jù)。并且在查詢界面有Excel導(dǎo)出功能,將匯總后的數(shù)據(jù)報(bào)表導(dǎo)出。
系統(tǒng)設(shè)有管理員,主要對(duì)系統(tǒng)進(jìn)行后臺(tái)維護(hù),主要包括用戶管理,用戶權(quán)限設(shè)置,下屬基層單位的維護(hù)(刪除,添加計(jì)量站/單井),網(wǎng)站新聞實(shí)時(shí)更新,文件管理和公告發(fā)布。
3 關(guān)鍵技術(shù)解決方案
3.1 數(shù)據(jù)連接池
由于數(shù)據(jù)庫(kù)訪問(wèn)量比較大,故采用數(shù)據(jù)連接池+jdbcTemplate完成對(duì)數(shù)據(jù)庫(kù)的增刪改查操作。該連接池不僅具有具有dbcp連接池的所有功能,還可以監(jiān)控SQL語(yǔ)句的執(zhí)行以及session數(shù)量,監(jiān)控系統(tǒng)出現(xiàn)的錯(cuò)誤,以便及時(shí)的進(jìn)行修改,可以監(jiān)控?cái)?shù)據(jù)庫(kù)訪問(wèn)性能,Druid內(nèi)置提供了一個(gè)功能強(qiáng)大的StatFilter插件,能夠詳細(xì)統(tǒng)計(jì)SQL的執(zhí)行性能,這對(duì)于線上分析數(shù)據(jù)庫(kù)訪問(wèn)性能有幫助。druid連接池配置如下所示:
………連接數(shù)據(jù)庫(kù)………………
<!-- 初始化連接大小 -->
<!-- 連接池最大使用連接數(shù)量 -->
<!-- 連接池最小空閑 -->
<!-- 獲取連接最大等待時(shí)間 -->
<!-- 配置間隔多久才進(jìn)行一次檢測(cè),檢測(cè)需要關(guān)閉的空閑連接-->
<!-- 配置一個(gè)連接在池中最小生存的時(shí)間,單位是毫秒 -->
<!-- 打開(kāi)removeAbandoned功能 ,自動(dòng)回收超時(shí)連接-->
<!-- 超時(shí)時(shí)間1800秒-->
<!-- 關(guān)閉abanded連接時(shí)輸出錯(cuò)誤日志 -->
由于需要大量執(zhí)行存儲(chǔ)過(guò)程,選擇Spring框架中的JdbcTemplate來(lái)操作數(shù)據(jù)庫(kù)中的數(shù)據(jù),jdbcTemplate封裝了jdbc的所有操作并且不用顯示關(guān)閉數(shù)據(jù)庫(kù)連接,當(dāng)用完連接后自動(dòng)將連接釋放回連接池,提升了數(shù)據(jù)庫(kù)連接的時(shí)間,提高了系統(tǒng)的性能。
3.2 Jfreechart圖表生成
查詢端的圖表生成應(yīng)用了Jfreechart技術(shù),JFreeChart是Java平臺(tái)上的一個(gè)開(kāi)放的圖表繪制類庫(kù)。它完全使用Java語(yǔ)言編寫,是為applications, applets, servlets 以及JSP等使用所設(shè)計(jì)。JFreeChart可生成餅圖、柱狀圖、散點(diǎn)圖、時(shí)序圖、甘特圖等多種圖表,并且可以產(chǎn)生PNG和JPEG格式的輸出,還可以與PDF和Excel關(guān)聯(lián),增強(qiáng)了系統(tǒng)數(shù)據(jù)分析對(duì)比能力。
例如生成一個(gè)柱狀圖:
//創(chuàng)建一個(gè)柱狀圖Bar3D bar=new Bar3D();
//給柱狀圖輸入數(shù)據(jù)
String axisX=" ";
//x軸名稱
String axisY="";
//y軸名稱
DefaultCategoryDataset dataset=bar.CreateDataset(數(shù)據(jù)集參數(shù));
title=DWMC+startdate+x[id]+”柱狀圖”;
//獲得生成的柱狀圖的文件名
String filename=bar.getchart(session,new PrintWriter(out),title,axisX,axisY,dataset,line);
//獲得生成的柱狀圖的路徑
String charturl=request.getContextPath() + “/servlet/DisplayChart?filename=" + filename;
然后在jsp中將這個(gè)地址嵌入img中,如下:
最后得到的柱狀分析圖表如圖2所示。
圖2 系統(tǒng)生成柱狀圖示例
4 結(jié) 語(yǔ)
生產(chǎn)經(jīng)營(yíng)統(tǒng)計(jì)分析系統(tǒng)完成了班、站、崗位等各控制層面以單井、單機(jī)、單臺(tái)設(shè)備為基本統(tǒng)計(jì)單元的各類基礎(chǔ)數(shù)據(jù)錄入報(bào)表、月度查詢報(bào)表、累計(jì)查詢報(bào)表、生產(chǎn)經(jīng)營(yíng)指標(biāo)以及各項(xiàng)指標(biāo)分析的設(shè)計(jì)編寫。用戶界面友好,數(shù)據(jù)存儲(chǔ)安全,讀取速度快,目前系統(tǒng)已穩(wěn)定運(yùn)行,為實(shí)際生產(chǎn)消耗,以及決策提供數(shù)據(jù)依據(jù)。
參考文獻(xiàn)
[1]趙大力,靳其兵,趙梅.Oracle 數(shù)據(jù)庫(kù)優(yōu)化解決方案[J].計(jì)算機(jī)應(yīng)用,2005(3):44-46.
[2]何月順,丁秋林.調(diào)整優(yōu)化Oracel9i 數(shù)據(jù)庫(kù)的性能[J].計(jì)算機(jī)應(yīng)用與軟件,2005,21(6):10-11.
[3]陸洲.Java EE核心模式研究[J].計(jì)算機(jī)與數(shù)字工程,2014,42(1):81-84.
[4]劉春穎.采用JAVA技術(shù)實(shí)現(xiàn)JAVA數(shù)據(jù)庫(kù)系統(tǒng)的應(yīng)用[J].計(jì)算機(jī)光盤軟件與應(yīng)用,2014(14):280-281.
[5]王蕓,陳漢章.社會(huì)經(jīng)濟(jì)統(tǒng)計(jì)學(xué)原理[M].成都: 西南財(cái)經(jīng)大學(xué)出版社,2001.
[6]易丹輝.數(shù)據(jù)分析與Eviews應(yīng)用[M].北京:中國(guó)統(tǒng)計(jì)出版社,2002.