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

xiaoxiao2020-7-22  16

一种用于污水处理厂之间异构数据的采集存储方法
【专利摘要】本发明涉及一种用于污水处理厂之间异构数据的采集存储方法,与现有技术相比解决了异构数据无法存储、传输带宽无法满足需要的缺陷。本发明包括以下步骤:定义数据字典;调取数据;数据转化;数据文件存储。本发明减少污水处理厂上报数据带宽消耗,有效融合多家污水处理厂异构数据,并解决了海量数据的存储问题。
【专利说明】一种用于污水处理厂之间异构数据的采集存储方法
[0001]
【技术领域】
[0002]本发明涉及数据采集存储【技术领域】,具体来说是一种用于污水处理厂之间异构数据的采集存储方法。
[0003]
【背景技术】
[0004]污水处理行业由于初期“重建设、轻运营”导致污水处理运营负荷率普遍偏低,在十二五“节能减排”政策的指导下,污水处理行业由原先的批量建设污水处理厂,转向提升污水处理厂的处理效率和管理水平。于是污水处理厂开始建设中控系统,通过大量数据采集及自动化控制,执行精细化运营管理。但对污水处理厂的偷排漏排、水质处理不达标等违规行为仍不能有效监督,水务公司对旗下污水处理厂也不能高效管理,因此需要把多家污水处理厂的采集数据汇总在一起,可供查询与分析。
[0005]通过污水处理厂的中控系统,可以定期采集到污水处理各个工艺节点上的运行和监测数据,再通过数据采集网关就可以把多个污水处理厂的采集数据汇总到一起。但是需要从多个污水处理厂采集数据进行汇总存储则遇到了以下问题:
1、采集数据中一般包含采集点的信息,而各家处理厂的采集点信息不同,数据具有异构性,采集到后无法将数据存储汇总;
2、采集数据的频率一般都为秒级,上报数据带有很大的冗余,传输带宽需求难以得到满足;
3、污水处理厂需要保留多年的历史数据,汇总后的数据是海量的,汇总后的数据库想要查找数据则非常困难。
[0006]如何开发出一种可以满足异构数据之间存储的数据处理方法已经成为急需解决的技术问题。

【发明内容】

