一种工控系统曲线图的数据分层存储查询方法

xiaoxiao2020-7-22  5

一种工控系统曲线图的数据分层存储查询方法
【专利摘要】本发明涉及一种工控系统曲线图的数据分层存储查询方法,包括存储步骤:为待查询的工控系统创建分层快表,对工控系统的源数据进行处理,将处理结果存入分层快表;查询步骤:根据用户输入的查询内容,选择对应的分层快表作为数据源并从中查询,对查询出的结果集进行抽样并根据抽样结果绘制曲线图。本发明可以从海量的工控系统数据中快速获取所需的查询数据,保证曲线图在缩放中数据一致,同时获取的数据量保持在一个较低水平上;可以快速、准确的绘制反应事实情况的图表,同时将系统压力降到最低水平;实现了在最快的时间内绘制反应真实运营情况的曲线图,直观准确的了解生产系统的瓶颈与技术问题,提高了服务质量,降低了生产成本。
【专利说明】一种工控系统曲线图的数据分层存储查询方法
[0001]
【技术领域】
[0002]本发明涉及数据处理【技术领域】,尤其是一种工控系统曲线图的数据分层存储查询方法。
[0003]【背景技术】
[0004]随着企业的信息化建设,生产企业产生大量的实时监控数据,需要工控系统通过界面将实时数据绘制为曲线图呈现给用户使用。目前,工控系统通过网络采集各个设备、监测仪器的实时数据并存储,大多数的工控系统在绘制实时数据曲线时,通过全量取数绘制的方法,即对于每次查询操作,工控系统需要向后台数据库的实时数据表中请求满足用户要求的所有监控明细数据,再绘制曲线图。在现实环境中,如果工控系统运行时间较长,系统中的监控数据量会非常大,按照每秒采集一次计算,系统运行一年产生的数据记录数在3千多万,从海量数据中获取满足要求的数据,数据库检索时系统压力较大;同时绘制I年数据的曲线图,工控系统需要对3千万个记录点进行绘制,工控系统的计算压力也很大。 [0005]可见,目前的数据存储查询方法涉及大量的数据统计运算,消耗系统的内存与时间,如果同时查询多个曲线图,对网络的传输压力很大。基于目前绘制的曲线图虽然真实反映了系统的运行情况,但是由于大量数据在有限的显示设备上展现,许多关注点无法方便的观察到。通常的解决方法是使用高配置的服务器端与客户端、加大网络带宽、使用负载均衡等,这既增加了企业的运营成本,也增加了系统的复杂性。
[0006]
【发明内容】

