用于污水处理厂之间异构数据采集存储技术

发布时间:2018-5-19 14:02:42

  申请日2014.04.29

  公开(公告)日2014.08.06

  IPC分类号G06F17/40

  摘要

  本发明涉及一种用于污水处理厂之间异构数据的采集存储方法,与现有技术相比解决了异构数据无法存储、传输带宽无法满足需要的缺陷。本发明包括以下步骤:定义数据字典;调取数据;数据转化;数据文件存储。本发明减少污水处理厂上报数据带宽消耗,有效融合多家污水处理厂异构数据,并解决了海量数据的存储问题。

  权利要求书

  1.一种用于污水处理厂之间异构数据的采集存储方法,其特征在于,包括以下步骤:

  11)定义数据字典,各家污水处理厂定义自己的数据字典;

  12)调取数据,数据接入模块从多个污水处理厂获取污水处理厂现场数据,存入数据缓冲池中;

  13)数据转化,数据缓冲池定期把数据接入模块的数据写成包含数据字典的自解释数据文件;

  14)数据文件存储,存储模块定期解析自解释数据文件,将数据字典和采集数据存储到NoSQL数据库中。

  2.根据权利要求1所述的一种用于污水处理厂之间异构数据的采集存储方法,其特征在于所述的定义数据字典包括以下步骤:

  21)每个污水处理厂分别注册数据字典中处理厂字典信息,包括处理厂名称和位置信息,生成唯一的处理厂标识;

  22)采用CSV文件定义数据字典,包括工艺流程字典、设备字典、采集点字典,工艺流程字典、设备字典、采集点字典均由表头和实例组成;表头包括必要字段和扩展字段,必要字段为每个处理厂都必须提供的字典信息,扩展字段为根据实际情况增加的信息;其中:

  工艺流程字典为对处理厂污水处理工艺的定义,表头包含的必要字段包括标识ID和流程的名称,实例为组成该污水处理厂处理工艺的各个节点信息;

  设备字典为对处理厂中各种设备的定义,表头包含的必要字段包括标识ID、设备名字和设备所属的工艺节点,实例为处理厂中的各种设备;

  采集点字典为对数据采集点的定义,表头包含的必要字段包括标识ID、采集点描述、采集点在报表展示的字段、生成报表时的计算公式、采集数据的类型、数据的单位、数据正常范围的最大最小值、设备所属设备信息和虚拟点数据,虚拟点数据以virtual_前缀定义;

  23)将数据字典CSV文件与处理厂字典信息相关联,建立处理厂名称与相应处理厂数据字典的对应。

  3.根据权利要求1所述的一种用于污水处理厂之间异构数据的采集存储方法,其特征在于所述的调取数据包括以下步骤:

  31)数据接入模块以web server的方式将数据上报接口提供给各家污水处理厂;

  32)污水处理厂组建上报数据,上报数据包括处理厂的标识ID和采集数据,采集数据中包括采集时间、采集点标识ID、采集数值,处理厂标识ID和采集点标识ID,从处理厂的数据字典中调取对应的处理厂标识ID和采集点标识ID;

  33)上报数据使用Json格式进行编码并发送至数据缓冲池,其数据格式如下:

  factory_id:从数据字典模块注册得到的处理厂标识ID;data:数组集合;data包括以下数据格式:datatime:信号点采集的时间;signal_id:在数据字典模块定义的信号点标识ID;value:信号点值。

  4.根据权利要求1所述的一种用于污水处理厂之间异构数据的采集存储方法,其特征在于所述的数据转化包括以下步骤:

  41)数据缓冲池采用FIFO机制接收Json格式的上报数据,读取出的数据从缓冲池中删除并传给存储模块,被处理成自解释数据文件,自解释数据文件的文件名以读取时的时间戳命名;

  42)通过数据缓冲池定期生成自解释数据文件,自解释数据文件包括字典部分和数据部分,将处理厂字典信息添加至字典部分前面,在工艺流程ID、设备ID、采集点ID中将处理厂ID加在前面做为前缀;数据部分的表头为采集点ID、采集时间、采集数值,在采集点ID前面添加处理厂ID做为前缀,采集数值为缓冲池中处理周期内保存的所有采集数据。

  5.根据权利要求1所述的一种用于污水处理厂之间异构数据的采集存储方法,其特征在于所述的数据文件存储包括以下步骤:

  51)设置存储模块中的处理周期与数据缓冲池的处理周期一致;

  52)NoSQL数据库设计与自解释数据文件一致,在NoSQL数据库中定义数据字典表和数据表,将NoSQL数据库的存储结构定义为面向列的key-value对,每行数据组成结构为:rowkey、column_name、column_value,

  其中:

  数据字典表的存储结构中,rowkey为文件时间戳+字典中的标识ID、column_name为字典中的其他属性名、column_value是对应ID的属性的值;

  数据表的存储结构中,rowkey为信号点ID+采集时间戳、column_name为svalue或dictionary_version,当column_name为svalue时,column_value为对应信号点ID的采集数值,当column_name为dictionary_version时,column_value为数据字典表里rowkey所对应的时间戳;

  53)按照数据字典表和数据表的定义分别存储字典部分和数据部分,将存储模块中的数据存储到NoSQL数据库中。

  6.根据权利要求5所述的一种用于污水处理厂之间异构数据的采集存储方法,其特征在于还包括数据文件未被处理成自解释数据文件的判断,其包括以下步骤:

  61)在NoSQL数据库的数据字典表中,获取rowkey中最大的时间戳,遍历所有数据文件的文件名,若文件名中的时间戳大于数据库中最大的时间戳,则表示该文件未被处理过;

  62)逐个处理未被处理过的文件,解析数据文件,将字典部分和数据部分分别存储。

  说明书

  一种用于污水处理厂之间异构数据的采集存储方法

  技术领域

  本发明涉及数据采集存储技术领域,具体来说是一种用于污水处理厂之间异构数据的采集存储方法。

  背景技术

  污水处理行业由于初期“重建设、轻运营”导致污水处理运营负荷率普遍偏低,在十二五“节能减排”政策的指导下,污水处理行业由原先的批量建设污水处理厂,转向提升污水处理厂的处理效率和管理水平。于是污水处理厂开始建设中控系统,通过大量数据采集及自动化控制,执行精细化运营管理。但对污水处理厂的偷排漏排、水质处理不达标等违规行为仍不能有效监督,水务公司对旗下污水处理厂也不能高效管理,因此需要把多家污水处理厂的采集数据汇总在一起,可供查询与分析。

  通过污水处理厂的中控系统,可以定期采集到污水处理各个工艺节点上的运行和监测数据,再通过数据采集网关就可以把多个污水处理厂的采集数据汇总到一起。但是需要从多个污水处理厂采集数据进行汇总存储则遇到了以下问题:

  1、采集数据中一般包含采集点的信息,而各家处理厂的采集点信息不同,数据具有异构性,采集到后无法将数据存储汇总;

  2、采集数据的频率一般都为秒级,上报数据带有很大的冗余,传输带宽需求难以得到满足;

  3、污水处理厂需要保留多年的历史数据,汇总后的数据是海量的,汇总后的数据库想要查找数据则非常困难。

  如何开发出一种可以满足异构数据之间存储的数据处理方法已经成为急需解决的技术问题。

  发明内容

  本发明的目的是为了解决现有技术中异构数据无法存储、传输带宽无法满足需要的缺陷,提供一种用于污水处理厂之间异构数据的采集存储方法来解决上述问题。

  为了实现上述目的,本发明的技术方案如下:

  一种用于污水处理厂之间异构数据的采集存储方法,包括以下步骤:

  定义数据字典,各家污水处理厂定义自己的数据字典;

  调取数据,数据接入模块从多个污水处理厂获取污水处理厂现场数据,存入数据缓冲池中;

  数据转化,数据缓冲池定期把数据接入模块的数据写成包含数据字典的自解释数据文件;

  数据文件存储,数据缓冲池定期解析自解释数据文件,将数据字典和采集数据存储到NoSQL数据库中。

  所述的定义数据字典包括以下步骤:

  每个污水处理厂分别注册数据字典中处理厂字典信息,包括处理厂名称和位置信息,生成唯一的处理厂标识;

  采用CSV文件定义数据字典,包括工艺流程字典、设备字典、采集点字典,工艺流程字典、设备字典、采集点字典均由表头和实例组成;表头包括必要字段和扩展字段,必要字段为每个处理厂都必须提供的字典信息,扩展字段为根据实际情况增加的信息;其中:

  工艺流程字典为对处理厂污水处理工艺的定义,表头包含的必要字段包括标识ID和流程的名称,实例为组成该污水处理厂处理工艺的各个节点信息;

  设备字典为对处理厂中各种设备的定义,表头包含的必要字段包括标识ID、设备名字和设备所属的工艺节点,实例为处理厂中的各种设备;

  采集点字典为对数据采集点的定义,表头包含的必要字段包括标识ID、采集点描述、采集点在报表展示的字段、生成报表时的计算公式、采集数据的类型、数据的单位、数据正常范围的最大最小值、设备所属设备信息和虚拟点数据,虚拟点数据以virtual_前缀定义;

  将数据字典CSV文件与处理厂字典信息相关联,建立处理厂名称与相应处理厂数据字典的对应。

  所述的调取数据包括以下步骤:

  数据接入模块以web server的方式将数据上报接口提供给各家污水处理厂;

  污水处理厂组建上报数据,上报数据包括处理厂的标识ID和采集数据,采集数据中包括采集时间、采集点标识ID、采集数值,处理厂标识ID和采集点标识ID,从处理厂的数据字典中调取对应的处理厂标识ID和采集点标识ID;

  上报数据使用Json格式进行编码并发送至数据缓冲池,其数据格式如下:

  factory_id:从数据字典模块注册得到的处理厂标识ID;data:数组集合;data包括以下数据格式:datatime:信号点采集的时间;signal_id:在数据字典模块定义的信号点标识ID;value:信号点值。

  所述的数据转化包括以下步骤:

  数据缓冲池采用FIFO机制接收Json格式的上报数据,读取出的数据从缓冲池中删除并传给存储模块,被处理成自解释数据文件,自解释数据文件的文件名以读取时的时间戳命名;

  通过数据缓冲池定期生成自解释数据文件,自解释数据文件包括字典部分和数据部分,将处理厂字典信息添加至字典部分前面,在工艺流程ID、设备ID、采集点ID中将处理厂ID加在前面做为前缀;数据部分的表头为采集点ID、采集时间、采集数值,在采集点ID前面添加处理厂ID做为前缀,采集数值为缓冲池中处理周期内保存的所有采集数据。

  所述的数据文件存储包括以下步骤:

  设置存储模块的处理周期与数据缓冲池的处理周期一致;

  NoSQL数据库设计与自解释数据文件一致,在NoSQL数据库中定义数据字典表和数据表,将NoSQL数据库的存储结构定义为面向列的key-value对,每行数据组成结构为:rowkey、column_name、column_value,

  其中:

  数据字典表的存储结构中,rowkey为文件时间戳+字典中的标识ID、column_name为字典中的其他属性名、column_value是对应ID的属性的值;

  数据表的存储结构中,rowkey为信号点ID+采集时间戳、column_name为svalue或dictionary_version,当column_name为svalue时,column_value为对应信号点ID的采集数值,当column_name为dictionary_version时,column_value为数据字典表里rowkey所对应的时间戳;

  按照数据字典表和数据表的定义分别存储字典部分和数据部分,将存储模块中的数据存储到NoSQL数据库中。

  还包括数据文件未被处理成自解释数据文件的判断,其包括以下步骤:

  在NoSQL数据库的数据字典表中,获取rowkey中最大的时间戳,遍历所有数据文件的文件名,若文件名中的时间戳大于数据库中最大的时间戳,则表示该文件未被处理过;

  逐个处理未被处理过的文件,解析数据文件,将字典部分和数据部分分别存储。

  有益效果

  本发明的一种用于污水处理厂之间异构数据的采集存储方法,与现有技术相比减少污水处理厂上报数据带宽消耗,有效融合多家污水处理厂异构数据,并解决了海量数据的存储问题。通过数据字典的配置,规范定义了污水处理厂的采集点信息。通过把采集点属性信息和数据分离,减少了数据上报的复杂度。通过在数据文件中加入了数据字典,使文件具有自解释性,保证了数据在时间属性上的完备,让历史数据与对应历史属性保持关联,真实地还原数据现场,增加历史数据分析的可靠性。

相关推荐