中石油油井統(tǒng)計分析優(yōu)化方案_第1頁
中石油油井統(tǒng)計分析優(yōu)化方案_第2頁
中石油油井統(tǒng)計分析優(yōu)化方案_第3頁
中石油油井統(tǒng)計分析優(yōu)化方案_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、中石油油井統(tǒng)計分析優(yōu)化方案背景中國石油天然氣集團(tuán)原有一套“勘探與生產(chǎn)技術(shù)數(shù)據(jù)管理系統(tǒng)”,底層結(jié)構(gòu)為JAVA,展 現(xiàn)部分用報表工具。該系統(tǒng)的設(shè)計目標(biāo)是宏觀展示全國油井?dāng)?shù)據(jù),監(jiān)控各項關(guān)鍵指標(biāo),防范 已知和未知風(fēng)險,追溯并解決問題油井。集團(tuán)在全國有十六大油田、上百小油田,每個油田都有幾十到幾千口油井。該系統(tǒng)在試 點(diǎn)油田運(yùn)行后,基本達(dá)到了設(shè)計目標(biāo),但正式部署到全國時,卻發(fā)生了開發(fā)工作量大,遲遲 無法推廣的問題。本方案試圖找到問題的原因,并對原系統(tǒng)進(jìn)行優(yōu)化,從而提高開發(fā)效率,進(jìn)而快速全國 推廣,提高用戶的滿意度。原因分析解析Json原系統(tǒng)要對油井進(jìn)行監(jiān)控統(tǒng)計,數(shù)據(jù)來自于數(shù)據(jù)庫和油井傳感器。數(shù)據(jù)庫提供JD

2、BC接 口,報表工具可直接訪問,這方面不存在開發(fā)效率的問題。但油井傳感器提供的是json接 口,報表工具不能直接訪問,必須解析成報表工具可識別的二維表(自定義數(shù)據(jù)集)。個別報表工具可解析最簡單(單層)json,但傳感器是標(biāo)準(zhǔn)(多層)json,因此只能用 JAVA類進(jìn)行解析。JAVA類的開發(fā)工作量大,遠(yuǎn)不如JDBC快捷。如果只解析一種傳感器,工足量雖大但尚能忍受,但每口油井有多種傳感器,json格式 各不相同,因此要用不同的JAVA類去解析,這樣的開發(fā)效率就無法忍受了。推廣到全國后, 又發(fā)現(xiàn)即使是相同類型的傳感器,各地也存在年代和版本差異,從而導(dǎo)致json格式更多更 復(fù)雜,其開發(fā)過程令人苦不甘言

3、。數(shù)據(jù)計算將json解析為JAVA二維表,這只是最基本的開發(fā)障礙,真正的障礙是對二維表進(jìn)行計 算。數(shù)據(jù)計算是SQL的專項,報表工具雖然也具有計算能力,但只限于最簡單的算法,并 不能像SQL那樣自由計算,比如:分組后取得各組最大的前三條記錄,用這些記錄和另一 個二維表關(guān)聯(lián),再做一次分組匯總。此外,報表計算時必須帶著外觀屬性,內(nèi)存占用大,很 容易溢出。報表計算性能更是短板,比如關(guān)聯(lián)只能用字符串匹配來模擬,數(shù)據(jù)一旦上萬就變 得很慢。用SQL無法計算JAVA二維表,用報表計算又缺乏自由和性能,所以只能用JAVA代碼來 計算。JAVA自由度極高,任意SQL算法理論上都能等價實(shí)現(xiàn);計算時不必帶著外觀屬性,

4、可 以控制內(nèi)存溢出;利用哈希表和排序算法,性能也有保障。但JAVA缺乏計算類庫,就連最 簡單的過濾都要從底層寫起,因此代碼冗長繁瑣,極易出錯,難以復(fù)用難以維護(hù),這些都會 嚴(yán)重影響開發(fā)進(jìn)度。其他原因開發(fā)工作量大的原因還有:試點(diǎn)范圍擴(kuò)大到全國,報表數(shù)量劇增;油井?dāng)?shù)量每天都有增 減;json格式變化多端;報表經(jīng)常要改;json和數(shù)據(jù)庫混合計算,JAVA實(shí)現(xiàn)困難等等。但這些都是表面原因,最底層最根本的原因還是前面的兩條:解析Json和數(shù)據(jù)計算。優(yōu)化方案集算器解析json,并對解析結(jié)果進(jìn)行自由計算,報表工具通過JDBC調(diào)用集算器,并在 報表中展示數(shù)據(jù)。 解析json集算器支持多種數(shù)據(jù)源,包括數(shù)據(jù)庫、文本

5、、Excel、Hadoop、mongodb,http流,namejdlJcL area lengthMemberkeyvaluenameABCid1jiobTeacherkeyvaluearea2RQ.key口valuelength LJ-45u也可以直接解析json,開發(fā)工作量幾乎為零。示例如下:AB=httpfile( HYPERLINK /Servlet?t /Servlet?t)/獲得json流=A1.read().importj()/解析多層json解析結(jié)果如下: 數(shù)據(jù)計算集算器內(nèi)置結(jié)構(gòu)化數(shù)據(jù)計算類庫,封裝了豐富的結(jié)構(gòu)化計算函數(shù),支持集合運(yùn)算、 關(guān)聯(lián)運(yùn)算、有序運(yùn)算,開發(fā)工作量極低。不

6、管是執(zhí)行SQL、解析json或讀取文件,其結(jié) 果都是統(tǒng)一的數(shù)據(jù)類型,都可以執(zhí)行所有的集算器函數(shù),也可進(jìn)行多數(shù)據(jù)源混合計算。 示例如下:AB1=httpfile( HYPERLINK /Servlet?t /Servlet?t)/獲得json串2=A1.read().importj()/解析多層json3=A2.select(like(name,A*)/對解析結(jié)果模糊查詢4=A3.groups(key; count()/對查詢結(jié)果分組匯總 JDBC 接口集算器對外提供JDBC接口,可被任意JAVA程序、報表工具調(diào)用,用法和訪問數(shù)據(jù) 庫一致,開發(fā)工作量幾乎為零。示例如下:Connection co

7、n= DriverManager.getConnection(jdbc:esproc:local:/);Statementst =con.prepareCall(call queryJson();st.execute();優(yōu)化效果原系統(tǒng)有幾百張報表,現(xiàn)舉一例說明。下面這張報表涉及9種json源,需要解析json, 再合并解析結(jié)果,最后進(jìn)行一系列的計算(具體數(shù)據(jù)和算法涉密)45 業(yè)性髭IT井別沖g型性早1度g:(0r ?n r*a-oo ;用估國ib:ou耳l_ftne_tlCaijj*T,fa mar Ar aahcriaF 恩吾I:_:全工工止停建1IQ廿,4,擊訕曲S!it工作門苜止工秘胃a果舟,吧afthfO7、土KT?vjfc JaTaijg-awni 爭A*卜*9 mp p * , rsi, -_ b 1 a _jxfc t3止 |哉巳 舍下面比較優(yōu)化-前后的工作量指標(biāo)指標(biāo)優(yōu)化前優(yōu)化后解析9種json4工作日2小時Json合并及計算8工作日2小時報表設(shè)計0.5工作日4小時(0.5工作日)總開發(fā)工作量12.5工作日8小時(1工作日)修改報表4工作日2小時醺位定U11KiT】.WE宜新岫必g耐。I 200,心1 :典可以看到,不論是總工作量還是維護(hù)工作量

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論