[0007]本发明的目的是为了解决现有技术中异构数据无法存储、传输带宽无法满足需要的缺陷,提供一种用于污水处理厂之间异构数据的采集存储方法来解决上述问题。
[0008]为了实现上述目的,本发明的技术方案如下:
一种用于污水处理厂之间异构数据的采集存储方法,包括以下步骤:
定义数据字典,各家污水处理厂定义自己的数据字典;
调取数据,数据接入模块从多个污水处理厂获取污水处理厂现场数据,存入数据缓冲池中; 数据转化,数据缓冲池定期把数据接入模块的数据写成包含数据字典的自解释数据文
件; 数据文件存储,数据缓冲池定期解析自解释数据文件,将数据字典和采集数据存储到NoSQL数据库中。
[0009]所述的定义数据字典包括以下步骤:
每个污水处理厂分别注册数据字典中处理厂字典信息,包括处理厂名称和位置信息,生成唯一的处理厂标识;
采用CSV文件定义数据字典,包括工艺流程字典、设备字典、采集点字典,工艺流程字典、设备字典、采集点字典均由表头和实例组成;表头包括必要字段和扩展字段,必要字段为每个处理厂都必须提供的字典信息,扩展字段为根据实际情况增加的信息;其中:
工艺流程字典为对处理厂污水处理工艺的定义,表头包含的必要字段包括标识ID和流程的名称,实例为组成该污水处理厂处理工艺的各个节点信息;
设备字典为对处理厂中各种设备的定义,表头包含的必要字段包括标识ID、设备名字和设备所属的工艺节点,实例为处理厂中的各种设备;
采集点字典为对数据采集点的定义,表头包含的必要字段包括标识ID、采集点描述、采集点在报表展示的字段、生成报表时的计算公式、采集数据的类型、数据的单位、数据正常范围的最大最小值、设备所属设备信息和虚拟点数据,虚拟点数据以virtual前缀定义;将数据字典CSV文件与处理厂字典信息相关联,建立处理厂名称与相应处理厂数据字典的对应。
[0010]所述的调取数据包括以下步骤:
数据接入模块以web server的方式将数据上报接口提供给各家污水处理厂;
污水处理厂组建上报数据,上报数据包括处理厂的标识ID和采集数据,采集数据中包括采集时间、采集点标识ID、采集数值,处理厂标识ID和采集点标识ID,从处理厂的数据字典中调取对应的处理厂标识ID和采集点标识ID ;
上报数据使用Json格式进行编码并发送至数据缓冲池,其数据格式如下:factory_id:从数据字典模块注册得到的处理厂标识ID ;data:数组集合;data包括以下数据格式:datatime:信号点采集的时间;signal_id:在数据字典模块定义的信号点标识ID ;value:信号点值。
[0011]所述的数据转化包括以下步骤:
数据缓冲池采用FIFO机制接收Json格式的上报数据,读取出的数据从缓冲池中删除并传给存储模块,被处理成自解释数据文件,自解释数据文件的文件名以读取时的时间戳命名;
通过数据缓冲池定期生成自解释数据文件,自解释数据文件包括字典部分和数据部分,将处理厂字典信息添加至字典部分前面,在工艺流程ID、设备ID、采集点ID中将处理厂ID加在前面做为前缀;数据部分的表头为采集点ID、采集时间、采集数值,在采集点ID前面添加处理厂ID做为前缀,采集数值为缓冲池中处理周期内保存的所有采集数据。
[0012]所述的数据文件存储包括以下步骤:
设置存储模块的处理周期与数据缓冲池的处理周期一致;
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数据库中。
[0013]还包括数据文件未被处理成自解释数据文件的判断,其包括以下步骤:
在NoSQL数据库的数据字典表中,获取rowkey中最大的时间戳,遍历所有数据文件的文件名,若文件名中的时间戳大于数据库中最大的时间戳,则表示该文件未被处理过;逐个处理未被处理过的文件,解析数据文件,将字典部分和数据部分分别存储。
[0014]有益效果
本发明的一种用于污水处理厂之间异构数据的采集存储方法,与现有技术相比减少污水处理厂上报数据带宽消耗,有效融合多家污水处理厂异构数据,并解决了海量数据的存储问题。通过数据字典的配置,规范定义了污水处理厂的采集点信息。通过把采集点属性信息和数据分离,减少了数据上报的复杂度。通过在数据文件中加入了数据字典,使文件具有自解释性,保证了数据在时间属性上的完备,让历史数据与对应历史属性保持关联,真实地还原数据现场,增加历史数据分析的可靠性。
[0015]
【专利附图】

