CN102043795A - 过程控制历史数据文件结构的建立方法和数据读写方法 - Google Patents
过程控制历史数据文件结构的建立方法和数据读写方法 Download PDFInfo
- Publication number
- CN102043795A CN102043795A CN 200910197024 CN200910197024A CN102043795A CN 102043795 A CN102043795 A CN 102043795A CN 200910197024 CN200910197024 CN 200910197024 CN 200910197024 A CN200910197024 A CN 200910197024A CN 102043795 A CN102043795 A CN 102043795A
- Authority
- CN
- China
- Prior art keywords
- data
- measuring point
- address
- file
- process control
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种过程控制历史数据文件结构的建立方法,其包括以下步骤:S1、建立文件头,在文件头中写入文件标识信息;S2、建立索引区,将索引区划分为测点描述区和数据地址区,数据地址区中的数据地址是历史数据每次写入固定时间长度数据时在历史数据文件中的起始地址;S3、建立数据区,用于保存写入的测点历史数据,其中每个测点的所有数据都存放在最多三块连续存储区域上。本发明还公开了一种过程控制历史数据的存储方法和查询方法。本发明通过多种方式相结合的数据压缩,可以大大节约磁盘空间;采用整块写入和内存映射的方式提高了数据存储速度;通过单个测点数据连续存储,快速搜索,整块读取的方式,大大提高了数据读取速度。
Description
技术领域
本发明涉及过程控制技术领域,特别是涉及一种过程控制历史数据文件结构的建立方法和数据读写方法。
背景技术
过程控制在流程行业应用广泛,包括:电力、石化、冶金、污水处理、水泥、化工、轨道交通等领域。比如对于锅炉来说,需要采集其不同部位测点的液位、温度和压力,或者管道的流量等参数。
流程行业属于24小时连续运行,随着时间的推移,采集的数据量越来越大,只能用TB级来计量。在历史数据查询,问题追溯,数据分析时需要从这些日积月累的数据中快速读取数据。
现在历史数据的处理方法一般为:采用及时读取,死区限制的方式对数据进行压缩;然后采用顺序写入的方法对数据进行记录,并采用单向链表的形式对前后数据进行链接,写入数据采用周期性写入数据,每次写入的数据时间长度不固定;在读取历史数据时,采用从单个文件头开始顺序搜索的方式,直到找到所需数据位置。这种数据处理方法数据压缩方法简单,数据压缩率低,占用磁盘空间大;采用单向链表的文件存储结构,导致只能采用顺序搜索的方式进行数据读取,大部分时间都浪费在无效数据的遍历上,导致数据读取速度慢。
发明内容
本发明要解决的技术问题是为了克服现有技术数据压缩率低,占用磁盘空间大,数据读取速度慢的缺陷,提供一种节约磁盘空间,提高数据读取速度的过程控制历史数据文件结构的建立方法和数据读写方法。
本发明是通过下述技术方案来解决上述技术问题的:
一种过程控制历史数据文件结构的建立方法,其特点在于,其包括以下步骤:
S1、建立文件头,在文件头中写入文件标识信息;
S2、建立索引区,将索引区划分为测点描述区和数据地址区,其中测点描述区存储有测点唯一数字标识、数据区起始地址和数据区长度,数据地址区中的数据地址是历史数据每次写入固定时间长度数据时在历史数据文件中的起始地址;
S3、建立数据区,用于保存写入的测点历史数据,其中每个测点的所有数据都存放在至少一块连续存储区域上。
较佳地,索引区为测点建立索引,以所述测点唯一数字标识为索引关键字,测点按该索引关键字以升序或降序排列。
较佳地,步骤S2中所述的测点描述区还存储有测点名称、采集周期信息。
本发明提供的另一技术方案为:一种过程控制历史数据的存储方法,其特点在于,其包括以下步骤:
T1、如权利要求1的方法建立历史数据文件;
T2、搜索索引区,根据所述测点唯一数字标识,找到需要写入数据的测点所在的索引位置,获取测点所在索引区信息;
T3、根据测点所在索引区信息,获取数据写入地址,在数据写入地址处写入数据。
较佳地,在步骤T3中,当前数据写入的结束地址,作为该测点下一次数据写入的起始地址。
较佳地,在步骤T2中,找到需要写入数据的测点所在的索引位置时采用二分查找法、分块查找法或顺序查找法。
较佳地,在步骤T3中,数据采用块写入的方式,一次将测点需要写入的数据全部写入。
较佳地,在写入数据之前对数据进行压缩,数据压缩过程包括以下步骤:
T31、死区滤波:计算当前采集值与上次采集值的偏差,如果偏差绝对值在死区范围内,则取上次采集值,其中该死区为一预设的数值范围;
T32、斜率压缩:将前后采集周期的数据变化等效于直线的斜率y-y0=k(t-t0),其中y为采集数据值,y0为初始采集数据值,k为斜率,t为采集数据值y对应的采集时间点,t0为y0对应的采集时间点;如果采集数据值的变化处于同一直线上,那么用初始值(t0,y0)和斜率k即可表示直线上的所有数据,只要输入时间参数t,即可计算出对应值y。
较佳地,在步骤T32之后还包括一步骤T33、类曲线拟合压缩:在前后相同时间段内,如果数据变化规律一致,则直接采用指针指向前一时间段数据,保留数据初值,数据长度不增加。
本发明提供的又一技术方案为:一种过程控制历史数据的查询方法,其特征在于,该方法用于查询如权利要求1的方法建立的历史数据文件,其包括以下步骤:
U1、搜索索引区,首先根据所述测点唯一数字标识,找到需要读取数据的测点所在的索引位置,获取测点所在索引区信息;
U2、获取所述测点数据区起始地址和数据区长度,并计算所述测点数据地址区的起始地址;
U3、根据所述测点数据区起始地址、数据区长度,读入测点数据;根据所述测点数据地址区的起始地址,数据地址个数,单个数据地址结构长度读入测点数据地址;U4、根据需要读取数据的时间,计算出该时间对应的数据所在的固定时间长度数据的数据地址;再根据数据区起始地址计算出固定时间长度数据的数据地址偏移;
U5、根据该数据地址偏移,以及读取数据时间在该固定时间长度内的时间偏移,从读入内存的数据中获取所需要读取的数据值。
较佳地,在步骤U3中,数据地址个数由设定的单个文件记录历史数据的时间长度和每次写入的测点数据对应的固定时间长度决定,单个数据地址结构长度为固定值。
较佳地,在步骤U4中,根据该时间对应的数据所在的数据地址减去数据区起始地址,得到数据地址偏移。
较佳地,在步骤U3中,一次将连续存储的数据块全部读入内存,然后在内存中进行数据操作。
较佳地,在步骤U1中,找到需要读取数据的测点所在的索引位置时采用二分查找法、分块查找法或顺序查找法。
本发明提供的再一技术方案为:一种过程控制历史数据的快速处理方法,其特征在于,其包括以下步骤:按照前述的数据存储方法将数据存储到历史数据文件中,再按照前述的数据查询方法查询到所需数据。
本发明的积极进步效果在于:本发明中的数据压缩方法用于实时数据采集时数据的压缩处理,减少磁盘空间占用;文件结构定义方法用于建立历史数据存储的文件结构,保证数据结构合理便于数据快速存取;数据写入方法用于将数据写入历史数据文件;数据查询方法用于快速查询历史数据。
所以,本发明的效果可总结为以下几点:
1.通过多种方式相结合的数据压缩,可以大大节约磁盘空间。
2.采用整块写入和内存映射的方式提高了数据存储速度。
3.通过单个测点数据连续存储,快速搜索,整块读取的方式,大大提高了数据读取速度。
附图说明
图1a是传统的测点数据存储模式示意图。
图1b是本发明的测点数据存储模式示意图。
图2是本发明实施例1的数据处理总体框架图。
图3是本发明实施例1的历史数据文件结构图。
图4是本发明实施例1的数据压缩中死区滤波和斜率压缩流程图。
图5是本发明实施例1的数据压缩中类曲线拟合流程图。
图6是本发明实施例1的数据存储流程图。
图7是本发明实施例1的数据查询流程图。
图8是本发明实施例2的历史数据文件结构图。
图9是本发明实施例2的测点连续存储空间分配方法的流程图。
具体实施方式
下面结合附图给出本发明较佳实施例,以详细说明本发明的技术方案。
首先,本发明过程控制快速数据处理方法的基本思想是:以小时,数个小时或以天为单位建立历史数据收集文件,即一个历史数据文件记录一个小时或多个小时或一天的所有测点历史数据。在一个历史数据文件中,每个测点的历史数据都是存储在连续的地址空间。如图1a和1b中,有两个测点A和B,图1a为传统的所有测点数据连续存储的模式,即每个写入周期,所有写入测点的数据是连续存储的;而图1b为本发明采用的数据分块存储结构,即每个测点的数据占用一块存储区域,每个测点的所有数据都存放在同一块连续存储区域。每个历史文件都包括:索引区和数据区两部分。写入之前对数据进行压缩;每次写入时,写入固定时间长度的数据,如以一个小时为单位建立历史数据文件,每次写入两分钟时间长度的数据,只要测点数据时间长度满两分钟,即将该测点数据写入历史数据文件;读取时,一次读入测点的整个数据块,在内存中进行数据处理。
总的来说,本发明的过程控制历史数据的快速处理方法,摒弃了传统的简单数据压缩、顺序写入的数据处理方法,而是采用了多级的数据压缩方法,采用数据整块写入模式,文件结构采用索引+数据块模式,数据读取采用整块读入,内存处理的模式,从而提高了数据压缩率,数据写入和读取速度。
实施例1
下面对分别对本发明中的数据压缩、文件结构定义、数据写入方法、数据查询方法加以具体的说明。
如图2所示,本发明的过程控制历史数据的快速处理方法,总体上包括以下步骤:实时数据获取,实时数据压缩,实时数据写入,历史数据读取。
步骤101,实时数据获取,是获取过程控制的实时数据,是本发明的前提,为现有技术,不再赘述。
步骤102,实时数据压缩,对获取的实时数据进行分级压缩,在保持数据精度的基础上,尽量提高数据压缩率。
步骤103,实时数据写入,采用整块写入方式减少文件写入次数,提高数据写入速度。其中历史数据文件104采用了优化的文件结构:索引方式,索引按测点唯一标识顺序排序,数据区按块分配,方便写入与读取。
步骤105,历史数据读取,按照索引区搜索,数据整块读入,内存处理的方式,减少文件访问次数,提高了数据读取速度。
上述步骤101~105,本领域技术人员是可以根据其知晓的相关知识和本说明书公开的内容去具体的实现的。
一、文件结构定义
如图3所示,为一种过程控制历史数据文件结构的建立方法,以及由该方法建立的文件结构。其中,建立方法包括以下步骤:1、建立文件头,在文件头中写入文件标识信息;2、建立索引区,将索引区划分为测点描述区和数据地址区,其中测点描述区存储有测点唯一数字标识、数据区起始地址和数据区长度,数据地址区中的数据地址是历史数据每次写入固定时间长度数据时在历史数据文件中的起始地址;3、建立数据区,用于保存写入的测点历史数据,其中每个测点的所有数据都存放在同一块连续存储区域上,或者2块,最好不要超过3块连续存储区域上。上述步骤1~3,本领域技术人员是可以根据其知晓的相关知识和本说明书公开的内容去具体的实现的。本发明的文件结构,采用索引+分块存储的方法,保证数据快速存取。其采用索引区+数据区的方式存储数据,索引区为测点(数据采集点,以下统一称为测点)建立索引,索引区以测点的唯一数字标识为索引关键字,并按索引关键字以升序或降序排列,以提高索引区搜索速度。
文件结构包括三大部分。
1、文件头:文件头主要写入一些辅助信息,包括文件标识信息,版本号等。
2、索引区,索引区包括测点描述区,数据地址区两部分。测点描述区记录了测点的基本信息,包括:测点唯一数字标识,测点名,采集周期,数据区起始地址,数据区长度等。数据地址区记录了每次测点数据写入时的写入起始地址和数据长度。
索引区包括测点数据区起始地址和测点数据地址,这两个概念需要分清楚。所谓测点数据区起始地址,即是测点数据在文件中连续存储区域的起始地址,每个测点都分配有连续存储区域,并且文件中每个测点的所有数据都存在自己的连续存储区域上。每个测点数据区开始地址和数据块长度表征了文件中每个测点连续存储数据区的开始地址和数据区的长度。
所谓测点数据地址,即是每次写入固定时间长度数据(譬如每次写入2分钟时间长度的数据)的写入起始地址,测点数据地址必然在测点连续存储区域内。数据地址是每次写入固定时间长度的测点数据在历史数据文件中的起始地址。
为了提高数据写入与读取速度,每个测点都有唯一的数字标识,并且测点按照数字标识大小排序(升序或降序),这样测点描述是有序的,数据地址的排列顺序与测点描述相对应,也是有序的。这样在索引区可以通过测点唯一数字标识,采用二分法、分块查找、顺序查找(该3种方法均为现有技术)等搜索算法进行快速搜索。
3、数据区,数据区保存写入的测点历史数据,数据区打破传统的所有测点数据连续存储的模式,而采用数据分块存储的结构,即每个测点的数据占用一块存储区域,每个测点的所有数据都存放在同一块连续存储区域。这样可以减少读取文件时的文件访问次数,提高数据查询速度。
二、数据压缩
图4为数据写入之前的数据压缩中死区滤波和斜率压缩的流程。所谓死区滤波,死区为克服现场数据扰动的门限值,死区的设定跟具体的工程应用环境有关,由工程、设计人员设定。死区也即是测点值在死区范围内波动时,认为是合理,真实数据没有发生变化,仍然取上次采集值。数据压缩首先采用死区判断方法,剔出数据毛刺,在死区范围内的数据认为是同一数据,对数据进行初步压缩。死区判断方法用于消除外部扰动或传感器精度所引起的数据波动。其具体步骤包括:
步骤201,用当前采集值减去上次采集值计算出偏差;
步骤202,判断偏差绝对值是否在死区范围内;
步骤203,如果是,则取上次采集值,偏差计数加1。
斜率压缩,斜率压缩根据测点值的变化情况对数据进行压缩,前后采集周期的数据变化等效于直线的斜率,如果连续多个采集周期,测点的数据变化完全一致,即斜率相同,那么这些数据都处于同一直线上,用简单的直线方程就可表示数据的变化过程,从而实现对数据进行压缩。采用斜率计算方法,判断数据变化,斜率相同,偏差计数加1,数据长度不增加,对数据进行压缩。若以测点数据采集周期为单位,则斜率等效于偏差。
斜率压缩结合了直线方程的概念,任一直线都可以用斜率方程进行表示:y-y0=k(t-t0),其中y为采集数据值,y0为初始采集数据值,k为斜率,t为采集数据值y对应的采集时间点,t0为y0对应的采集时间点;如果值的变化处于同一直线上,那么用:初始值(t0,y0),斜率k,即可表示直线上的所有数据,只要输入时间参数t,即可计算出对应值y。过程数据包括数据值和数据品质,对数据品质判断进行数据压缩:同一品质且满足前面两步(指死区滤波和斜率压缩)要求的,偏差计数加1,数据长度不增加。其具体步骤包括:
步骤204,如果步骤202中判断偏差绝对值不在死区范围内,则将前后两次偏差值比较;
步骤205,判断前后两次偏差值是否相等;
步骤206,如果是,则取上次采集值,偏差计数加1。利用公式y-y0=k(t-t0),只要输入时间参数t,即可计算出对应值y。
步骤207,如果前后两次偏差值不相等,则新建采集结构,返回步骤201。
上述步骤201~207,本领域技术人员是可以根据其知晓的相关知识结合本说明书公开的内容去具体的实现的。
图5为本发明中数据压缩中类曲线拟合流程。死区滤波和斜率压缩是对写入周期内(比如一个写入周期2分钟内不同时间点)数据的压缩处理,类曲线拟合则是对前后不同写入周期(比如前面一个2分钟的周期和后面一个2分钟的周期)的数据比较分析,进行数据压缩处理。类曲线拟合是在死区滤波、斜率压缩处理的基础上,对数据进行进一步压缩。类曲线拟合对前后写入周期的数据进行分析,如果变化规律完全一致,那么当前周期(比如2分钟)的数据不用写入文件,只需指向前一写入周期的数据起始地址,并保存初始值即可。
其具体步骤包括:
步骤301,判断固定时间长度数据采集是否完成;
步骤302,如果是,则将前后两次固定时间长度数据比较;
步骤303,判断变化规律是否一致;
步骤304,如果一致,则采用指针指向前次固定时间长度数据,不用写入本次固定时间长度数据;
步骤305,如果不一致,则写入本次固定时间长度数据。
上述步骤301~305,本领域技术人员是可以根据其知晓的相关知识结合本说明书公开的内容去具体的实现的。
三、数据存储流程
所述数据写入(即存储)方法,每次写入固定时间长度的数据,并采用快速搜索,快速写入的方法进行数据写入。每次写入固定时间长度数据,即测点数据采用周期性写入的方式,并且每次写入固定时间长度的测点数据,这样便于数据查询。采用内存映射文件的方式对文件进行操作,减少物理磁盘访问次数,提高数据存储速度。
通过内存映射文件可以保留一个地址空间的区域,同时将物理存储器提交给此区域,内存文件映射的物理存储器来自一个已经存在于磁盘上的文件,而非系统的页文件,而且在对该文件进行操作之前首先对文件进行映射,就如同将整个文件从磁盘加载到内存。由此可以看出,使用内存映射文件处理存储于磁盘上的文件时,将不必再对文件执行I/O操作,这意味着在对文件进行处理时将不必再为文件申请并分配缓存,所有的文件缓存操作均由系统直接管理,由于取消了将文件数据加载到内存、数据从内存到文件的回写以及释放内存块等步骤,使得内存映射文件在处理大数据量的文件时能起到相当重要的作用,速度得到大大提高。
对于新建历史数据文件,首先写入索引区信息,为每个测点分配连续存储区域,计算测点数据首次写入地址,以后的测点数据写入地址紧接着前一次测点数据写入的结束地址;对于已存在历史数据文件,在启动数据收集时,首先采用二分法对索引区进行搜索,得到测点数据写入地址,以后的测点数据写入地址紧接着前一次测点数据写入的结束地址。数据采用块写入方式,即一次将测点需要写入的数据全部写入,减少物理磁盘访问次数,提高数据写入速度。图6为其具体步骤,包括:
步骤401,判断历史文件是否存在,如果历史数据文件不存在则需要进入步骤402,新建历史数据文件,新建历史数据文件的工作主要包括:步骤403,建立新历史数据文件,写历史数据文件头,写历史数据文件索引区。历史数据文件头,索引区的结构和写入方法参见图3及上述2.1节中相关文字说明。
如果历史数据文件存在,则直接进行步骤404,索引区搜索,索引区搜索根据测点的唯一数字标识,可以采用二分查找、分块查找、顺序查找等搜索算法,找到需要写入数据的测点所在索引位置。
步骤405,根据读取的索引区信息,计算出数据写入地址。参考图3,本实施例中的数据写入地址的计算方法如下:1、测点描述区内每个测点的测点描述区结构是一致的,即每个测点描述区长度是固定的;2、测点数据地址区内,每个测点的数据地址个数和数据地址结构长度是一致的,即每个测点的数据地址区长度是一致的。在上述第1、2点的前提下,通过二分法在索引区的测点描述区域找到测点描述所在位置,如:i,即查找的测点在测点描述区的位置i处,则对应的,查找的测点的数据地址起始位置也在测点数据地址区的位置i处,从而可以读取查找测点的所有数据地址,数据长度,找到最后一个不为0的数据地址DataAddr,数据长度DataLen,那么,DataAddr+DataLen,即是该测点的当前数据写入地址。因为前面不为0的数据地址都已经有写入的数据了。本步骤中的数据写入方法不限于上面所述的方法,本领域技术人员可采用其他方法计算出数据写入地址,并且上述DataAddr,DataLen为编程中自定义的变量名称,本领域技术人员可根据需要自行定义。
步骤406,在数据写入地址处写入数据,并把数据写入的结束地址,作为该测点下一次数据写入的起始地址。
在数据写入之前也可以先对数据按2.2节进行压缩,以减少磁盘空间占用。
上述步骤401~406,本领域技术人员是可以根据其知晓的相关知识结合本说明书公开的内容去具体的实现的。
四、数据查询流程
本发明的数据查询方法,采用整块读取的方法,结合前述文件结构定义进行数据快速查询。采用二分法对索引区进行搜索,提高索引区搜索速度,得到数据区地址,以及数据地址区地址。采用整块读取的方式,将数据,数据地址读入内存再进行处理,减少物理磁盘访问次数,提高数据查询速度。
所谓整块读取,是指一次将连续存储的数据区全部读入内存,然后在内存中进行数据操作,这样减少了物理磁盘的访问次数。本发明的整块读入,包括:测点数据的整块读入和测点数据地址区的整块读入。所谓内存处理,是指数据及数据地址整块读入后,根据查询的时间计算出需要读取数据所在的数据地址,根据数据地址减去数据区起始地址得到需要读取数据的数据偏移地址,然后根据数据偏移地址及需要读取的数据所在的时间从读入的数据中获取数据。图7为其具体步骤,包括:
步骤501,索引区搜索,首先读入测点索引区测点描述信息;
步骤502,根据测点唯一数字标识,采用二分法对索引区进行搜索,找到需要读取数据的测点所在索引区位置。
步骤503,根据测点描述信息计算测点数据区起始地址,获取数据区长度。本实施例中的测点数据地址区起始地址计算方法如下:设有测点总个数m,单个测点描述区长度为TagDescrLen,单个测点数据地址区长度为:TagAddrLen,对测点TagN通过二分法查找到其在测点描述区的第i个测点描述处,则对应地,测点数据区也在索引测点数据地址区的第i个数据地址区,则测点数据地址区的起始地址为:m*TagDescrLen+i*TagAddrLen。本步骤中的数据写入方法不限于上面所述的方法,本领域技术人员可采用其他方法计算出数据区起始地址,并且上述TagDescrLen,TagAddrLen,TagN为编程中自定义的变量名称,本领域技术人员可根据需要自行定义。
步骤504,根据测点数据区起始地址,数据区长度,整块读入测点数据;根据测点地址区起始地址,数据地址个数,单个数据地址结构长度整块读入测点数据地址得到数据地址数组AddrArray(自定义的变量名称)。其中,数据地址个数由设定的单个文件记录历史数据的时间长度和每次写入的测点数据对应的固定时间长度决定。如:设定一个文件记录一天的历史数据,每次写入两分钟的数据长度,那么数据地址个数为:24*60/2=720个数据地址。单个数据地址结构长度为固定值,如若设数据地址:DWORD型,固定时间长度内数据长度:WORD型,则单个数据地址结构长度为6个字节。
步骤505,根据需要读取数据的时间,计算出对应数据所在的数据地址,即计算出需要读取的数据在哪一个数据写入周期对应的数据区间,计算方法为:设历史数据开始收集时间(即历史数据文件建立时间)为:H时M分S秒,查询的数据时间为:h时m分s秒,每次写入2分钟时间长度的数据,则:需要读取数据所在的数据地址数组索引为:AddrIndex=取整(((h-H)*3600+(m-M)*60+(s-S))/(2*60)),则得到读取数据所在地址为:AddrArray[AddrIndex],再根据数据区起始地址计算出数据地址偏移。数据地址减去数据区起始地址可得到需要读取数据的数据地址偏移。本步骤中的计算出对应数据所在的数据地址的方法不限于上面所述的方法,本领域技术人员可采用其他方法计算出对应数据所在的数据地址,并且上述TagDescrLen,TagAddrLen,TagN为编程中自定义的变量名称,本领域技术人员可根据需要自行定义。
步骤506,根据数据地址偏移,以及读取数据的时间,计算在所在固定时间长度内的读取时间偏移(单位为秒),以每次写入2分钟时间长度的数据为例,计算方法为:取余(((h-H)*3600+(m-M)*60+(s-S))/(2*60)),从读入内存的数据中,获取所需要读取的数据值。本步骤中的计算在所在固定时间长度内的读取时间偏移的方法不限于上面所述的方法,本领域技术人员可采用其他方法计算出在所在固定时间长度内的读取时间偏移,并且上述TagDescrLen,TagAddrLen,TagN为编程中自定义的变量名称,本领域技术人员可根据需要自行定义。上述步骤501~506,本领域技术人员是可以根据其知晓的相关知识结合本说明书公开的内容去具体的实现的。
实施例2
本实施例与实施例1的不同在于:实施例1中每个测点的所有数据都存放在同一块连续存储区域上,而本实施例每个测点的所有数据存储在最多3块连续存储区域上。并且,在数据查询时就首先要确定数据所在的是哪一个数据区。本实施例中的其他部分,与实施例1中的相同。
数据要连续存储就必须为测点分配连续存储空间,然而在历史数据收集开始,无法确定测点数据的变化规律,因此无法为测点分配合适的连续存储空间。为使分配的存储空间更为合理,本实施例中采用动态分配,逐次逼近的动态分配方法为测点分配连续存储空间,使测点的存储空间限制在最多3块连续存储区域内。具体描述如下,连续存储空间分配的基础:测点收集的存储数据结构,写入数据的固定时间长度,单个历史数据文件存储时间长度。
具体分配步骤为:
步骤601,根据测点的存储数据结构,每次写入数据的固定时间长度,单个历史数据文件存储时间长度,在数据没有得到压缩的情况下,计算单个历史数据文件中测点将占据的存储空间。
步骤602,为测点分配计算出存储空间的十分之一。举例说明如下:设每次写入数据的固定时间长度为TWrite分钟(如:两分钟),每个文件存储TFile个小时(如:1个小时)的数据,数据变化完全没有规律,不能进行压缩,每次采集的固定时间长度内数据长度为CycleDataLen,则单个测点在单个历史数据文件中占据的存储空间TagDataLenInFile为:
TagDataLenInFile=(60*TFile/TWrite)*CycleDataLen;
为测点首次分配的连续空间大小TagDataLenAllocated为:
TagDataLenAllocated=TagDataLenInFile/10
步骤603,在第一步分配的空间不足的情况下,继续为测点分配连续存储空间,分配空间的方法为:首先根据已用空间计算每个固定时间长度的平均使用空间大小,然后步骤604,根据单个历史数据文件剩下的还需写入的固定时间长度个数,为测点分配连续存储空间。举例说明如下:设已经写入了k个固定时间长度数据,还需要写入m个固定时间长度的数据,则根据第一步分配的空间,计算测点的平均占用空间大小AverageLen为:
AverageLen=TagDataLenAllocated/k;
则第二步应该分配的连续存储空间为TagDataLenAllocatedAgain:TagDataLenAllocatedAgain=AverageLen*m;
步骤605,在第二步分配空间不足的情况下,继续为测点分配连续存储空间,分配空间的方法为:根据剩下的还需写入的固定时间长度个数m,为测点最大化分配连续存储空间,即以数据不压缩的情况为测点最大化分配所需剩余空间。举例说明如下:设还剩余m个固定时间长度的数据需要写入,则还需为测点分配的空间TagDataLenAllocatedLast为:
TagDataLenAllocatedLast=AverageLen*m;
通过以上方法对测点进行存储空间分配,既实现了测点连续存储,同时也避免了存储空间分配过大或不足的情况。上述CycleDataLen,TagDataLenAllocated,AverageLen等参数为编程中自定义的变量名称,本领域技术人员可根据需要自行定义。
上述步骤601~605,本领域技术人员是可以根据其知晓的相关知识结合本说明书公开的内容去具体的实现的。
基于上述分配的3块数据区,确定数据所在的是哪一个数据区的方法为:
1、按照实施例1中的方法,读取测点描述区时,读入测点的3个数据区的起始地址和数据区长度。
2、按照实施例1中的方法,从测点数据地址区读入测点数据地址,得到需要读取的测点数据所在固定时间长度的数据地址。
3、将第2步所得的数据地址分别与第1步所得的3个数据区起始地址,数据长度进行比较,就能判断出数据所在的数据区。进而得到读取数据所在的数据区起始地址和数据长度。需要读取的数据所在数据区的判断方法举例说明如下:
设需要读取的数据所在地址为:DataAddr,3个数据区的起始地址和数据长度分别为:[DataZoneBeginAddr1,DataZoneLen1],[DataZoneBeginAddr2,DataZoneLen2],[DataZoneBeginAddr3,DataZoneLen3],则判断方法为:
If(DataZoneBeginAddr1<DataAddr<(DataZoneBeginAddr1+DataZoneLen1))则需要读取的数据在数据区1内;
If(DataZoneBeginAddr2<DataAddr<(DataZoneBeginAddr1+DataZoneLen2))则需要读取的数据在数据区2内;
If(DataZoneBeginAddr3<DataAddr<(DataZoneBeginAddr3+DataZoneLen3))则需要读取的数据在数据区3内。
上述DataAddr,DataZoneBeginAddr1,DataZoneLen1等参数为编程中自定义的变量名称,本领域技术人员可根据需要自行定义。上述步骤1~3,本领域技术人员是可以根据其知晓的相关知识结合本说明书公开的内容去具体的实现的。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这些仅是举例说明,在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改。因此,本发明的保护范围由所附权利要求书限定。
Claims (15)
1.一种过程控制历史数据文件结构的建立方法,其特征在于,其包括以下步骤:
S1、建立文件头,在文件头中写入文件标识信息;
S2、建立索引区,将索引区划分为测点描述区和数据地址区,其中测点描述区存储有测点唯一数字标识、数据区起始地址和数据区长度,数据地址区中的数据地址是历史数据每次写入固定时间长度数据时在历史数据文件中的起始地址;
S3、建立数据区,用于保存写入的测点历史数据,其中每个测点的所有数据都存放在至少一块连续存储区域上。
2.如权利要求1所述的过程控制历史数据文件结构的建立方法,其特征在于,索引区为测点建立索引,以所述测点唯一数字标识为索引关键字,测点按该索引关键字以升序或降序排列。
3.如权利要求1或2所述的过程控制历史数据文件结构的建立方法,其特征在于,步骤S2中所述的测点描述区还存储有测点名称、采集周期信息。
4.一种过程控制历史数据的存储方法,其特征在于,其包括以下步骤:
T1、如权利要求1的方法建立历史数据文件;
T2、若是新建历史数据文件,则将为每个测点分配的连续存储空间的起始地址作为测点数据的首次写入地址;若是已存在历史数据文件,则搜索索引区,根据所述测点唯一数字标识,找到需要写入数据的测点所在的索引位置,获取测点在此之前最后一次写入的结束地址,并将其作为此次数据写入地址;
T3、在数据写入地址处写入数据。
5.如权利要求4所述的过程控制历史数据的存储方法,其特征在于,在步骤T3中,当前数据写入的结束地址,作为该测点下一次数据写入的起始地址。
6.如权利要求4所述的过程控制历史数据的存储方法,其特征在于,在步骤T2中,找到需要写入数据的测点所在的索引位置时采用二分查找法、分块查找法或顺序查找法。
7.如权利要求4所述的过程控制历史数据的存储方法,其特征在于,在步骤T3中,数据采用块写入的方式,一次将测点需要写入的数据全部写入。
8.如权利要求4所述的过程控制历史数据的存储方法,其特征在于,在写入数据之前对数据进行压缩,数据压缩过程包括以下步骤:
T31、死区滤波:计算当前采集值与上次采集值的偏差,如果偏差绝对值在死区范围内,则取上次采集值,其中该死区为一预设的数值范围;
T32、斜率压缩:将前后采集周期的数据变化等效于直线的斜率y-y0=k(t-t0),其中y为采集数据值,y0为初始采集数据值,k为斜率,t为采集数据值y对应的采集时间点,t0为y0对应的采集时间点;如果采集数据值的变化处于同一直线上,那么用初始值(t0,y0)和斜率k即可表示直线上的所有数据,只要输入时间参数t,即可计算出对应值y。
9.如权利要求8所述的过程控制历史数据的存储方法,其特征在于,在步骤T32之后还包括一步骤T33、类曲线拟合压缩:在前后相同时间段内,如果数据变化规律一致,则直接采用指针指向前一时间段数据,以使此次数据地址与上次数据地址一致,保留数据初值即可。
10.一种过程控制历史数据的查询方法,其特征在于,该方法用于查询如权利要求1的方法建立的历史数据文件,其包括以下步骤:
U1、搜索索引区,首先根据所述测点唯一数字标识,找到需要读取数据的测点所在的索引位置,获取测点所在索引区信息;
U2、获取所述测点数据区起始地址和数据区长度,并计算所述测点数据地址区的起始地址;
U3、根据所述测点数据区起始地址、数据区长度,读入测点数据;根据所述测点数据地址区的起始地址,数据地址个数,单个数据地址结构长度读入测点数据地址;
U4、根据需要读取数据的时间,计算出该时间对应的数据所在的固定时间长度数据的数据地址;再根据数据区起始地址计算出该固定时间长度数据的数据地址偏移;
U5、根据该数据地址偏移,以及读取数据时间在该固定时间长度内的读取时间偏移,从读入内存的数据中获取所需要读取的数据值。
11.如权利要求10所述的过程控制历史数据的查询方法,其特征在于,在步骤U3中,数据地址个数由设定的单个文件记录历史数据的时间长度和每次写入的测点数据对应的固定时间长度决定,单个数据地址结构长度为固定值。
12.如权利要求10所述的过程控制历史数据的查询方法,其特征在于,在步骤U4中,根据该时间对应的数据所在的数据地址减去数据区起始地址,得到数据地址偏移。
13.如权利要求10所述的过程控制历史数据的查询方法,其特征在于,在步骤U3中,一次将连续存储的数据块全部读入内存,然后在内存中进行数据操作。
14.如权利要求10所述的过程控制历史数据的查询方法,其特征在于,在步骤U1中,找到需要读取数据的测点所在的索引位置时采用二分查找法、分块查找法或顺序查找法。
15.一种过程控制历史数据的快速处理方法,其特征在于,其包括以下步骤:按照如权利要求4-9中任意一项所述的方法将数据存储到历史数据文件中,再按照如权利要求10-14中任意一项所述的查询方法查询到所需数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910197024 CN102043795B (zh) | 2009-10-13 | 2009-10-13 | 过程控制历史数据文件结构的建立方法和数据读写方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910197024 CN102043795B (zh) | 2009-10-13 | 2009-10-13 | 过程控制历史数据文件结构的建立方法和数据读写方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102043795A true CN102043795A (zh) | 2011-05-04 |
CN102043795B CN102043795B (zh) | 2013-01-16 |
Family
ID=43909937
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200910197024 Active CN102043795B (zh) | 2009-10-13 | 2009-10-13 | 过程控制历史数据文件结构的建立方法和数据读写方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102043795B (zh) |
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102306125A (zh) * | 2011-08-17 | 2012-01-04 | 深圳市共进电子股份有限公司 | 一种flash存储器的数据擦写方法 |
CN102521306A (zh) * | 2011-12-01 | 2012-06-27 | 苏州迈科网络安全技术股份有限公司 | 一种数据存储系统应用方法 |
CN102646130A (zh) * | 2012-03-12 | 2012-08-22 | 华中科技大学 | 一种海量历史数据的存储及索引方法 |
CN103077232A (zh) * | 2013-01-07 | 2013-05-01 | 北京亿赞普网络技术有限公司 | 一种数据处理方法和装置 |
CN103207887A (zh) * | 2013-01-14 | 2013-07-17 | 广州佳都信息技术研发有限公司 | 一种高效历史趋势数据存储方法 |
CN103279530A (zh) * | 2013-05-31 | 2013-09-04 | 携程计算机技术(上海)有限公司 | 时间序列数据的组合查询缓存的建立方法、方法及系统 |
CN103646056A (zh) * | 2013-11-29 | 2014-03-19 | 北京广利核系统工程有限公司 | 一种基于特征值存储的历史数据存储和抽取方法 |
WO2014067142A1 (en) * | 2012-11-02 | 2014-05-08 | Accenture Global Services Limited | Real-time data management for a power grid |
CN103838766A (zh) * | 2012-11-26 | 2014-06-04 | 深圳市腾讯计算机系统有限公司 | 防空缓存方法和装置 |
CN104166970A (zh) * | 2013-05-16 | 2014-11-26 | 北京壹人壹本信息科技有限公司 | 笔迹数据文件的生成、恢复显示方法及装置、电子装置 |
CN104239517A (zh) * | 2014-09-17 | 2014-12-24 | 杭州华三通信技术有限公司 | 一种分布式存储系统的存储对象访问方法和装置 |
CN104298680A (zh) * | 2013-07-18 | 2015-01-21 | 腾讯科技(深圳)有限公司 | 数据统计方法及数据统计装置 |
CN105224546A (zh) * | 2014-06-04 | 2016-01-06 | 阿里巴巴集团控股有限公司 | 数据存储和查询方法及设备 |
CN106339374A (zh) * | 2015-07-06 | 2017-01-18 | 天津九洲云物联科技有限公司 | 用于嵌入式系统中的文件型实时历史数据库算法 |
CN106991088A (zh) * | 2016-01-20 | 2017-07-28 | 阿里巴巴集团控股有限公司 | 数据获取方法和装置 |
CN107545011A (zh) * | 2016-06-29 | 2018-01-05 | 高德信息技术有限公司 | 一种数据读取方法及装置 |
CN107704202A (zh) * | 2017-09-18 | 2018-02-16 | 北京京东尚科信息技术有限公司 | 一种数据快速读写的方法和装置 |
CN107704604A (zh) * | 2017-10-16 | 2018-02-16 | 中汇信息技术(上海)有限公司 | 一种消息持久化方法、服务器和计算机可读存储介质 |
CN107766452A (zh) * | 2017-09-26 | 2018-03-06 | 广西电网有限责任公司电力科学研究院 | 一种适合电力调度数据高速存取的索引结构及其索引方法 |
CN108388581A (zh) * | 2018-01-26 | 2018-08-10 | 爱普(福建)科技有限公司 | 一种组态软件中历史数据的读取方法及装置 |
CN108563711A (zh) * | 2018-03-28 | 2018-09-21 | 山东昭元信息科技有限公司 | 一种基于时间节点的时序数据存储方法 |
CN108920553A (zh) * | 2018-06-19 | 2018-11-30 | 西安电子科技大学 | 一种用于机载多传感器平台的数据记录方法 |
CN109918380A (zh) * | 2019-03-08 | 2019-06-21 | 上海拉扎斯信息科技有限公司 | 数据处理方法、装置、存储介质和电子设备 |
CN111179464A (zh) * | 2020-01-03 | 2020-05-19 | 深圳市瑞达飞行科技有限公司 | 飞行数据的处理方法、文件构造、处理装置和电子设备 |
CN114116795A (zh) * | 2021-11-01 | 2022-03-01 | 北京力控元通科技有限公司 | 一种数据存储和查询方法、装置、存储介质及电子设备 |
CN115982096A (zh) * | 2022-12-09 | 2023-04-18 | 北京水脉科技有限公司 | 一种基于热点文件的实时数据库快照存储方法及系统 |
WO2024036811A1 (zh) * | 2022-08-16 | 2024-02-22 | 浙江中控技术股份有限公司 | 一种工业数据存储缓存的方法、装置及相关产品 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002268927A (ja) * | 2001-03-13 | 2002-09-20 | Nippon Steel Corp | データアクセスシステム、装置、方法、コンピュータ読み取り可能な記憶媒体、及びコンピュータプログラム |
CN100377247C (zh) * | 2003-10-31 | 2008-03-26 | 浙江中控技术股份有限公司 | 实时数据在线压缩与解压缩方法 |
-
2009
- 2009-10-13 CN CN 200910197024 patent/CN102043795B/zh active Active
Cited By (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102306125B (zh) * | 2011-08-17 | 2016-04-06 | 深圳市共进电子股份有限公司 | 一种flash存储器的数据擦写方法 |
CN102306125A (zh) * | 2011-08-17 | 2012-01-04 | 深圳市共进电子股份有限公司 | 一种flash存储器的数据擦写方法 |
CN102521306A (zh) * | 2011-12-01 | 2012-06-27 | 苏州迈科网络安全技术股份有限公司 | 一种数据存储系统应用方法 |
CN102646130A (zh) * | 2012-03-12 | 2012-08-22 | 华中科技大学 | 一种海量历史数据的存储及索引方法 |
US10191529B2 (en) | 2012-11-02 | 2019-01-29 | Accenture Global Services Limited | Real-time data management for a power grid |
US9501555B2 (en) | 2012-11-02 | 2016-11-22 | Accenture Global Services Limited | Real-time data management for a power grid |
CN104769582B (zh) * | 2012-11-02 | 2018-11-02 | 埃森哲环球服务有限公司 | 针对电网的实时数据管理 |
WO2014067142A1 (en) * | 2012-11-02 | 2014-05-08 | Accenture Global Services Limited | Real-time data management for a power grid |
CN103838766B (zh) * | 2012-11-26 | 2018-04-06 | 深圳市腾讯计算机系统有限公司 | 防空缓存方法和装置 |
CN103838766A (zh) * | 2012-11-26 | 2014-06-04 | 深圳市腾讯计算机系统有限公司 | 防空缓存方法和装置 |
CN103077232A (zh) * | 2013-01-07 | 2013-05-01 | 北京亿赞普网络技术有限公司 | 一种数据处理方法和装置 |
CN103207887A (zh) * | 2013-01-14 | 2013-07-17 | 广州佳都信息技术研发有限公司 | 一种高效历史趋势数据存储方法 |
CN104166970A (zh) * | 2013-05-16 | 2014-11-26 | 北京壹人壹本信息科技有限公司 | 笔迹数据文件的生成、恢复显示方法及装置、电子装置 |
CN104166970B (zh) * | 2013-05-16 | 2017-12-26 | 北京壹人壹本信息科技有限公司 | 笔迹数据文件的生成、恢复显示方法及装置、电子装置 |
CN103279530A (zh) * | 2013-05-31 | 2013-09-04 | 携程计算机技术(上海)有限公司 | 时间序列数据的组合查询缓存的建立方法、方法及系统 |
CN103279530B (zh) * | 2013-05-31 | 2016-07-27 | 上海携程商务有限公司 | 时间序列数据的组合查询缓存建立方法及系统、时间序列数据的组合查询缓存方法及系统 |
US10353883B2 (en) | 2013-07-18 | 2019-07-16 | Tencent Technology (Shenzhen) Company Limited | Method, device and storage medium for providing data statistics |
CN104298680B (zh) * | 2013-07-18 | 2019-01-11 | 腾讯科技(深圳)有限公司 | 数据统计方法及数据统计装置 |
CN104298680A (zh) * | 2013-07-18 | 2015-01-21 | 腾讯科技(深圳)有限公司 | 数据统计方法及数据统计装置 |
CN103646056B (zh) * | 2013-11-29 | 2017-02-01 | 北京广利核系统工程有限公司 | 一种基于特征值存储的历史数据存储和抽取方法 |
CN103646056A (zh) * | 2013-11-29 | 2014-03-19 | 北京广利核系统工程有限公司 | 一种基于特征值存储的历史数据存储和抽取方法 |
CN105224546B (zh) * | 2014-06-04 | 2020-10-30 | 创新先进技术有限公司 | 数据存储和查询方法及设备 |
CN105224546A (zh) * | 2014-06-04 | 2016-01-06 | 阿里巴巴集团控股有限公司 | 数据存储和查询方法及设备 |
CN104239517B (zh) * | 2014-09-17 | 2018-05-15 | 新华三技术有限公司 | 一种分布式存储系统的存储对象访问方法和装置 |
CN104239517A (zh) * | 2014-09-17 | 2014-12-24 | 杭州华三通信技术有限公司 | 一种分布式存储系统的存储对象访问方法和装置 |
CN106339374A (zh) * | 2015-07-06 | 2017-01-18 | 天津九洲云物联科技有限公司 | 用于嵌入式系统中的文件型实时历史数据库算法 |
CN106991088A (zh) * | 2016-01-20 | 2017-07-28 | 阿里巴巴集团控股有限公司 | 数据获取方法和装置 |
CN107545011A (zh) * | 2016-06-29 | 2018-01-05 | 高德信息技术有限公司 | 一种数据读取方法及装置 |
CN107704202A (zh) * | 2017-09-18 | 2018-02-16 | 北京京东尚科信息技术有限公司 | 一种数据快速读写的方法和装置 |
CN107766452A (zh) * | 2017-09-26 | 2018-03-06 | 广西电网有限责任公司电力科学研究院 | 一种适合电力调度数据高速存取的索引结构及其索引方法 |
CN107766452B (zh) * | 2017-09-26 | 2021-07-06 | 广西电网有限责任公司电力科学研究院 | 一种适合电力调度数据高速存取的索引系统及其索引方法 |
CN107704604A (zh) * | 2017-10-16 | 2018-02-16 | 中汇信息技术(上海)有限公司 | 一种消息持久化方法、服务器和计算机可读存储介质 |
CN108388581A (zh) * | 2018-01-26 | 2018-08-10 | 爱普(福建)科技有限公司 | 一种组态软件中历史数据的读取方法及装置 |
CN108563711A (zh) * | 2018-03-28 | 2018-09-21 | 山东昭元信息科技有限公司 | 一种基于时间节点的时序数据存储方法 |
CN108563711B (zh) * | 2018-03-28 | 2021-02-09 | 山东昭元信息科技有限公司 | 一种基于时间节点的时序数据存储方法 |
CN108920553B (zh) * | 2018-06-19 | 2020-10-30 | 西安电子科技大学 | 一种用于机载多传感器平台的数据记录方法 |
CN108920553A (zh) * | 2018-06-19 | 2018-11-30 | 西安电子科技大学 | 一种用于机载多传感器平台的数据记录方法 |
CN109918380A (zh) * | 2019-03-08 | 2019-06-21 | 上海拉扎斯信息科技有限公司 | 数据处理方法、装置、存储介质和电子设备 |
CN111179464A (zh) * | 2020-01-03 | 2020-05-19 | 深圳市瑞达飞行科技有限公司 | 飞行数据的处理方法、文件构造、处理装置和电子设备 |
CN114116795A (zh) * | 2021-11-01 | 2022-03-01 | 北京力控元通科技有限公司 | 一种数据存储和查询方法、装置、存储介质及电子设备 |
CN114116795B (zh) * | 2021-11-01 | 2022-12-20 | 北京力控元通科技有限公司 | 一种数据存储和查询方法、装置、存储介质及电子设备 |
WO2024036811A1 (zh) * | 2022-08-16 | 2024-02-22 | 浙江中控技术股份有限公司 | 一种工业数据存储缓存的方法、装置及相关产品 |
CN115982096A (zh) * | 2022-12-09 | 2023-04-18 | 北京水脉科技有限公司 | 一种基于热点文件的实时数据库快照存储方法及系统 |
CN115982096B (zh) * | 2022-12-09 | 2023-09-08 | 北京水脉科技有限公司 | 一种基于热点文件的实时数据库快照存储方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102043795B (zh) | 2013-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102043795B (zh) | 过程控制历史数据文件结构的建立方法和数据读写方法 | |
CN102646130B (zh) | 一种海量历史数据的存储及索引方法 | |
CN104090987B (zh) | 一种历史数据存储及索引方法 | |
CN101667205B (zh) | 一种面向快速回放的实时测点数据存储方法 | |
CN103366015B (zh) | 一种基于Hadoop的OLAP数据存储与查询方法 | |
CN108197181B (zh) | 一种时序数据的压缩存储方法、电子设备及存储介质 | |
CN102663116B (zh) | 面向列存储数据仓库的多维olap查询处理方法 | |
CN103488709A (zh) | 一种索引建立方法及系统、检索方法及系统 | |
CN106503276A (zh) | 一种用于实时监控系统的时间序列数据库的方法与装置 | |
CN103617232A (zh) | 一种针对HBase表的分页查询方法 | |
CN104504105A (zh) | 一种实时数据库的存储方法 | |
CN102867071A (zh) | 一种网管海量历史数据管理方法 | |
CN104504116A (zh) | 一种实时数据库的存储方法 | |
CN102737123B (zh) | 一种多维数据分布方法 | |
CN102637197A (zh) | 实时数据采集存储系统的文件管理方法 | |
CN103514291A (zh) | 一种文本中树形结构数据的显示方法 | |
CN107766529A (zh) | 一种用于污水处理行业的海量数据存储方法 | |
CN104331432A (zh) | 一种适用于截面访问模式的电网海量时序数据存取方法 | |
CN102339256A (zh) | 基于imf内外存置换策略的复杂事件检测方法 | |
CN107301249A (zh) | 一种文件访问信息记录方法、系统及分布式集群系统 | |
CN105354163A (zh) | 一种实现单总线设备即插即用的方法 | |
CN101609331B (zh) | 一种适用于工业过程控制中的数据存储和读取方法 | |
CN104731716A (zh) | 一种数据存储方法 | |
CN102521292A (zh) | 一种基于模板对异构污染源集成数据的解析方法 | |
CN107766452B (zh) | 一种适合电力调度数据高速存取的索引系统及其索引方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |