姜兆巍, 張???, 崔恩懷, 許 亮
(1.中油中泰燃氣投資有限公司,廣東珠海519000;2.金卡智能集團股份有限公司,浙江杭州310018)
燃氣購銷差是衡量燃氣企業(yè)經營管理水平最直接的綜合指標,控制和降低購銷差是燃氣企業(yè)的首要工作之一。實際上,燃氣企業(yè)購銷差整體管理水平并不樂觀,大部分燃氣企業(yè)并不清楚自身的實際購銷差、購銷差率。主要原因是燃氣企業(yè)沒有科學的購銷差計算模型,無法保障數(shù)據(jù)的準確與時效性。本文對燃氣企業(yè)購銷差管理系統(tǒng)的構建進行分析。
購銷差管理系統(tǒng)可充分利用燃氣公司現(xiàn)有業(yè)務系統(tǒng)數(shù)據(jù),后臺服務程序從燃氣公司現(xiàn)有客戶與營收系統(tǒng)、用戶遠傳表監(jiān)控系統(tǒng)等系統(tǒng)中抓取燃氣用量相關數(shù)據(jù)。購銷差管理系統(tǒng)主要包括基礎數(shù)據(jù)管理、日常管理、購銷差管理、數(shù)據(jù)查詢分析功能模塊。
① 基礎數(shù)據(jù)管理模塊。主要包括氣源信息管理、工商戶信息管理、場站信息管理、管網(wǎng)信息管理、表具信息管理等子功能模塊,提供基礎信息的添加、刪除、修改、查詢等功能,為其他功能模塊提供基礎數(shù)據(jù)支撐。
② 日常管理模塊。主要包括設備日常運行管理、氣量交接管理、氣損記錄管理,該功能模塊是購銷差管理系統(tǒng)的主要功能模塊。通過日常管理模塊收集的各項購銷氣數(shù)據(jù),以及購銷差計算結果,可對購銷差產生原因進行分析,查找日常管理工作環(huán)節(jié)的不足,針對不足進行改進。
③ 購銷差管理模塊。主要功能為定義銷氣量估算模型、定義購銷差計算模型。根據(jù)用氣估算模型、購銷差計算模型,預測計算一定時期的購銷差。也可以根據(jù)歷史數(shù)據(jù),計算歷史購銷差。
④ 數(shù)據(jù)查詢分析模塊。將購銷差數(shù)據(jù)以及日常管理過程中產生的相關業(yè)務數(shù)據(jù)進行多維度綜合統(tǒng)計分析,生成各類型統(tǒng)計報表,為燃氣企業(yè)的購銷差管理工作提供數(shù)據(jù)支撐。
① 購銷差計算模型
購銷差ΔQ的計算式為:
ΔQ=Qp+Qi,e-Qi,L-Qs-Qf-Qc-Qd
式中 ΔQ——購銷差,m3
Qp——總購氣量,m3
Qi,e、Qi,L——統(tǒng)計初期總庫存量、統(tǒng)計末期總庫存量,m3
Qs——總銷氣量,m3
Qf——自用氣量,m3
Qc——索賠氣量,m3
Qd——放散氣量,m3
購銷差μ的計算式為:
式中μ——購銷差
總購氣量包括管輸購氣量、CNG購氣量、LNG購氣量。統(tǒng)計初期總庫存量包括統(tǒng)計初期管存量、CNG庫存量、LNG庫存量。統(tǒng)計末期總庫存量包括統(tǒng)計末期管存量、CNG庫存量、LNG庫存量??備N氣量包括工商業(yè)用戶銷氣量、廠站銷氣量、居民用戶銷氣量、商業(yè)用戶銷氣量、供暖用戶銷氣量、加氣站用戶銷氣量、轉供量、其他銷氣量。
自用氣量包括生產自用氣量、生活自用氣量。索賠氣量包括非法用氣索賠氣量、外力破壞索賠氣量。放散氣量包括生產放散氣量、工程放散氣量。
② 預測方法
對購銷差管理系統(tǒng)采集的歷史數(shù)據(jù)、流式數(shù)據(jù)進行建模分析,采用Spark Mllib機器學習方法對總購氣量、統(tǒng)計初期總庫存量、統(tǒng)計末期總庫存量、總銷氣量、自用氣量、索賠氣量、放散氣量等進行預測。將預測結果用于購銷差預測計算,從而根據(jù)預測購銷差制定購氣、銷氣策略。
通過表具數(shù)據(jù)上報,將銷氣數(shù)據(jù)放入Kafka(分布式消息隊列)中。使用分布式并行編程模型、計算框架(MapReduce)、數(shù)據(jù)挖掘算法(Spark MLlib)對Kafka中的數(shù)據(jù)進行提取-轉化-加載(Extract-Transform-Load,ETL)??蓪Ρ砭呱蟼魇〉臄?shù)據(jù)進行特定的算法填充,并對無效數(shù)據(jù)進行過濾。
使用Kettle、MapReduce、Spark等工具對所有數(shù)據(jù)進行ETL,并將ETL后的數(shù)據(jù)存放到數(shù)據(jù)倉庫Hive。使用HQL(Hibernate Query Language,查詢語言)對數(shù)據(jù)倉庫Hive中全量歷史數(shù)據(jù)進行批量的各維度(區(qū)域、時間等維度)的分析。將分析結果及其他經常使用的數(shù)據(jù)存放到HBase數(shù)據(jù)庫中,并提供交互式查詢。
① 使用Hive QL語言對數(shù)據(jù)倉庫Hive中存放的全量數(shù)據(jù)進行各種維度的分析,如用戶畫像分析、時段統(tǒng)計等。
a.用戶畫像分析(用戶使用習慣分析)。以用戶為主要條件,時間為次要條件分組聚合,聚合后得到用戶每日的數(shù)據(jù)。將用戶每日的數(shù)據(jù)進行特定的算法對比過濾,得到用戶每日的用氣習慣數(shù)據(jù),并加以分析。
b.時段統(tǒng)計。以季度為統(tǒng)計時段為例,將數(shù)據(jù)倉庫Hive中的全量數(shù)據(jù)(包括購銷差計算模型中的各項歷史數(shù)據(jù))按季度為主要條件分組聚合。將聚合后的數(shù)據(jù)按時間排序,實現(xiàn)對季度數(shù)據(jù)的統(tǒng)計。
② 對HBase數(shù)據(jù)庫中的數(shù)據(jù)進行高效率的交互式查詢,建立查詢數(shù)據(jù)模型??蓪崿F(xiàn)按經常使用的字段(如用戶ID、時間、區(qū)域等字段)單獨建模,從而實現(xiàn)按特定字段的數(shù)據(jù)查詢。
③ 流式計算(對實時數(shù)據(jù)進行分析計算,如實時報警)。使用SparkStreaming、Flink、Storm等流式計算框架,實時拉取Kafka中的數(shù)據(jù)。對實時拉取的數(shù)據(jù)進行分析,若發(fā)現(xiàn)某些數(shù)據(jù)變化異常,則將些數(shù)據(jù)標記為異常數(shù)據(jù),并進行異常報警,以短信、微信、郵件等方式發(fā)送報警數(shù)據(jù)。
根據(jù)分析結果,可實現(xiàn)各個維度(區(qū)域、時間等)購銷差、購銷差率等數(shù)據(jù)的屏幕顯示。
建立了燃氣企業(yè)購銷差管理系統(tǒng)。購銷差管理系統(tǒng)主要包括基礎數(shù)據(jù)管理、日常管理、購銷差管理、數(shù)據(jù)查詢分析功能模塊,對購銷差計算模型與預測方法、歷史數(shù)據(jù)處理流程進行分析。