中油中泰燃气 姜兆巍/崔恩怀
易联云 张海俊/许亮
来源:《煤气与热力》2019年8月刊
摘要:建立燃气企业购销差管理系统。购销差管理系统包括基础数据管理、日常管理、购销差管理、数据查询分析功能模块,对购销差计算模型与预测方法、历史数据处理流程进行分析。
关键词:购销差;购销差率;管理系统
1 概述
燃气购销差是衡量燃气企业经营管理水平最直接的综合指标,控制和降低购销差是燃气企业的首要工作之一。实际上,燃气企业购销差整体管理水平并不乐观,大部分燃气企业并不清楚自身的实际购销差、购销差率。主要原因是燃气企业没有科学的购销差计算模型,无法保障数据准确性与时效性。本文对燃气企业购销差管理系统的构建进行分析。
2 购销差管理系统功能架构
购销差管理系统充分利用燃气公司现有业务系统数据,后台服务程序从燃气公司现有客户与营收系统、用户远传表监控系统等系统中抓取燃气用量相关数据。购销差管理系统主要包括基础数据管理、日常管理、购销差管理、数据查询分析功能模块。
① 基础数据管理。主要包括气源信息管理、工商户信息管理、场站信息管理、管网信息管理、表具信息管理等子功能模块,提供基础信息的添加、删除、修改、查询等功能,为其他功能模块提供基础数据支撑。
② 日常管理。主要包括设备日常运行管理、气量交接管理、气损记录管理,该功能模块是购销差管理系统的主要功能模块,通过日常管理模块收集的各项购销气数据,以及购销差计算结果,可对购销差产生原因进行分析,查找日常管理工作环节的不足,针对不足进行改进。
③ 购销差管理模块。主要功能定义销气量估算模型、定义购销差计算模型。根据用气估算模型、购销差计算模型,预测计算一定时期的购销差。也可以根据历史数据,计算历史购销差。④ 数据查询分析模块。将购销差数据以及日常管理过程中产生的相关业务数据进行多维度综合统计分析,生成各类型统计报表,为燃气企业的购销差管理工作提供详细的数据支撑。
3 购销差计算模型与预测方法
① 购销差计算模型
购销差ΔQ的计算式为:
ΔQ=Qp+ Qi,e-Qi,L-Qs-Qf-Qc-Qd
式中 ΔQ——供销差,m3
Qp——总购气量,m3
Qi,e、Qi,L——统计初期总库存量、统计末期总库存量,m3
Qs——总销气量,m3
Qf——自用气量,m3
Qc——索赔气量,m3
Qd——放散气量,m3
购销差μ的计算式为:
μ=ΔQ/[Qp+(Qi-t1-Qi-t2)]
总购气量包括管输购气量、CNG购气量、LNG购气量。统计初期总库存量包括统计初期管存量、CNG库存量、LNG库存量。统计末期总库存量包括统计末期管存量、CNG库存量、LNG库存量。总销气量包括工商业用户销气量、场站销气量、居民用户销气量、商业用户销气量、供暖用户销气量、加气站用户销气量、转供量、其他销气量。
自用气量包括生产自用气量、生活自用气量。索赔气量包括非法索赔气量、外力破坏索赔气量。放散气量包括生产放散气量、工程放散气量。
② 预测方法
对购销差管理系统采集的历史数据、流式数据进行建模分析,采用Spark MLlib机器学习方法对总购气量、统计初期总库存量、统计末期总库存量、总销气量、自用气量、索赔气量、放散气量等进行预测。将预测结果用于购销差预测计算,从而根据预测购销差制定购气、销气策略。
4 历史数据处理流程
4.1 数据采集
通过表具数据上报,将销气数据放入Kafka(分布式消息队列)当中。使用分布式并行编程模型和计算框架(MapReduce)及机器学习和数据挖掘算法(Spark MLlib)对Kafka中的数据进行数据提取-转化-加载(Extract-Transform-Load,ETL)。例:对表具上传失败的数据进行特定的算法填充,并对无效数据进行过滤。
4.2 数据存储
使用Kettle、MapReduce、Spark等工具对所有数据进行ETL(提取-转化-加载)并将ETL后的数据存放到数据仓库Hive,使用HQL(Hibernate Query Language,查询语言)对数据仓库Hive中全量历史数据进行批量的各维度(区域、时间等维度)的分析。将分析结果及其他经常使用的数据存放到HBase数据库中,并提供交互式查询。
4.3 数据分析
① 使用Hive QL语言对数据仓Hive中存放的全量数据进行各种维度的分析,如用户画像分析、时段统计等。
a.用户画像分析(用户使用习惯分析)。以用户为主要条件,时间为次要条件分组聚合,聚合后得到用户每日的数据。将用户每日的数据进行特定的算法对比过滤,得到用户每日的用气习惯数据,并加以分析。
b.时段统计。以季度为统计维度为例,将数据仓库Hive中的全量数据(包括购销差计算模型中的各项历史数据)按季度为主要条件分组聚合。将聚合后的数据按时间排序,实现对季度数据的统计。
② 对HBase数据库中的数据进行高效率的交互式查询,建立查询数据模型。可实现经常使用的字段(如用户ID、日期、区域等字段)进行单独建模,从而实现按特定字段的数据查询。
③ 流式计算(对实时的数据进行分析计算,如实时报警)。使用SparkStreaming、Flink、Storm等流式计算框架,实时拉取Kafka中的数据。对实时拉取数据进行分析,若发现某些数据变化异常,则将些数据标记为异常数据,并对进行异常报警,以短信、微信、邮件等方式推送报警数据。
4.4 数据结果展示
根据分析结果,可实现各个维度(区域、时间等)购销差、购销差率等数据的屏幕显示。
5 结语
建立了燃气企业购销差管理系统。购销差管理系统包括基础数据管理、日常管理、购销差管理、数据查询分析功能模块,对购销差计算模型与预测方法、历史数据处理流程进行分析。