环境数据监测处理方法与流程

文档序号:29697474发布日期:2022-04-16 13:27阅读:406来源:国知局

1.本发明涉及环境数据处理技术领域,具体涉及一种环境数据监测处理方法。


背景技术:

2.污染源的上传监测数据报文具有频次高、密度大,因子多的特点,需要结合国家环保规范对监测设备的上传监测数据报文按照国标hj212等一系列协议进行高效的接收,实时的解析、灵活的序列化和及时的告警等处理,而且,由于单个污染源监测数据具有相关依赖性(聚合产污、治污、排污),需要对上传监测数据报文进行严格有效的时序化处理。面对上传频次高,数据量大的污染源数据,如何能更高效的进行处理和利用,成为环保监测领域的一大问题。


技术实现要素:

3.本发明的目的在于为克服现有技术的不足而提供一种环境数据监测处理方法。
4.环境数据监测处理方法,基于分布式流处理的数据处理方式进行设置,其包括以下步骤:
5.s1、对接收的数据进行划分处理;s2、对划分后的数据进行清洗处理;s3、对清洗处理后的数据进行合并;s4、对数据进行分流处理,分流处理所得的数据包括:按时间划分标准而划分的实时数据报文及阶段数据报文,该实时数据报文的数据量大于该阶段数据报文的数据量;所得实时数据报文直接输出处理,所得阶段数据报文进行归纳计算处理。
6.进一步地,于步骤s1中,包括以下步骤:使数据发生设备设置有唯一编号,并令用于数据接收的网关接收端打上有tcp连接唯一标识;对接收的数据流进行keyby算子操作,使数据流中的数据能根据该唯一编号或唯一标识进行数据划分。
7.进一步地,于步骤s2中,对keyby后的数据流进行清洗处理,该清洗处理包括确认相应数据中是否包含有上述的设备唯一编号;当数据不通过校验时,相应的数据报文被标记为脏数据,并发送至脏报文消息队列。
8.进一步地,于步骤s3中,其合并方式包括对清洗处理后进行window算子操作,其算子操作时间为30秒。
9.进一步地,于步骤s4中,分流处理所得的数据包括设备状态数据报文,所得设备状态数据报文与所述阶段数据报文协同进行归纳计算处理;且还包括以下步骤:s4-1、对设备状态数据报文进行window算子操作和reduce操作,以作设备状态情况的统计,并将统计所得结果发送至设备状态消息队列;上述window算子操作和reduce操作的执行时间为5min。
10.进一步地,还包括以下步骤:s4-2、对所得实时数据报文及阶段数据报文进行window算子操作和reduce操作,以作干净报文数量的统计,并将统计所得结果发送至报文数量统计消息队列;上述window算子操作和reduce操作的执行时间为1小时。
11.进一步地,还包括以下步骤:s4-3、对所得实时数据报文及阶段数据报文进行keyby和merge算子操作,并将聚合后的数据流发送至组数据消息队列。
12.进一步地,于步骤s4中,对直接输出处理的所述实时数据报文进行直接展示,对归纳统计处理的所得阶段数据报文通过归纳计算处理后以数据图表的形式进行展示。
13.本发明的有益效果在于:
14.1、通过对基础数据量较大的实时数据报文及基础数据量较小进行明确的划分应用,能确保有效的数据展示效果同时,避免数据库的报表计算过程的运算量过大,能减少数据库负担并能有效减少硬件的设置成本。
15.2、通过对接收的数据先进行划分拆包,并以此进行清洗,可令该环境数据监测处理方法的清洗过程具有针对性,从而提高清洗处理速度,减少后续etl的压力,同时简化其他应用的开发难度。
16.3、通过数据发生设备具有唯一编号及网关接收端上具有唯一标识的设置,相应的数据划分处理程序可凭设备的唯一编号或网关接收端上的唯一标识,对上报的监测数据进行的解耦,提高了数据处理的吞吐量和程序架构的内聚性,有效降低了数据划分处理过程中的复杂度和硬件成本。
具体实施方式
17.为了使本发明的技术方案、目的及其优点更清楚明白,以下实施例,对本发明进行进一步的解释说明。
18.本发明中的环境数据监测处理方法,其应用设置有网关接收端及数据处理端;基于该网关接收端的设置,基于现有技术的通信传输方式,能有效地对污染源发生设备或污染源处理设备的相关污染源数据进行数据收集。再以该数据处理端对由网关接收端接收的数据进行清洗、过滤、校正后,将处理所得干净数据作进一步的展示或分析统计,满足用户对污染源数据的综合分析应用需求。
19.该污染源数据网关接收端中:
20.采用基于nio的非阻塞读写技术,能高效处理和接收高并发的连接请求和污染源上报监测数据,整合报文包头校验,报文长度校验,数据区格式校验,报文包尾校验和报文crc码校验等一系列校验流程,精确过滤不符合国标hj212协议的错误报文。
21.其过滤步骤和逻辑为:
22.1、按照国标协议截取报文前六位,校验包头并获取包长,如此步骤尝试失败,则判定上传数据为错误报文。
23.2、根据获取的包长和数据的长度,尝试校验数据长度是否等于包长,包头和包尾之和,并截取包尾4位crc码,如此步骤尝试失败,则判定上传数据为错误报文。
24.3、根据包尾的crc码,对报文内容进行循环冗余校验,若校验得出的crc码与包尾截取的crc码不符,则判定上传数据为错误报文。
25.4、按照国标协议规定的分隔标识,将报文分离为数据段和数据区,如此步骤尝试失败,则判定上传数据为错误报文。
26.5、分别校验数据段和数据区的不同因子是否正确分隔,如此步骤尝试失败,则判定上传数据为错误报文。
27.6、最后,基于预定义的业务流程,可将初步处理完成的合格报文异步发送到多个数据处理端(包括消息队列)。与此同时,网关会实时统计多种参数,包括单位时间内成功请
求数,失败请求数,应答报文数,设备连接时长等,并定时将统计信息发送至多个下游应用端进行数据展示,进一步的数据分析和报表生成,以便数据保障部门对设备进行运维。
28.该数据处理端中:
29.分布式流处理应用会将消息队列作为数据源,实时拉取经由网关接收端简单处理过的合格报文,按照预定义的数据质量和权限检查规则(例如报文的时间标识、多因子的量程范围,传感器的接入项目信息,归属企业信息和地理位置信息等),实时过滤和处理污染源上传监测数据原始报文,对问题数据进行多维度,多因子,多层次的清洗,过滤及校正,将原始问题数据分别打上标签并送入异常数据队列(自动剔除无效数据),将清洗后的数据送入干净数据队列。
30.其具体的处理步骤分为:
31.1、使数据发生设备设置有唯一编号,并令用于数据接收的网关接收端打上有tcp连接唯一标识,对接受的数据流进行keyby算子操作,使数据流中的数据能根据该唯一编号或唯一标识进行数据的拆包划分。
32.上述唯一编号的设置,包括根据将设备所属排污企业厂商的识别代码进行设置,或基于所属业务(大气、地表水、污水等)的识别代码进行设置,或对应产线(生产设施、收集设施、治理设施、回用设施等)的识别代码进行设置,并以此整合作为该设备的唯一编号。
33.2、对keyby后的数据流进行清洗处理。例如:确认接收的数据段是否包含该唯一编号或唯一标识,拆分包及应答标记,总包数,包号,请求编码(报文发送时间),系统编码,访问密码和命令编码(该命令编码可用于进行后续的实时数据、分钟数据或小时数据等区分);数据的发送时间不能超出设定的范围;数据区的因子是否包含在设定的配置字典中。如数据不通过校验,则将相应的数据报文标记为脏数据,并发送至脏报文消息队列进行统计,该脏报文消息队列中数据用于展示在运维平台上,给开发人员和数据保障人员快速定位设备故障和日常运维提供的信息。
34.3、对清洗处理后的数据进行合并。例如对清洗后的数据流进行30秒window算子操作,目标是校验窗口触发后30秒内接收到的所有报文情况,并对符合国标协议中合包规则的报文基于用tcp连接上述所述唯一编码或唯一标识,来定位数据是否来自同一台设备,用窗口操作收集同一台设备一小段时间内(如果窗口时间太大,比如3分钟,在大量设备接入的情况下会消耗大量内存,所以出于成本考虑,窗口时间设置为30秒)的数据,并根据收集到的报文中是否带有上述所述唯一编码或唯一标识来进行合并处理。
35.4、对清洗处理后的数据报文进行分流处理。根据报文命令编码,所得数据报文包括有以1至30秒为周期进行收集所得的实时数据报文、以1至30分钟为周期进行收集所得的分钟数据报文、以1至24小时为周期进行收集所得的小时数据报文数量(常规选择而言,实时数据报文选择以30秒为周期所得的数据,分钟数据报文选择以30分钟为周期所得的收集数据,小时数据报文选择以24小时为周期所得的收集数据)和设备状态数据报文(包括确认设备是否在线的设备在线状态数据)。
36.此步骤的目的是对后续业务进行程序架构上的解耦。例如,从数据量而言,实时数据报文的数量远大于分钟数据报文数量、小时数据报文数量及设备状态数据报文数量,如果将实时数据报文直接加入数据库的报表中进行统计计算,对数据库而言是一个巨大的负担,同时也将承担高昂的硬件成本。所以对于后续业务来说,本处理过程会将实时数据报文
进行划分设置,直接计算出实时数据报文中每一条实时数据的信息摘要,并以哈希表缓存的方式提供给前端作直接的展示使用。而分钟、小时乃至以日为收集周期所得的日数据报文,则会参与具体不同业务的报表进行归纳计算处理,待生成有进一步的数据图表后再用于展示。
37.同时,将上述实时数据报文、分钟数据报文及设备状态数据报文划分为参数数据,而其他的报文划分为其他数据,分别发送至参数数据消息队列和其他数据消息队列。
38.5、于上述步骤4中,同时对设备状态数据报文进行5分钟window算子操作和reduce操作,统计出包括五分钟内的设备在线状态,将该设备在线状态发送至设备在线状态消息队列;该参数数据消息队列用于运维平台中进行图表的展示,用于用户对某条报文内的参数是否完整进行快速检查。
39.6、于上述步骤4中,同时对干净数据流进行1小时window算子操作和reduce操作,统计出一小时内干净报文数量,并将该干净报文数量发送至报文数量统计消息队列。此步骤的意义在于基于通过干净报文数量的统计,以可因应其干净报文数量情况统计出不同地区、乃至不同项目的报文接收网关的报文接受率和在线率。从而用于确认相应地区或项目中的不同设备、不同数据接收网关运作应用情况。
40.7、于上述步骤4中,同时对以上述实时数据报文、分钟数据报文及设备状态数据报文组成的参数数据流进行keyby和merge算子操作,并将聚合后的数据流发送至组数据消息队列。组数据的作用在于方便后续业务快速判断同一时间上传的相应监测数据是否存在因子缺失和数据异常;例如上报的报文里面有一个因子叫做总氮,那么理论上来说,这个因子应该有一组数据,包括平均值,最大值,最小值,实时值,折算值,传感器状态值,等等。对于分钟数据来说,在一条报文内,每个因子的上述所有值都需要完整上报。
41.对于某些的流处理任务,比如河涌污染源告警,可通过配置超标参数的上下限,以广播流的方式和干净报文数据流进行连接,并以map的形式将告警配置信息储存在流处理程序内部,实现了告警配置信息的持久化和动态更新。之后,通过对干净报文数据流按照设备号keyby的方式,可以实时更新每台设备的不同污染因子的状态,并根据广播流的告警配置信息进行一系列计算(例如,溶解氧低于某个阈值且氨氮高于某个阈值则触发黑臭水体告警,污染因子超过设定阈值的三倍则触发严重污染告警),实现告警消息发布和告警持续时间统计。
42.以上所述仅为本发明的优选实施方式,对于本技术领域的技术人员,在不脱离本发明的实施原理前提下,依然可以对所述实施例进行修改,而相应修改方案也应视为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1