【附图说明】
图1为本发明的方法流程图
【具体实施方式】
[0016]为使对本发明的结构特征及所达成的功效有更进一步的了解与认识,用以较佳的实施例及附图配合详细的说明,说明如下:
如图1所示,本发明所述的一种用于污水处理厂之间异构数据的采集存储方法,包括以下步骤:
第一步,定义数据字典,各家污水处理厂定义自己的数据字典。每个污水处理厂注册成功自己的信息后,生成唯一的处理厂标识ID,之后配置的数据字典与本厂ID相关联。数据字典是对采集数据的解释和说明,定义了每个采集点数据的属性,包括其所属设备信息、工艺流程信息及污水处理厂信息。其具体步骤如下:
(I)每个污水处理厂分别注册数据字典中处理厂字典信息,包括处理厂名称(name)和位置信息(location),生成唯一的处理厂标识(factory_id)。处理厂字典信息为相应的各个污水处理厂信息,通过唯一的处理厂标识进行唯一的处理厂确定。
[0017](2)采用CSV文件定义数据字典,根据数据字典,上报数据中只需携带采集点ID信息,就能查询到一次上报数据是属于哪个处理厂哪个工艺流程中的哪台设备上的、该采集点代表什么意义、数据格式和单位是什么、数据正常范围是多少、如何计算在报表中显示的值等一系列信息,这样每个上报数据都默认带上了很多解释性的信息,方便在生成报表和数据分析时解读数据。数据字典还包括工艺流程字典、设备字典、采集点字典。工艺流程字典、设备字典和采集点字典均由表头和实例组成;表头包括必要字段和扩展字段,分别用英文字段表示,第一个字段固定为标识ID。必要字段为每个处理厂都必须提供的字典信息,扩展字段为根据实际情况增加的信息;当污水处理厂需要对某些采集数据进行归类以进行数据分析或者工艺升级时,可以定义自己的扩展字段。实例为处理厂中组成该字典的具体的一个点,通过标识ID区分。各部分字典通过行分隔符进行分隔。
[0018]其中:
工艺流程字典为对处理厂污水处理工艺的定义,表头包含的必要字段包括标识IDprocess_id (在每个处理厂内标识唯一)和流程的名称process_name (工艺流程节点名称),实例为组成该污水处理厂处理工艺的各个节点信息,比如粗格栅、细格栅、曝气池等。
[0019]设备字典为对处理厂中各种设备的定义,表头包含的必要字段包括标识IDdevice_id (在每个处理厂内标识唯一)、设备名字device_name和设备所属的工艺节点process_id (可以为空,即不属于任何工艺流程节点),实例为处理厂中的各种设备,比如鼓风机、提升泵等。
[0020]采集点字典为对数据采集点的定义,表头包含的必要字段包括标识ID、采集点描述、采集点在报表展示的字段、生成报表时的计算公式、采集数据的类型、数据的单位、数据正常范围的最大最小值、设备所属设备信息和虚拟点数据,虚拟点数据以virtual前缀定义。采集点字典必要字段 较多,如下:
signal_id:标识ID,在每个处理厂内标识唯一。对于虚拟信号标识采用“virtual_”字段加数值标识,如:“virtual_001”。手工信号采用“manual_”标识,如:“manual_001 ”。
[0021]signal_desc:采集点描述。
[0022]signal_mark:采集点在报表展示的字段。
[0023]datatype:采集数据的类型,可以是整型、浮点型、0/1信号量等。
[0024]unit:数据的单位。
[0025]calc_expr:生成报表时的计算公式。
[0026]min:采集点预警值的最小临界点,即数据正常范围的最小值。
[0027]max:采集点预警值的最大临界点,即数据正常范围的最大值。
[0028]device_id:设备所属设备信息,可以为空。
[0029]采集点字典除了实际存在的以自动化方式上报的点,还包含虚拟的由人工上报的一些化验、用药数据点,定义时可以在标识ID中进行区分,比如虚拟点使用virtual前缀定义。
[0030]以下为一个数据字典CSV文件的示例:
##工艺流程字典部分
process_id, process—name
proc_001,粗格栅
------------(字典分隔符)##设备字典部分
device_id, device_name, process_id
dev_001,左粗格栅,proc_001
------------(字典分隔符)
##采集点字典部分
signal_id, signal_desc, signal_mark, data_type, unit, c a Ic _expr, min, max, device_id
virtual_001,进水 PH, PH_IN, float,无,avg, 5.0, 11.0, proc_001, dev_001 其中字典分隔符的样式只作为示例,可任意定义。
[0031](3)将数据字典CSV文件与处理厂字典信息相关联,建立处理厂名称与相应处理厂数据字典的对应。CSV文件与处理厂ID相关联,使得根据factory_id可以查询到对应处理厂的数据字典。
[0032]第二步,调取数据,数据接入模块从多个污水处理厂获取污水处理厂现场数据,存入数据缓冲池中。其具体步骤如下:
(I)数据接入模块以web server的方式将数据上报接口提供给各家污水处理厂。由于存在多个污水处理厂,则存在接口的选择问题,采用现有技术中的web server方式进行。当需要选择A厂时,数据接入模块则将数据上报接口提供给A厂,此时建立A厂与数据接入模块之间的数据通讯;若需要选择B厂时,数据接入模块则将数据上报接口提供给B厂,此时建立B厂与数据接入模块之间的数据通讯。
[0033](2)污水处理厂组建上报数据,上报数据包括处理厂的标识ID和采集数据,采集数据中包括采集时间、采集点标识ID、采集数值,处理厂标识ID和采集点标识ID,从处理厂的数据字典中调取对应的处理厂标识ID和采集点标识ID。
[0034](3)上报数据使用Json格式进行编码并发送至数据缓冲池,其数据格式如下: factory_id:从数据字典模块注册得到的处理厂标识ID ;data:数组集合;
现场采集数值为字典集合,格式为{“datetime”: “yyyy-mm-dd hh:mm:ss”,“signal_id”: “001”,“value”: “123.3,,},其中
datatime:信号点采集的时间;signal_id:在数据字典模块定义的信号点标识ID ;value:信号点值。
[0035]示例如下:
[{//factory_id//: ^ j n s h w _ O I ^, "data": [「datetime": "yyyy-mm-ddhh:mm:ss〃,〃signal_id〃:〃auto_001〃,〃value〃:〃123.3〃}, {〃datetime〃:〃yyyy-mm_ddhh:mm:ss.zzz〃,〃signal_id〃:〃auto_002〃,〃value〃:〃123.3〃},{〃datetime〃:〃yyyy-mm_ddhh:mm:ss.zzz〃,〃signal_id〃:〃manual_001〃,〃value〃:〃123.3〃}]}]。
[0036]第三步,数据转化,数据缓冲池定期把数据接入模块的数据写成包含数据字典的自解释数据文件。其具体步骤如下:
(I)数据缓冲池采用FIFO (先入先出)机制接收Json格式的上报数据,读取出的数据从缓冲池中删除并传给存储模块,被处理成自解释数据文件,自解释数据文件的文件名以读取时的时间戳命名。解释数据文件作用是将字典部分和数据部分进行配对,数据部分与其所对应的字典部分进行一一配对。因为各个处理厂自行定义数据字典,若数据字典的定义与数据部分不配比,则无法正确解释数据部分的内容。自解释数据文件的文件名以读取时的时间戳命名的作用是为了下一步中判断数据文件是否未被处理成自解释数据文件,生成的自解释数据文件以开始处理的时间戳命名,格式类似20140401102000.csv,以下为示例:
【权利要求】
1.一种用于污水处理厂之间异构数据的采集存储方法,其特征在于,包括以下步骤: 11)定义数据字典,各家污水处理厂定义自己的数据字典; 12)调取数据,数据接入模块从多个污水处理厂获取污水处理厂现场数据,存入数据缓冲池中; 13)数据转化,数据缓冲池定期把数据接入模块的数据写成包含数据字典的自解释数据文件; 14)数据文件存储,存储模块定期解析自解释数据文件,将数据字典和采集数据存储到NoSQL数据库中。
2.根据权利要求1所述的一种用于污水处理厂之间异构数据的采集存储方法,其特征在于所述的定义数据字典包括以下步骤: 21)每个污水处理厂分别注册数据字典中处理厂字典信息,包括处理厂名称和位置信息,生成唯一的处理厂标识; 22)采用CSV文件定义数据字典,包括工艺流程字典、设备字典、采集点字典,工艺流程字典、设备字典、采集点字典均由表头和实例组成;表头包括必要字段和扩展字段,必要字段为每个处理厂都必须提供的字典信息,扩展字段为根据实际情况增加的信息;其中: 工艺流程字典为对处理厂污水处理工艺的定义,表头包含的必要字段包括标识ID和流程的名称,实例为组成该污水处理厂处理工艺的各个节点信息; 设备字典为对处理厂中各种设备的定义,表头包含的必要字段包括标识ID、设备名字和设备所属的工艺节点,实例为处理厂中的各种设备; 采集点字典为对数据采集点的定义,表头包含的必要字段包括标识ID、采集点描述、采集点在报表展示的字段、生成报表时的计算公式、采集数据的类型、数据的单位、数据正常范围的最大最小值、设备所属设备信息和虚拟点数据,虚拟点数据以virtual前缀定义; 23)将数据字典CSV文件与处理厂字典信息相关联,建立处理厂名称与相应处理厂数据字典的对应。
3.根据权利要求1所述的一种用于污水处理厂之间异构数据的采集存储方法,其特征在于所述的调取数据包括以下步骤: 31)数据接入模块以webserver的方式将数据上报接口提供给各家污水处理厂; 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)逐个处理未被处理过的文件,解析数据文件,将字典部分和数据部分分别存储。
【文档编号】G06F17/40GK103970914SQ201410175754
【公开日】2014年8月6日 申请日期:2014年4月29日 优先权日:2014年4月29日
【发明者】孟虎, 李晓洁, 陈志华, 夏效胜, 刘胜军 申请人:合肥城市云数据中心有限公司

最新回复(0)