[0007]本发明的目的在于提供一种减轻网络传输负担、便于客户端绘图、提高服务质量、降低生产成本的工控系统曲线图的数据分层存储查询方法。
[0008]为实现上述目的,本发明采用了以下技术方案:一种工控系统曲线图的数据分层存储查询方法,该方法包括下列顺序的步骤:
(1)存储步骤:为待查询的工控系统创建分层快表,对工控系统的源数据进行处理,将处理结果存入分层快表;
(2)查询步骤:根据用户输入的查询内容,选择对应的分层快表作为数据源并从中查询,对查询出的结果集进行抽样并根据抽样结果绘制曲线图。
[0009]所述存储步骤包括如下步骤:
Al.分析工控系统的查询条件,确定其常用查询条件以及常用查询条件的单位范围; A2.根据常用查询条件的单位范围创建对应的分层快表;
A3.根据工控系统的显示设备参数,确定常用查询条件的单位范围以内的数据量即单位数据量;
A4.依据单位范围和单位数据量来处理工控系统的源数据;
A5.将处理源数据得到的处理结果存入分层快表。
[0010]所述查询步骤包括如下步骤:
B1.根据用户输入的查询内容,分析出用户所要查询内容的查询条件及其查询范围; B2.依据用户所要查询内容的查询范围确定对应的分层快表作为数据源;
B3.计算用户所要查询内容的查询范围中所包含的单位范围个数;
B4.根据用户所要查询内容的查询范围从数据源中查询出结果集;
B5.根据单位范围个数对查询出的结果集进行抽样,依据抽样结果绘制曲线图。
[0011]所述工控系统的显示设备参数是指工控系统显示设备的水平分辨率值,所述单位数据量大于等于显示设备的水平分辨率值。
[0012]依据单位范围和单位数据量来处理工控系统的源数据的处理方法包括如下步骤:
Cl.使用K-Means算法分析单位范围内的异常数据;
C2.将单位范围进行平均划分,统计异常数据的分布情况;
将单位范围平均划分为η段,每段的范围为Μ,单位数据量为F,统计落在各段(m1、m2、
m3、......mn)中异常数据的个数分别为(Χρ x2、x3、......xn);
C3.计算各段中异常数据的权重;
对于叫段中的异常数据权重为qi=Xi/E χη,该权重反映了当前段中异常数据的密度; C4.按权重计算各段中的范围间隔,进行采样;
根据得到的权重,计算各段中的采样间隔,Hii段的采样间隔为M/(F*qi),根据各段的采样间隔,从各段中分别使用间隔采样方法抽取数据。
[0013]在依据查询范围确定对应的分层快表作为数据源时,当查询范围小于当前单位范围的80%时,使用比当前单位范围小一级的单位范围所对应的分层快表作为数据源;反之,当查询范围大于等于当前单位范围的80%时,使用当前单位范围所对应的分层快表作为数据源。
[0014]所述单位范围个数=查询范围/单位范围。
[0015]由上述技术方案可知,本发明将待查询的工控系统中的海量数据先以间隔抽样的方式存储在分层快表内,在用户进行查询时,只要调用已经创建好的分层快表,并将分层快表作为数据源进行查询,极大程度地减轻网络传输负担,同时,对查询到的结果集进行抽样来绘制曲线图,方便了客户端绘图。可见,本发明可以从海量的工控系统数据中快速获取所需的查询数据,保证曲线图在缩放中数据一致,同时获取的数据量保持在一个较低水平上;可以快速、准确的绘制反应事实情况的图表,同时将系统压力降到最低水平;实现了在最快的时间内绘制反应真实运营情况的曲线图,直观准确的了解生产系统的瓶颈与技术问题,提高了服务质量,降低了生产成本。
[0016]
【专利附图】

