本技术涉及一种基于计算用时不同的流处理任务的数据实时集成方法,属于数据实时集成。
背景技术:
1、电力设备是重点领域之一,信息技术与发电制造技术的深度融合,助力实现粗放制造向绿色制造转型、生产型制造向服务型制造转型。时至今日,电力装备的各个领域几乎都能看到智能化的身影。智能监测系统在融合了工业现场的传统dcs系统的主要功能的同时,融入了大数据挖掘、智能算法分析、物联网、网络互连等技术,通过对电厂生产和安全运行的全方位数据监测和感知,对数据进行融合、分析和处理,并与业务流程深度集成,为机组运行优化、智能控制和决策提供依据。
2、在实际生产过程中,往往会在电厂侧配置上万个传感器,进行参数收集、监测和分析等。现有智能监测系统通常以智能监盘的形式提供部分重要生产参数的可视化实时显示和历史查询,支持运维人员迅速掌握重要生产参数的变化,发现潜在问题,指导后续操作。然而,在项目应用中发现,运维人员的需求十分灵活多变,时常需要在不同的工况下,查看不同的参数信息;比较同一工况下的不同参数信息等等,且多次提出了“在智能监测系统中随机查询任意/全部参数值,下载历史数据”的需求,这样有助于电厂工作人员更全面、更灵活的掌握生产情况,仅通过远程访问智能监测系统,无需通过现场dcs系统,就可以随时随地查看、下载全部生产数据,发现潜在的故障隐患,挖掘不同参数间的关联特性等,进而为运行过程的优化、以及后续控制和决策提供有力依据。助力电厂运维人员提高工作效率,减化工作流程,减轻工作负荷,实现对电厂运行情况的实时精准管控。
3、但现有智能监测系统往往无法满足上述需求,因为智能监测系统中的数据来源十分广泛,通常包括电厂采集的实时数据、大数据算法、机理模型等功能模块的计算结果等,且这些数据往往管理于不同的数据库中。
4、通常,配置在发电现场的数据采集装置以1s、5s等固定频率进行数据采集,并通过智能网关设备将采集到的数据实时传输到数据通道。各功能模块接收到来自数据通道的数据后,启动运行,由各自的开发者管理计算结果,为智能监测系统提供获取数据的接口。保证智能监测系统实时分析处理需求的功能模块通常采用流处理任务框架来实现,即每获取到一条来自数据通道的数据,立即启动运行,针对该条采集数据进行相应计算,可以在秒级完成计算,输出计算结果。但还存在一些流处理任务的计算用时较长,无法在秒级完成计算,得到计算结果。
5、各流处理任务功能模块的计算结果皆由各自的开发者管理,为智能监测系统提供获取计算结果的接口。智能监测系统通过接口获取数据进行相应的可视化展示等,而没有将各模块数据进行深度融合和统一管理。所以,现有智能监测系统往往无法提供一个统一的查询入口,无法支持用户跨模块的对全量生产信息进行实时随机查询和历史数据下载。
技术实现思路
1、在下文中给出了关于本发明的简要概述,以便提供关于本发明的某些方面的基本理解。应当理解,这个概述并不是关于本发明的穷举性概述。它并不是意图确定本发明的关键或重要部分,也不是意图限定本发明的范围。其目的仅仅是以简化的形式给出某些概念,以此作为稍后论述的更详细描述的前序。
2、鉴于此,为解决现有技术无法实现的计算用时不同的流处理任务的实时数据集成,无法支持用户跨计算用时不同的功能模块的对全量生产信息进行实时随机查询和历史数据下载的技术问题,本发明提供一种基于计算用时不同的流处理任务的数据实时集成方法,包括以下步骤:
3、s1、预执行待集成的各流处理任务获得计算用时,将任务分为计算用时秒级和计算用时非秒级;
4、s2、获取不同来源的待集成数据,规范待集成数据格式;
5、ti:{k1:v1,k2:v2,…kn:vn}
6、式中,ti为数据通道中采集数据的时间戳,ki为键的标识,vi为相应的数值,ki:vvi为键值对;
7、s3、定义计算用时秒级的流处理任务集成后的数据大小,数据大小用键的数量进行表征;
8、s4、定义数据暂存区的存储结构,存储不同来源正在集成的计算用时秒级的流处理任务数据;
9、s5、通过数据传输接口将规范后的待集成数据输入数据暂存区进行数据集成;
10、s6、判断计算用时秒级的流处理任务数据集成是否完成,若集成完成,将数据暂存区中key下集成的数据以字典格式存入mongodb数据库,并从数据暂存区中删除数据;若集成未完成,不进行任何操作;
11、s7、非秒级流处理任务集成完成时,直接更新mongodb数据库中存储的同一时间戳下的数据条目,进行数据集成。
12、优选的,预执行待集成的各流处理任务获得计算用时,将任务分为计算用时秒级和计算用时非秒级的方法是:将所有待集成的流处理任务在实际生产环境中预先执行一遍,得到各流处理任务的计算时间;将计算用时小于10秒的流处理任务定义为计算用时秒级,将计算用时大于等于10秒的流处理任务定义为计算用时非秒级。
13、优选的,定义集成后的数据大小的方法是:对规范后的待集成数据的键提取并集,统计key-set中的键的数量|key-set|,用来表征集成后的数据大小。
14、优选的,数据暂存区通过redis内存数据库实现,存储结构包括key和value,key为数据通道中采集数据的时间戳,value为时间戳下的键值对。
15、优选的,数据传输接口采用基于http协议的数据传输接口,格式为:/api/v1/redis/hmset/{key}/{field1}/{value1}/{field2}/{value2}/...。
16、优选的,通过数据传输接口将规范后的待集成数据输入数据暂存区进行数据集成的方法是:将规范化之后的不同来源的待集成数据,根据数据暂存区的存储结构存入对应的key和对应的value下,进行数据集成;数据集成开始前,数据暂存区中只有空的数据结构,无数据。
17、优选的,字典格式为:{_id:“xxxxx”,field1:value1,field2:value2,field3:value3,field4:value4,field5:value5,field5:value5,field6:value6,field7:value7……},其中_id由数据库自动生成的唯一标识。
18、优选的,判断数据集成是否完成的方法是:当有新数据存入数据暂存区时,比较value中键的数量是否等于key-set中键的数量|key-set|;若数据大小相等,则计算用时秒级的流处理任务数据集成完成;若数据大小不相等,则计算用时秒级的流处理任务数据集成未完成。
19、优选的,非秒级流处理任务集成完成时,直接更新mongodb数据库中存储的同一时间戳下的数据条目,进行数据集成的方法是:当计算用时非秒级的流处理任务执行完成时,同一时间戳下的计算用时秒级的流处理任务已集成完成,并存入mongodb数据库,计算用时非秒级的流处理任务调用mongdb数据库提供的数据更新方法,直接将数据更新至数据库中同一时间戳下的数据条目。
20、本发明的有益效果如下:本发明充分考虑了电厂实际运行中多种常见的功能模块的数据集成,可在秒级实现来自多个计算用时不同的流处理功能模块的数据实时集成与存储。为秒级流处理任务和非秒级流处理任务提供不同的数据集成方法。秒级流处理无需等待非秒级流处理任务计算完成再进行集成,减少了等待的时间开销;非秒级流处理任务一旦完成计算,马上更新mongodb数据库进行数据集成。既保证了秒级流处理数据集成的实时性,又保证了非秒级流处理数据集成的实时性。打破了各计算用时不同的常见功能模块的数据实时存储壁垒。同时,提供统一的数据获取接口,实现跨计算用时不同的功能模块的实时数据查询和历史数据下载,解决了用户的实际需求,助力企业提高核心市场竞争力。