CN107967360A - 一种实时数据库文件存储方法 - Google Patents
一种实时数据库文件存储方法 Download PDFInfo
- Publication number
- CN107967360A CN107967360A CN201711398848.4A CN201711398848A CN107967360A CN 107967360 A CN107967360 A CN 107967360A CN 201711398848 A CN201711398848 A CN 201711398848A CN 107967360 A CN107967360 A CN 107967360A
- Authority
- CN
- China
- Prior art keywords
- data
- file
- variable
- sample
- sample data
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
Abstract
本发明公开了一种实时数据库文件存储方法,所述方法包括:所有变量数据、样本数据、账号数据以及SOE事件数据通过文件存储,分别保存在变量数据文件、样本数据文件、账号数据文件以及SOE事件SQLite数据库SOE事件表中;对所述样本数据文件进行分块,每块保存相同变量样本数据,对块建立索引,并保存到SQLite数据库中的块索引表中,并对块索引表建立组合索引;对SOE事件建立SOE事件表,保存SOE事件记录到SQLite数据库中的SOE事件表中,并对SOE事件表建立组合索引。本发明提供的方法,其不仅具有快速的样本数据读写速度,并可满足快速、高效地进行存储、检索和压缩的要求。
Description
技术领域
本发明涉及文件存储技术领域,尤其涉及一种实时数据库文件存储方法。
背景技术
数据库的理论与技术发展极其迅速,其应用日益广泛,在当今的信息社会无所不在,尤其是关系数据库在传统数据领域的应用。然而传统数据库必须将数据存入数据库后再进行查找和后续的分析及数据挖掘等对数据的操作,这种特性决定了传统数据库在现代工程和时间关键性的应用方面显得软弱无力。传统的数据库系统更适合处理稳定且具有长有效期的数据,强调数据的一致性和完整性,并不考虑数据及其处理的时间限制,所以传统数据库并不能完成满足实时应用的需要。
为了解决上述的问题,实时数据库孕育而生,并广泛应用于电力、石油、化工、钢铁、环保等行业。实时数据库推动信息化从传统领域向新的领域扩展,向更高层次发展。这些新的领域包括生产实时监视、电力调度、交通监视及控制、空中交通管制、武器制导、实时仿真、作战指挥自动化等。这些应用有着不传统应用不同的特征:一方面需要维护的共享数据和控制数据大量增加;另一方面其任务(或事务)时间性很强,要求在规定的时刻或一定的时间内完成其处理。
现有实时数据库技术中,如公告号为CN102184226A,发明名称为“一种实时数据库的构建方法和数据检索方法”的中国专利申请,其没有采用b+树索引结构,而是针对时间序列数据的特征设计特定的索引结构;又如,公告号为CN1564158A,发明名称为“实时数据库建模、存储和访问方法”的中国专利申请中采用了直接磁盘扇区读写方式,不需要建立索引。但是,该方法不能利用操作系统的文件系统特性,只能应用于嵌入式系统。
此外,现有技术中的现代数据库一般均使用锁或多版本技术来实现并发读写,但是,采用锁或多版本技术的读写并发程度并不是非常高。现有技术中,如公告号为CN103336828A,发明名称为“实时数据库读取及写入方法”的中国专利申请中提到了一种加锁方式,可有效提高读写性能,但是却不能支持多写并发操作。
由此可知,现有技术中的实时数据库的样本数据的存储方法中都或多或少地存在上述的一些问题,因此难以满足对实时数据库的样本数据的存储的需要。
发明内容
为克服现有技术的不足及存在的问题,本发明提供一种实时数据库文件存储方法,该方法不仅具有快速的样本数据读写速度,并可满足快速、高效地进行存储、检索和压缩的要求。
本发明是通过以下技术方案实现的:
一种实时数据库文件存储方法,所述方法包括:
所有变量数据、样本数据、账号数据以及SOE事件数据通过文件存储,分别保存在变量数据文件、样本数据文件、账号数据文件以及SOE事件SQLite数据库SOE事件表中;
对所述样本数据文件进行分块,每块保存相同变量样本数据,对块建立索引,并保存到SQLite数据库中的块索引表中,并对块索引表建立组合索引;
对SOE事件建立SOE事件表,保存SOE事件记录到SQLite数据库中的SOE事件表中,并对SOE事件表建立组合索引;
所述变量数据文件、样本数据文件以及账号数据文件均通过内存映射文件的方式读取和存储数据。
优选地,所述变量数据文件包括:变量数据文件头和变量数据向量;所述变量文件头的属性包括:版本号、文件类型以及变量个数;所述变量数据向量由多个变量项组成,所述变量项的属性包括变量ID、数据类型、变量类型、压缩类型、压缩精度、变量名称、描述、工程单位、小数位数、有效位数、是否存盘、下限、上限、样本偏差、最小样本偏差时间、最大样本偏差时间、最小压缩时间间隔以及最大压缩时间间隔中的任意一个属性或任意多个属性;所述样本数据文件包括:样本数据文件头、样本数据块向量以及样本数据文件尾;所述样本数据文件头的属性包括版本号、文件类型以及时间戳;所述样本数据向量由多个样本数据块组成,每个样本数据块包括变量ID、起始时间、结束时间、样本计数以及样本数据表;其中,以变量ID、起始时间、结束时间与样本数据块在文件的序号为字段建立索引表存储到SQLite数据库中,并对块索引表建立组合索引。
优选地,所述账号数据文件包括:账号文件头、角色项记录与用户项记录;所述账号文件头的属性包括版本号、文件类型、角色个数以及用户个数;所述角色项包括角色名称、描述与权限;所述用户项包括用户名、密码、角色名称、描述与活动状态。
优选地,所述SOE事件表包括以下字段:时间戳、自动主键、事件类型、事件格式、参数长度、事件级别、事件来源、事件描述、事件参数、事件处理标志与事件更新状态。
在其中一个优选的实施例中,所述样本数据的存储步骤为:
S100、实时数据库服务器接收到现场数据接口的样本数据,使用具体变量的样本偏差处理,对需要写入的实时数据库的样本数据进行筛选;所述样本偏差处理,是指对现场数据接口提交的样本数据进行初步筛选,并在筛选后进行压缩服务;
S200、使用具体变量的有损分段线性压缩处理,对需要写入实时数据库的样本偏差筛选后的样本数据进行有损压缩;
S300、使用无损压缩样本数据归档,对需要写入实时数据库的分段线性压缩后样本数据进行无损压缩,并进行最终样本数据存档。
作为优选,所述步骤S300中,对通过所述样本偏差处理和所述有损分段线性压缩处理后样本数据,保存在样本数据队列和写入日志内存映射文件进行存档。
进一步地,所述样本数据写入日志内存映射文件存档后,强制系统将修改过的数据部分或全部重新写入磁盘映像的日志文件中;所述样本数据保存在样本数据队列后,当样本数据队列的样本数据大于64条时,将最先储存的64条样本数据保存在样本数据内存映射文件中,并强制系统将修改过的数据部分或全部重新写入磁盘映像的样本数据文件中,从而可确保所有的数据更新能及时保存到磁盘,防止数据丢失。
进一步地,所述处理后的样本数据还通过SOE事件判断处理,当处理后的样本数据不在具体变量的上限与下限范围内,则组织SOE事件记录,并存储SOE事件记录到SQLite数据库中的SOE事件中,且对SOE事件建立组合索引。
进一步地,所述具体变量的有损分段线性压缩处理与SOE事件判断处理所需要的具体变量数据通过从变量数据内存映射文件中读取具体变量数据;变量数据内存映射文件与变量数据文件进行磁盘映射;读取具体变量数据需要变量相对位置数据,所述变量相对位置数据通过系统服务器启动加载,或者通过客户端导入变量时追加具体的变量相对位置数据导入。
本发明提供的实时数据库文件存储方法,其具有快速的样本数据读写速度,并可满足快速、高效地进行存储、检索和压缩的要求。
附图说明
图1是本发明实施例所述方法的流程结构示意图。
图2为本发明优选实施例的实时数据库的样本数据存储示意图。
图3为本发明另一优选实施例的实时数据库的样本数据存储示意图。
图4本发明实施例中所述变量数据文件的结构示意图。
图5本发明实施例中所述样本数据文件的结构示意图。
图6-9本发明实施例中所述实时数据库的账号管理功能的结构示意图。
图10本发明实施例中所述账号数据文件的结构示意图。
具体实施方式
为了便于本领域技术人员的理解,以下结合附图和具体实施例对本发明作进一步详细描述。
一种实时数据库文件存储方法,所述方法包括:
所有变量数据、样本数据、账号数据以及SOE事件数据通过文件存储,分别保存在变量数据文件、样本数据文件、账号数据文件以及SOE事件SQLite数据库SOE事件表中;
对所述样本数据文件进行分块,每块保存相同变量样本数据,对块建立索引,并保存到SQLite数据库中的块索引表中,并对块索引表建立组合索引;
对SOE事件建立SOE事件表,保存SOE事件记录到SQLite数据库中的SOE事件表中,并对SOE事件表建立组合索引;
所述变量数据文件、样本数据文件以及账号数据文件均通过内存映射文件的方式读取和存储数据。
以下以样本数据的具体存储方法为例作详细的说明,如附图1所示,所述样本数据的存储步骤为:
S100、实时数据库服务器接收到现场数据接口的样本数据,使用具体变量的样本偏差处理,对需要写入的实时数据库的样本数据进行筛选;
S200、使用具体变量的有损分段线性压缩处理,对需要写入实时数据库的样本偏差筛选后的样本数据进行有损压缩;
S300、使用无损压缩样本数据归档,对需要写入实时数据库的分段线性压缩后样本数据进行无损压缩,并进行最终样本数据存档。
本实施例中,步骤S100中所述的样本偏差处理,是指对现场数据接口提交的样本数据进行初步筛选,并在筛选后进行压缩服务。本实施例中的现场数据接口具备偏差处理功能,对于具备偏差处理功能现场数据接口可以关闭实时库提供的偏差处理功能。所述样本偏差用于限制两个记录值之间的差值。当新来的数据值时标差大于最小偏差周期且偏差大于等于样本偏差时不能丢弃。当两个连续记录时间差小于最小偏差周期时丢弃。当连续两个记录值的时间差大于等于最大偏差周期时或者最大偏差周期时间没有来新数据时,不能丢弃,需要强制提交记录给压缩处理。样本偏差、最小偏差周期、最大偏差周期配合使用,当两条记录时间差在最小偏差周期和最大偏差周期之间时才计算偏差,根据偏差结果决定是否丢弃。否则按上述最小偏差周期和最大偏差周期的筛选方式处理。所述样本偏差、最小偏差周期、最大偏差周期均为变量的偏差属性,如果不需要样本偏差处理,只需将变量偏差属性最小偏差周期和最大偏差周期同时配置为0即可。
本实施例中,在步骤S200中,在有损分段线性压缩处理中,分段线性压缩的原理是截取某一段连续时间的压缩模式。工程值以时间为X轴的线性函数f(t)。当计算的f(t)值和该点的实际值偏差小于指定的压缩偏差时,该点可以不存盘。压缩偏差在绝对偏差压缩方式时表示的是绝对值偏差,在百分比偏差压缩模式时是偏差百分数。3个点及以上才能开始分段线性压缩。如果配置的是百分比压缩精度,则偏差按百分比计算。如果配置的是绝对精度,则偏差按绝对值计算。该配置决定压缩偏差计算和后面的例外偏差计算的方式。两个连续的待压缩点之间时间差小于最小压缩周期都会抛弃。当长时间不来新数据的情况下,在最大压缩周期到来时强制转换为样本值提交历史存盘。
而在步骤S300中,对需要写入实时数据库的分段线性压缩后样本数据进行无损压缩,是因为自定义类型数据不能做有损压缩,只有无损压缩,适合用于不频繁存储参数配置、计算结果,不适合用于保存频繁插入和追加记录的现场实时数据。而通过定义变量,在满足变量值精度范围的条件下,尽量使用短字节数的类型,这样可节约磁盘空间。
作为优选的实施例,在所述步骤S300中,对通过现场数据接口中的样本数据进行所述具体变量的样本偏差处理和所述具体变量的有损分段线性压缩处理后的样本数据,保存在样本数据队列和写入日志内存映射文件进行存档,如附图2所示,附图2为本发明优选实施例的实时数据库的样本数据存储示意图。在本实施例中,只有通过所述具体变量的样本偏差处理和具体变量的有损分段线性压缩处理后,所述样本数据才会被保存。另外,在将上述样本数据写入样本数据队列的同时,还会将该样本数据写入日志内存映射文件存档。在使用日志内存映射文件时,为了提高速度,系统将文件的数据页面进行高速缓存,而且在处理文件映射视图时不立即更新文件的磁盘映像。
作为优选,所述样本数据写入日志内存映射文件存档后,强制系统将修改过的数据部分或全部重新写入磁盘映像的日志文件中;所述样本数据保存在样本数据队列后,当样本数据队列的样本数据大于64条时,将最先储存的64条样本数据保存在样本数据内存映射文件中,并强制系统将修改过的数据部分或全部重新写入磁盘映像的样本数据文件中,从而可确保所有的数据更新能及时保存到磁盘,防止数据丢失。实际应用时,当样本数据队列的样本数据大于64条时,存储线程可以申请临界区对象,当申请到临界区对象后,存储线程最先保存的64条样本数据保存到样本数据内存映射文件;当保存结束后,如果将样本数据线程申请到临界区对象,可以往样本数据队列追加样本数据。这样既能保证性能,又能保证样本数据存储和样本数据追加都能得到及时响应。
在其中一个较佳的实施例中,所述步骤还包括,对存储的样本数据进行分块,每块保存相同的变量样本数据,同时对块建立索引,并保存到SQLite数据库中的样本数据块索文件中,如附图2所示。
如附图2和附图3所示,所述处理后的样本数据还通过SOE事件判断处理,当处理后的样本数据不在具体变量的上限与下限范围内,则组织SOE事件记录,并存储SOE事件记录到SQLite数据库中的SOE事件中,且对SOE事件建立组合索引。所述SOE事件记录,即事件顺序记录,例如,当电力设备发生遥信变位如开关变位时,电力保护设备或智能电力仪表会自动记录下变位时间、变位原因、开关跳闸时相应的遥测量值(如相应的三相电流、有功功率等),形成SOE事件记录,以便于事后分析。
如附图3所示,所述具体变量的有损分段线性压缩处理与SOE事件判断处理所需要的具体变量数据通过从变量数据内存映射文件中读取具体变量数据;变量数据内存映射文件与变量数据文件进行磁盘映射;读取具体变量数据需要变量相对位置数据,所述变量相对位置数据通过系统服务器启动加载,或者通过客户端导入变量时追加具体的变量相对位置数据导入。
如附图4所示,在其中一个优选的实施例中,所述变量数据文件包括:变量数据文件头50和变量数据向量51;所述变量文件头50,包括:版本号、文件类型、变量个数等属性;所述变量数据向量51,由多个变量项52组成,变量项52个数可以根据需要配置,最多支持100万个变量;所述变量项52,其包括变量ID、数据类型、变量类型、压缩类型、压缩精度、变量名称、描述、工程单位、小数位数、有效位数、是否存盘、下限、上限、样本偏差、最小样本偏差时间、最大样本偏差时间、最小压缩时间间隔(单位秒)、最大压缩时间间隔(单位秒)等任意一个或任意多个属性(变量项属性按照在结构体空间次序排列)。其中,属性变量ID用于变量项物理位置定位与具体变量数据块检索;属性数据类型与变量类型用于数据存储和数据解释;压缩类型、压缩精度、样本偏差、最小样本偏差时间、最大样本偏差时间、最小压缩时间间隔与最大压缩时间间隔用于样本偏差筛选和有损分段线性压缩处理;属性描述用于对具体变量进行描述;属性小数位数用于浮点数据类型样本数据在展示显示的小数位数;属性是否存盘用于样本存盘判断,对于系统变量和一些不需要存盘的变量设置为0将不存盘;属性下限与上限用于产生SOE事件记录。
如附图5所示,在其中一个优选的实施例中,所述样本数据文件53包括:样本数据文件头54、样本数据块向量55和样本数据文件尾56;一般内存映射文件的粒度位64K,根据经验以一个粒度的1/16,也就是4k固定为样本数据块大小;所述样本数据文件头54包括:版本号,文件类型与时间戳等属性;所述样本数据向量55,由多个样本数据块57组成,每个样本数据块57包括变量ID、起始时间、结束时间、样本计数与样本数据表58;以变量ID、起始时间、结束时间与样本数据块在文件的序号为字段建立索引表存储到SQLite数据库中,并对块索引表建立组合索引,每当申请一个样本数据块时,就往索引表添加一条记录;所述样本数据表58由多个普通样本数据59或自定义样本数据60组成,普通样本数据59的数据类型为普通数据类型,包括:时间戳、数据质量、数据值;自定义样本数据60的数据类型根据程序定义,需要自解释,包括:时间戳、数据质量、数据长度、数据值。所述样本数据文件尾56包括文件类型、版本号、时间戳与块向量大小计数,样本数据文件尾存储在块向量大小后百个样本数据块整数位置,这样保证实时存储块向量大小计数时不会移动太远的磁盘位置;当样本数据块增加时,通过计算新的样本数据文件尾存储位置,再进行存储;当重启数据服务时在百个样本数据块索引位置进行检索,就能找到样本数据文件尾。所述块向量大小计数用于块个数统计,连续存储了3份,当其中两份块向量大小计数相等时,以这两份块向量大小计数值为当前样本数据块个数,当3份块向量大小计数均不相等时,说明在保存第2份块向量大小计数时出错,第1份保存完整准确,以第1份块向量大小计数值为当前样本数据块个数。当异常退出后重启,还能通过访问日志文件,将之前缓存中未保存的数据重新保存到样本数据文件。
如图5所示,所述样本数据文件53随着样本数据块向量55的大小不断增加,可以通过内存映射文件接口自动更改的样本数据文件53物理大小,而文件的原有数据不变,可以在原有文件的基层上增大内存映射文件粒度大小(一般为64K)的整数倍。
本发明实施例中,所述实时数据库具有账号管理功能,具体如附图6-图9所示,账号管理功能(突然出现)包括读取角色或用户31、添加角色或用户36、删除角色或用户40,以及修改用户密码42。所述读取角色或用户31功能通过角色或者用户名称30与角色或者用户的相对位置数据32访问账号内存映射文件34读取角色或者用户37;账号内存映射文件34再与账号数据文件35进行磁盘映射;读取角色或者用户31需要角色或者用户相对位置数据32,系统服务器启动加载33角色或者用户相对位置数据32,或者客户端在添加角色或者用户36时追加角色或者用户相对位置数据32。所述添加角色或者用户36功能将角色或者用户38写入到账号内存映射文件34的一块可用的文件位置,账号内存映射文件34再与账号数据文件35进行磁盘映射,同时将这块可用的文件相对位置保存到角色或者用户的相对位置数据32;所述删除角色或用户40功能通过角色或者用户名称39与角色或者用户的相对位置数据32访问账号内存映射文件34删除角色或者用户40;账号内存映射文件34再与账号数据文件35进行磁盘映射;删除角色或者用户40需要角色或者用户相对位置数据32,系统服务器启动加载33角色或者用户相对位置数据32,或者客户端在添加角色或者用户36时追加角色或者用户相对位置数据32。所述修改用户密码功能通过用户名称、密码与新密码41与角色或者用户的相对位置数据32访问账号内存映射文件34修改用户密码42;账号内存映射文件34再与账号数据文件35进行磁盘映射。
如图10所示,本发明实施例中所述的账号数据文件43包括:账号文件头44、角色向量45与用户向量46;所述变量文件头44包括:版本号、文件类型、角色个数与用户个数等属性;所述的角色向量45,由多个角色项47组成,最多包含64个角色项;所述用户向量46,由多个用户项组成,最多支持1024个用户项48;所述角色项47包括角色名称、描述与权限;所述用户项48包括:用户名、密码、角色名称、描述与活动状态;属性活动状态用于激活用户。
本发明实施例中,由于变量数据与账号数据的数据量较小,且其数据存储方法与样本数据的存储方法类似,所以在此不再对其具体的存储步骤进行赘述。
另外,对于所述SOE事件表,其包括以下字段:时间戳、自动主键、事件类型、事件格式、参数长度、事件级别、事件来源、事件描述、事件参数、事件处理标志与事件更新状态。由于SOE事件记录数据量较小,时效性要求不高,因此SOE事件记录直接通过SQLite数据库存储。
与现有技术相比,本发明具有以下优点:
(1)所有变量数据、样本数据以及账号数据通过文件存储,并通过内存映射文件的方式读取和存储数据,方便实用地解决大文件的读取和存储数据的需求;(2)通过内存映射文件的方式读取和存储数据,有效解决多个线程(或者多个本地进程)间数据共享的问题;(3)对样本数据文件进行了分块,并对块索引进行存储,并将块索引存储到SQLite数据库中块索引表中,并对块索引表建立组合索引,可以支持高达2TB大小的数据库,每个数据库都是以单个文件的形式存在,且这些数据都是以B-Tree的数据结构形式存储在磁盘上,可有效减少磁盘读写次数;(4)通过采用SQLite数据库存储块索引,在事务处理方面,SQLite通过数据库级上的独占性和共享锁来实现独立事务处理,从而可以在同一时间从同一数据库读取数据。而且采用SQLite数据库存储数据块索引,具有简单实用、性能稳定性好等优点;(5)通过SQLite与内存映射文件技术在实时数据库结合,不仅发挥了各自的优势,而且弥补了相互的缺点,如可快速存储和检索样本数据块索引,内存映射文件的方式读取和存储样本数据在容量和实时性方面表现优越等。
上述实施例为本发明的较佳的实现方式,并非是对本发明的限定,在不脱离本发明的发明构思的前提下,任何显而易见的替换均在本发明的保护范围之内。
Claims (10)
1.一种实时数据库文件存储方法,其特征在于,所述方法包括:
所有变量数据、样本数据、账号数据以及SOE事件数据通过文件存储,分别保存在变量数据文件、样本数据文件、账号数据文件以及SOE事件SQLite数据库SOE事件表中;
对所述样本数据文件进行分块,每块保存相同变量样本数据,对块建立索引,并保存到SQLite数据库中的块索引表中,并对块索引表建立组合索引;
对SOE事件建立SOE事件表,保存SOE事件记录到SQLite数据库中的SOE事件表中,并对SOE事件表建立组合索引;
所述变量数据文件、样本数据文件以及账号数据文件均通过内存映射文件的方式读取和存储数据。
2.根据权利要求1所述的方法,其特征在于,所述变量数据文件包括:变量数据文件头和变量数据向量;所述变量文件头的属性包括:版本号、文件类型以及变量个数;所述变量数据向量由多个变量项组成,所述变量项的属性包括变量ID、数据类型、变量类型、压缩类型、压缩精度、变量名称、描述、工程单位、小数位数、有效位数、是否存盘、下限、上限、样本偏差、最小样本偏差时间、最大样本偏差时间、最小压缩时间间隔以及最大压缩时间间隔中的任意一个属性或任意多个属性。
3.根据权利要求1所述的方法,其特征在于,所述样本数据文件包括:样本数据文件头、样本数据块向量以及样本数据文件尾;
所述样本数据文件头的属性包括版本号、文件类型以及时间戳;
所述样本数据向量由多个样本数据块组成,每个样本数据块包括变量ID、起始时间、结束时间、样本计数以及样本数据表;其中,以变量ID、起始时间、结束时间与样本数据块在文件的序号为字段建立索引表存储到SQLite数据库中,并对块索引表建立组合索引。
4.根据权利要求1所述的方法,其特征在于,所述账号数据文件包括:账号文件头、角色项记录与用户项记录;
所述账号文件头的属性包括版本号、文件类型、角色个数以及用户个数;所述角色项包括角色名称、描述与权限;所述用户项包括用户名、密码、角色名称、描述与活动状态。
5.根据权利要求1所述的方法,其特征在于,所述SOE事件表包括以下字段:时间戳、自动主键、事件类型、事件格式、参数长度、事件级别、事件来源、事件描述、事件参数、事件处理标志与事件更新状态。
6.根据权利要求1~5中任意一项所述的方法,其特征在于,所述样本数据的存储步骤为:
S100、实时数据库服务器接收到现场数据接口的样本数据,使用具体变量的样本偏差处理,对需要写入的实时数据库的样本数据进行筛选;
S200、使用具体变量的有损分段线性压缩处理,对需要写入实时数据库的样本偏差筛选后的样本数据进行有损压缩;
S300、使用无损压缩样本数据归档,对需要写入实时数据库的分段线性压缩后样本数据进行无损压缩,并进行最终样本数据存档。
7.根据权利要求6所述的方法,其特征在于:所述步骤S300中,对通过所述样本偏差处理和所述有损分段线性压缩处理后样本数据,保存在样本数据队列和写入日志内存映射文件进行存档。
8.根据权利要求7所述的方法,其特征在于:所述样本数据写入日志内存映射文件存档后,强制系统将修改过的数据部分或全部重新写入磁盘映像的日志文件中;所述样本数据保存在样本数据队列后,当样本数据队列的样本数据大于64条时,将最先储存的64条样本数据保存在样本数据内存映射文件中,并强制系统将修改过的数据部分或全部重新写入磁盘映像的样本数据文件中,从而可确保所有的数据更新能及时保存到磁盘,防止数据丢失。
9.根据权利要求8所述的方法,其特征在于:所述处理后的样本数据还通过SOE事件判断处理,当处理后的样本数据不在具体变量的上限与下限范围内,则组织SOE事件记录,并存储SOE事件记录到SQLite数据库中的SOE事件中,且对SOE事件建立组合索引。
10.根据权利要求9所述的方法,其特征在于:所述具体变量的有损分段线性压缩处理与SOE事件判断处理所需要的具体变量数据通过从变量数据内存映射文件中读取具体变量数据;变量数据内存映射文件与变量数据文件进行磁盘映射;读取具体变量数据需要变量相对位置数据,所述变量相对位置数据通过系统服务器启动加载,或者通过客户端导入变量时追加具体的变量相对位置数据导入。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711398848.4A CN107967360A (zh) | 2017-12-22 | 2017-12-22 | 一种实时数据库文件存储方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711398848.4A CN107967360A (zh) | 2017-12-22 | 2017-12-22 | 一种实时数据库文件存储方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107967360A true CN107967360A (zh) | 2018-04-27 |
Family
ID=61994716
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711398848.4A Pending CN107967360A (zh) | 2017-12-22 | 2017-12-22 | 一种实时数据库文件存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107967360A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109271206A (zh) * | 2018-08-24 | 2019-01-25 | 晶晨半导体(上海)股份有限公司 | 一种异常现场的内存压缩和保存方法 |
CN110888934A (zh) * | 2019-11-12 | 2020-03-17 | 中核控制系统工程有限公司 | 一种基于散点的大数据存储方法 |
CN111061802A (zh) * | 2019-12-26 | 2020-04-24 | 宁波三星医疗电气股份有限公司 | 一种电力数据管理处理方法、装置及存储介质 |
CN111159106A (zh) * | 2019-12-30 | 2020-05-15 | 亚信科技(中国)有限公司 | 一种数据查询方法及装置 |
CN112791415A (zh) * | 2021-01-26 | 2021-05-14 | 广州心源互动科技有限公司 | 一种游戏数据的存盘方法和装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1564158A (zh) * | 2004-04-12 | 2005-01-12 | 南京大学 | 实时数据库建模、存储和访问方法 |
CN101639848B (zh) * | 2009-06-01 | 2011-06-01 | 北京四维图新科技股份有限公司 | 一种空间数据引擎及应用其管理空间数据的方法 |
CN102184226A (zh) * | 2011-05-09 | 2011-09-14 | 河海大学 | 一种实时数据库的构建方法和数据检索方法 |
US20130006982A1 (en) * | 2009-09-25 | 2013-01-03 | Ming Sun | Storing Method of Performance Data and System Thereof |
CN103136202A (zh) * | 2011-11-22 | 2013-06-05 | 上海麦杰科技股份有限公司 | 实时数据库中动态预测有损压缩及解压的方法 |
CN103336828A (zh) * | 2013-07-05 | 2013-10-02 | 深圳市康拓普信息技术有限公司 | 实时数据库读取及写入方法 |
CN104331446A (zh) * | 2014-10-28 | 2015-02-04 | 北京临近空间飞行器系统工程研究所 | 一种基于内存映射的海量数据预处理方法 |
CN104504105A (zh) * | 2014-12-30 | 2015-04-08 | 青岛海信网络科技股份有限公司 | 一种实时数据库的存储方法 |
-
2017
- 2017-12-22 CN CN201711398848.4A patent/CN107967360A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1564158A (zh) * | 2004-04-12 | 2005-01-12 | 南京大学 | 实时数据库建模、存储和访问方法 |
CN101639848B (zh) * | 2009-06-01 | 2011-06-01 | 北京四维图新科技股份有限公司 | 一种空间数据引擎及应用其管理空间数据的方法 |
US20130006982A1 (en) * | 2009-09-25 | 2013-01-03 | Ming Sun | Storing Method of Performance Data and System Thereof |
CN102184226A (zh) * | 2011-05-09 | 2011-09-14 | 河海大学 | 一种实时数据库的构建方法和数据检索方法 |
CN103136202A (zh) * | 2011-11-22 | 2013-06-05 | 上海麦杰科技股份有限公司 | 实时数据库中动态预测有损压缩及解压的方法 |
CN103336828A (zh) * | 2013-07-05 | 2013-10-02 | 深圳市康拓普信息技术有限公司 | 实时数据库读取及写入方法 |
CN104331446A (zh) * | 2014-10-28 | 2015-02-04 | 北京临近空间飞行器系统工程研究所 | 一种基于内存映射的海量数据预处理方法 |
CN104504105A (zh) * | 2014-12-30 | 2015-04-08 | 青岛海信网络科技股份有限公司 | 一种实时数据库的存储方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109271206A (zh) * | 2018-08-24 | 2019-01-25 | 晶晨半导体(上海)股份有限公司 | 一种异常现场的内存压缩和保存方法 |
CN110888934A (zh) * | 2019-11-12 | 2020-03-17 | 中核控制系统工程有限公司 | 一种基于散点的大数据存储方法 |
CN111061802A (zh) * | 2019-12-26 | 2020-04-24 | 宁波三星医疗电气股份有限公司 | 一种电力数据管理处理方法、装置及存储介质 |
CN111159106A (zh) * | 2019-12-30 | 2020-05-15 | 亚信科技(中国)有限公司 | 一种数据查询方法及装置 |
CN111159106B (zh) * | 2019-12-30 | 2023-04-07 | 亚信科技(中国)有限公司 | 一种数据查询方法及装置 |
CN112791415A (zh) * | 2021-01-26 | 2021-05-14 | 广州心源互动科技有限公司 | 一种游戏数据的存盘方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107967360A (zh) | 一种实时数据库文件存储方法 | |
CA2420214C (en) | Data processing method and apparatus | |
CN103366015B (zh) | 一种基于Hadoop的OLAP数据存储与查询方法 | |
CN101127034B (zh) | 数据组织、查询、呈现、存档、恢复、删除、提炼方法及装置和系统 | |
CN104504116B (zh) | 一种实时数据库的存储方法 | |
CN102214176B (zh) | 超大维表的切分与表连接方法 | |
CN104199816B (zh) | 单独可访问数据单元的管理存储 | |
CN105989129B (zh) | 实时数据统计方法和装置 | |
CN104504105B (zh) | 一种实时数据库的存储方法 | |
US7933932B2 (en) | Statistics based database population | |
US20140089258A1 (en) | Mail indexing and searching using hierarchical caches | |
CN101566986A (zh) | 联机事务处理中的数据处理方法和装置 | |
CN105653609A (zh) | 基于内存的数据处理方法及装置 | |
CN107577436A (zh) | 一种数据存储方法及装置 | |
US7302442B2 (en) | Method for recording, identification, selection, and reporting network transversal paths | |
US11777983B2 (en) | Systems and methods for rapidly generating security ratings | |
JP7153420B2 (ja) | データベース中にグラフ情報を記憶するためのb木使用 | |
Jain et al. | Refreshing datawarehouse in near real-time | |
CN107463695A (zh) | 一种数据存储的方法及装置 | |
CN109947729A (zh) | 一种实时数据分析方法及装置 | |
CN105786877B (zh) | 一种数据存储方法、系统及查询方法 | |
CN113901279A (zh) | 一种图数据库的检索方法和装置 | |
CN107368545A (zh) | 一种基于MerkleTree变形算法的去重方法及装置 | |
CN107894875B (zh) | 一种rtu数据存储方法 | |
Huang et al. | An approach to incremental deep web crawling based on incremental harvest model |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180427 |
|
RJ01 | Rejection of invention patent application after publication |