【附图说明】
[0017]图1为本发明中对海量数据进行分层统计存储的方法流程图; 图2为本发明中对用户输入内容进行查询的方法流程图;
图3是图1中对源数据进行处理的方法流程图。
【具体实施方式】
[0018]一种工控系统曲线图的数据分层存储查询方法,该方法包括下列顺序的步骤:存储步骤:为待查询的工控系统创建分层快表,对工控系统的源数据进行处理,将处理结果存入分层快表;查询步骤:根据用户输入的查询内容,选择对应的分层快表作为数据源并从中查询,对查询出的结果集进行抽样并根据抽样结果绘制曲线图。如图1、2所示。
[0019]如图1所示,所述存储步骤包括如下步骤:
Al.分析工控系统的查询条件,确定其常用查询条件以及常用查询条件的单位范围;
对于已有曲线图的工控系统,分析工控系统中曲线图的查询日志,获取使用频率最高的一个查询条件作为常用查询条件;对于没有曲线图的工控系统,分析其业务需求以及其实施案例,确定一个常用查询条件;
分析已经确定的常用查询条件,统计常用查询条件的常用查询范围,依照使用频度,选择至少一个常用查询范围作为单位范围;举例,业务系统中时间常作为查询条件出现,当时间条件作为常用查询条件时,分析其常用的查询范围,其范围一般为查询一天数据、查询一个月的数据、查询一年的数据,那么天、月、年可以作为其对应的单位范围;
A2.根据常用查询条件的单位范围创建对应的分层快表; t匕如,可以创建天分层快表、月分层快表和年分层快表;
A3.根据工控系统的显示设备参数,确定常用查询条件的单位范围以内的数据量即单位数据量;
所述工控系统的显示设备参数是指工控系统显示设备的水平分辨率值,所述单位数据量大于等于显示设备的水平分辨率值;
为了曲线图的美观性,单位数据量的值推荐略大于工控系统显示设备的水平分辨率值。较小的单位数据量,可以减轻系统压力,更快的绘制曲线图;较大的单位数据量,可以更真实的反应系统运行情况;
在系统中,当单位数据量远小于分辨率时,会造成曲线失真;
在系统中,如果单位数据量远大于工控系统显示设备的分辨率值,在工控系统显示设备上,无法正常辨识其中的关注点,海量的数据充斥屏幕,异常信息被隐藏在其中;
在系统性能有瓶颈时,推荐使用工控系统显示设备的水平分辨率值作为单位数据量,这样可以生成间隔合理、性能较优的曲线图。如果注重工控系统的真实情况时,可以选择多倍显示分辨率值最为单位数据量;
A4.依据单位范围和单位数据量来处理工控系统的源数据;
如图3所示,依据单位范围和单位数据量来处理工控系统的源数据的处理方法包括如下步骤:
Cl.使用K-Means算法分析单位范围内的异常数据;
C2.将单位范围进行平均划分,统计异常数据的分布情况;
将单位范围平均划分为η段,每段的范围为Μ,单位数据量为F,统计落在各段(m1、m2、m3、......mn)中异常数据的个数分别为(Χρ x2、x3、......xn); C3.计算各段中异常数据的权重;
对于叫段中的异常数据权重为qi=Xi/E χη,该权重反映了当前段中异常数据的密度; C4.按权重计算各段中的范围间隔,进行采样;
根据得到的权重,计算各段中的采样间隔,Hii段的采样间隔为M/(F*qi),根据各段的采样间隔,从各段中分别使用间隔采样方法抽取数据。
[0020]在工控业务系统中,系统监控数据是渐变的,关注点为突变的数据,为了保证数据真实,且突出异常数据,可以使用间隔抽样的方法抽取源数据,保证数据的稳定性,再通过追加极限数据来突出异常情况的数据。如果要求曲线的美观,数据间隔一致,那么可以选择间隔抽样抽取源数据;
A5.将处理源数据得到的处理结果存入分层快表。
[0021]如图2所示,所述查询步骤包括如下步骤:
B1.根据用户输入的查询内容,分析出用户所要查询内容的查询条件及其查询范围; B2.依据用户所要查询内容的查询范围确定对应的分层快表作为数据源;
在依据查询范围确定对应的分层快表作为数据源时,当查询范围小于当前单位范围的80%时,使用比当前单位范围小一级的单位范围所对应的分层快表作为数据源;反之,当查询范围大于等于当前单位范围的80%时,使用当前单位范围所对应的分层快表作为数据源;
t匕如,系统有日分层快表、月分层快表、年分层快表三种,当时间条件查询范围大于一天,但是小于月的天数的80%—24天时,从日分层快表中查询数据;当时间条件查询范围大于24天,小于292天时,从月分层快表中查询数据;
根据查询范围来确定分层快表,可以对其中的参数进行适当的调整。使用这个方法,可以保证曲线图绘制时的数据量与查询效率达到一个平衡;
B3.计算用户所要查询内容的查询范围中所包含的单位范围个数;
所述单位范围个数=查询范围/单位范围;
t匕如,查询时间范围为22天,得到需要从日分层快表中查询,日分层快表的单位范围为天,那么单位范围个数为22天/I天=22个。单位范围个数小于I的计算为1,也可以根据实际需要进行计算;
B4.根据用户所要查询内容的查询范围从数据源中查询出结果集;
B5.根据单位范围个数对查询出的结果集进行抽样,依据抽样结果绘制曲线图。
[0022]综上所述,本发明将待查询的工控系统中的海量数据先以间隔抽样的方式存储在分层快表内,在用户进行查询时,只要调用已经创建好的分层快表,并将分层快表作为数据源进行查询,极大程度地减轻网络传输负担,同时,对查询到的结果集进行抽样来绘制曲线图,方便了客户端绘图。
【权利要求】
1.一种工控系统曲线图的数据分层存储查询方法,该方法包括下列顺序的步骤: (1)存储步骤:为待查询的工控系统创建分层快表,对工控系统的源数据进行处理,将处理结果存入分层快表; (2)查询步骤:根据用户输入的查询内容,选择对应的分层快表作为数据源并从中查询,对查询出的结果集进行抽样并根据抽样结果绘制曲线图。
2.根据权利要求1所述的工控系统曲线图的数据分层存储查询方法,其特征在于:所述存储步骤包括如下步骤: Al.分析工控系统的查询条件,确定其常用查询条件以及常用查询条件的单位范围; A2.根据常用查询条件的单位范围创建对应的分层快表; A3.根据工控系统的显示设备参数,确定常用查询条件的单位范围以内的数据量即单位数据量; A4.依据单位范围和单位数据量来处理工控系统的源数据; A5.将处理源数据得到的处理结果存入分层快表。
3.根据权利要求1所述的工控系统曲线图的数据分层存储查询方法,其特征在于:所述查询步骤包括如下步骤: B1.根据用户输入的查询内容,分析出用户所要查询内容的查询条件及其查询范围; B2.依据用户所要查询内容的查询范围确定对应的分层快表作为数据源; B3.计算用户所要查询内容的查询范围中所包含的单位范围个数; B4.根据用户所要查询内容的查询范围从数据源中查询出结果集; B5.根据单位范围个数对查询出的结果集进行抽样,依据抽样结果绘制曲线图。
4.根据权利要求2所述的工控系统曲线图的数据分层存储查询方法,其特征在于:所述工控系统的显示设备参数是指工控系统显示设备的水平分辨率值,所述单位数据量大于等于显示设备的水平分辨率值。
5.根据权利要求2所述的工控系统曲线图的数据分层存储查询方法,其特征在于:依据单位范围和单位数据量来处理工控系统的源数据的处理方法包括如下步骤: Cl.使用K-Means算法分析单位范围内的异常数据; C2.将单位范围进行平均划分,统计异常数据的分布情况; 将单位范围平均划分为η段,每段的范围为Μ,单位数据量为F,统计落在各段(m1、m2、m3、......mn)中异常数据的个数分别为(Χρ x2、x3、......xn); C3.计算各段中异常数据的权重; 对于叫段中的异常数据权重为qi=Xi/E χη,该权重反映了当前段中异常数据的密度; C4.按权重计算各段中的范围间隔,进行采样; 根据得到的权重,计算各段中的采样间隔,Hii段的采样间隔为M/(F*qi),根据各段的采样间隔,从各段中分别使用间隔采样方法抽取数据。
6.根据权利要求3所述的工控系统曲线图的数据分层存储查询方法,其特征在于:在依据查询范围确定对应的分层快表作为数据源时,当查询范围小于当前单位范围的80%时,使用比当前单位范围小一级的单位范围所对应的分层快表作为数据源;反之,当查询范围大于等于当前单位范围的80%时,使用当前单位范围所对应的分层快表作为数据源。
7.根据权利要求3所述的工控系统曲线图的数据分层存储查询方法,其特征在于:所述单位范围个数=查询 范围/单位范围。
【文档编号】G06F17/30GK103955508SQ201410176285
【公开日】2014年7月30日 申请日期:2014年4月29日 优先权日:2014年4月29日
【发明者】汤醒龙, 陈志华, 李伟, 刘胜军, 张景云 申请人:安徽中科大国祯信息科技有限责任公司

最新回复(0)