CN104504105B - 一种实时数据库的存储方法 - Google Patents

一种实时数据库的存储方法 Download PDF

Info

Publication number
CN104504105B
CN104504105B CN201410842334.3A CN201410842334A CN104504105B CN 104504105 B CN104504105 B CN 104504105B CN 201410842334 A CN201410842334 A CN 201410842334A CN 104504105 B CN104504105 B CN 104504105B
Authority
CN
China
Prior art keywords
data
memory table
history data
file
written
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.)
Active
Application number
CN201410842334.3A
Other languages
English (en)
Other versions
CN104504105A (zh
Inventor
廖常斌
万思军
刘东海
刘见
宋艳荣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qingdao Hisense Network Technology Co Ltd
Original Assignee
Qingdao Hisense Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Qingdao Hisense Network Technology Co Ltd filed Critical Qingdao Hisense Network Technology Co Ltd
Priority to CN201410842334.3A priority Critical patent/CN104504105B/zh
Publication of CN104504105A publication Critical patent/CN104504105A/zh
Application granted granted Critical
Publication of CN104504105B publication Critical patent/CN104504105B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种实时数据库的存储方法,包括:使用有损压缩算法对历史数据过滤;历史数据通过有损压缩的例外检查时,将历史数据写入当前内存表和操作日志缓冲区;当前内存表满时,将当前内存表中的历史数据压缩后写入到分钟级历史数据文件中,申请一个新内存表作为当前内存表;合并线程在每天预设时间将多个分钟级历史数据文件合并为日级历史数据文件,在每月预设时间将多个日级历史数据文件合并为月级历史数据文件,在每年预设时间将多个月级历史数据文件合并为年级历史数据文件。本发明支持多核优化、固态硬盘优化,采用文件块结构设计,保证数据写入全顺序操作;本发明具有更快的历史数据读写速度,满足综合监控系统对历史数据的处理的需求。

Description

一种实时数据库的存储方法
技术领域
本发明涉及实时数据库技术,特别涉及一种实时数据库的存储方法。
背景技术
目前,在很多领域中一般使用关系数据库存贮历史数据。然而,在很多高频采样、海量数据的应用场景(例如,轨道交通综合监控)下,关系数据库在读写性能和存贮容量上都遇到了瓶颈,难以满足综合监控系统对历史数据处理的需求。以轨道交通综合监控领域为例,报表统计、事故反演、培训仿真等操作都需要处理海量的历史运营数据,因此,综合监控系统对历史数据处理的要求也越来越高,关系数据库也越来越难以满足上述的要求。
为了解决上述的问题,在现有技术中开始使用实时数据库系统对系统的历史数据进行相应的处理。实时数据库系统是开发工业监控系统、数据采集系统等的支撑系统,能够解决行业内历史数据处理的性能和容量瓶颈,因此在流程行业中大量使用了实时数据库系统。
时序数据库,全称为时间序列数据库,是实时数据库的另一种名称。在本发明中,时序数据库与实时数据库所指的对象完全一样。主要用于指处理带时间标签(按照时间的顺序变化,即时间序列化)的数据,带时间标签的数据也称为时间序列数据。
时间序列数据主要由轨道交通行业、电力行业、化工行业等各类型实时监测、检查与分析设备所采集、产生的数据,这些工业数据的典型特点是:产生频率快(每一个监测点一秒钟内可产生多条数据)、严重依赖于采集时间(每一条数据均要求对应唯一的时间)、测点多信息量大(常规的实时监测系统均有成千上万的监测点,监测点每秒钟都产生数据,每天产生几十GB的数据量)。由上可知,基于时间序列数据的特点,关系型数据库无法满足对时间序列数据的有效存储与处理,必须使用实时数据库对上述的时间序列历史数据进行存储和处理。
时间序列历史数据,如工业监控领域的模拟量历史数据,一般是由如下四元组构成:测点ID、时间戳、质量戳、值。实时数据库的历史数据中可以存贮多个测点(数量从1万到1000万)的海量时间序列历史数据。
另外,在现有技术中,硬盘是一种常用的用于存储数据的介质。现有技术中常用的硬盘一般有两种:机械硬盘和固态硬盘(Solid State Drive)。
机械硬盘即为传统普通硬盘,主要由:盘片,磁头,盘片转轴及控制电机,磁头控制器,数据转换器,接口,缓存等几个部分组成。机械硬盘中所有的盘片都装在一个旋转轴上,每张盘片之间是平行的,在每个盘片的存储面上有一个磁头,所有的磁头联在一个磁头控制器上,由磁头控制器负责各个磁头的运动。磁头可沿盘片的半径方向运动,加上盘片每分钟几千转的高速旋转,磁头就可以定位在盘片的指定位置上进行数据的读写操作。
固态硬盘是由控制单元和存储单元(FLASH芯片)组成,简单的说就是用固态电子存储芯片阵列而制成的硬盘,固态硬盘的接口规范和定义、功能及使用方法上与机械硬盘相同,比机械硬盘读写速度快,但成本比机械硬盘要高。目前成本较高
在对数据进行读写时,机械硬盘一次读写的时间由两个部分组成:读写时间=硬盘寻道时间+数据读写时间。
机械硬盘有多个磁盘片组成,每个磁盘又由多个同心的磁道构成,磁头移动到目标磁道的时间就是寻道时间(seek time),一般的硬盘平均寻道时间是10ms,而顺序读写1000K数据需要20ms。即一次顺序读写1000K数据需要30ms(10ms+20ms),而如果随机读写1000K数据,假定每次读写1K,读写1K数据需要10ms,则需要20000ms(1000*10ms+1000*10ms),可以看出,磁盘随机读写比磁盘顺序读写慢几个数量级。
在现有技术中,常规的关系数据库可以采用B+树索引结构。B+树索引结构追求尽可能少地减少磁盘读写次数,但不保证建立索引时的磁盘顺序读写,特别在树平衡分裂时,会有多交随机读写。许多实时数据库也使用了b+树索引结构,例如:申请号为CN102402602A,发明名称为“一种实时数据库的B+树索引方法及装置”的中国专利申请;申请号为CN103020078A,发明名称为“分布式实时数据库数据层次索引方法”的中国专利申请等,而申请号为CN102654863A,发明名称为“一种实时数据库历史数据组织管理方式”的中国专利申请中,虽然采用了改进型B+树索引结构,但是仍不能避免随机写操作。
现有技术中也有部分实时数据库没有采用b+树索引结构,而是针对时间序列数据的特征设计特定的索引结构,例如:申请号为CN102184226A,发明名称为“一种实时数据库的构建方法和数据检索方法”的中国专利申请;申请号为CN201010235099,发明名称为“一种使用类聚簇的实时数据库存储方法”的中国专利申请;申请号为CN103593409A,发明名称为“实时数据库检索方法及检索系统”的中国专利申请;申请号为CN103336828A,发明名称为“实时数据库读取及写入方法”的中国专利申请;申请号为CN103853752A,发明名称为“管理时间序列数据库的方法和装置”的中国专利申请;申请号为CN102890722A,发明名称为“应用于时序历史数据库的索引方法”的中国专利申请等所采用的是自定义索引结构,但是在数据插入时仍然会产生随机写操作。
另外,申请号为CN1564158A,发明名称为“实时数据库建模、存储和访问方法”的中国专利申请中采用了直接磁盘扇区读写方式,不需要建立索引。但是,该方法不能利用现在操作系统的文件系统特性,操作太底层,不能应对扇区故障等问题,只能应用于嵌入式系统。
此外,现有技术中的现代数据库一般均使用锁或多版本技术来实现并发读写,但是,采用锁或多版本技术的读写并发程度并不是非常高。现有技术中,申请号为CN103336828A,发明名称为“实时数据库读取及写入方法”的中国专利申请中提到了一种加锁方式,可有效提高读写性能,但是却不能支持多写并发操作。
由此可知,现有技术中的实时数据库的历史数据的存储方法中都或多或少地存在上述的一些问题,因此难以满足对实时数据库的历史数据的存储的需要。
发明内容
有鉴于此,本发明提供一种实时数据库的存储方法,从而可以具有更快的历史数据读写速度,满足综合监控系统对历史数据的处理的需求。
本发明的技术方案具体是这样实现的:
一种实时数据库的存储方法,该方法包括:
使用有损压缩算法对需要写入实时数据库的历史数据进行过滤;
当所述历史数据通过所述有损压缩的例外检查时,将所述历史数据写入当前的内存表和操作日志缓冲区;
当当前的内存表满时,将当前的内存表中的历史数据经压缩后写入到当前时刻所对应的分钟级历史数据文件中,申请一个新的内存表,并将所申请的新内存表作为当前的内存表;
合并线程在每天的预设时间将多个分钟级历史数据文件合并为日级历史数据文件,在每月的预设时间将多个日级历史数据文件合并为月级历史数据文件,在每年的预设时间将多个月级历史数据文件合并为年级历史数据文件。
较佳的,所述将所述历史数据写入当前的内存表包括:
当需要将测点的历史数据写入到内存表中时,先获取当前内存表中的当前可用位置。
将所述历史数据写入到当前内存表中的当前可用位置中。
当一个历史数据写入完毕后,确定所述内存表中的下一个可用位置,并将所确认的下一个可用位置作为该内存表的当前的可用位置。
较佳的,所述写入到内存表中的历史数据的内容至少包括:
测点标识、时间戳、质量戳和值。
较佳的,按区域和子系统将所述历史数据保存为相应的历史数据文件。
较佳的,所述历史数据文件由多个块构成;
所述块的类型包括:文件尾块、首索引块、索引块和数据块。
较佳的,所述文件尾块的有效内容为固定长度。
较佳的,该方法还进一步包括:
根据所接收的数据查询请求中的传入时间参数,确定对应的历史数据文件;
读取所确定的历史数据文件的文件尾块,确定对应的首索引块;
根据数据查询请求中的测点标识,确定该测点的索引块的位置;。
在所确定的索引块中根据传入时间参数,确定对应的数据块;
在所确定的数据块中查询到与所述传入时间参数对应的测点值。
较佳的,该方法还进一步包括:
所述操作日志缓存区中的操作日志以4K的整数倍为单位写入到操作日志文件中。
较佳的,该方法还进一步包括:
所述当前的内存表中的历史数据以4K的整数倍为单位写入到分钟级历史数据文件中。
较佳的,同时使用固态硬盘和机械硬盘存储历史数据和操作日志文件。
较佳的,所述操作日志文件的写入操作、历史数据文件的写入操作、历史数据文件的合并操作均为顺序读写的操作。
如上可见,在本发明中的实时数据库的存储方法中,在将实时数据库的历史数据写入内存表时,对磁盘文件的操作全部都是顺序操作,而没有随机写操作,因此可以充分利用机械硬盘的顺序操作的高效特性。同时,本发明中的实时数据库的存储方法中在写操作日志和历史数据时,都是以4K的整数倍为单位整块读写,因此可充分利用固态硬盘的高效特性,提高数据读写操作的速度和效率,从而可以在对实时数据库中的历史数据进行读写操作时,获得更快的读写速度。例如,现有技术中的常用实时数据库在非压缩情况下,对历史数据的读写速度一般为每秒5万至10万次;而使用本发明中的实时数据库的存储方法之后,对历史数据的读写速度可达到或超过每秒30万次。
另外,由于在本发明中的实时数据库的存储方法中,是先获取当前内存表中的当前可用位置,然后再将历史数据写入到当前内存表中的当前可用位置中,因此可以支持并发读写,并支持对多个测点的并发写,读写操作之间互不干扰,多个测点写之间也互不干扰,从而可利用现代多核计算机系统的特性,提高实时数据库的并发访问能力。
此外,本发明中的实时数据库的历史数据文件存贮结构可以有效地利用时间序列数据的特点,将历史数据按区域和子系统存贮,每个历史数据文件对应一个固定的时间段,因此可以根据查询时间快速定位到相应的历史数据文件,并可在历史数据文件中快速查找到某测点在某时间的值。例如,通过上述的实时数据库的历史数据查询步骤,可以以最小的定位步骤在历史数据文件中定位到某测点在某时间的值。
附图说明
图1为本发明实施例中的实时数据库的存储方法的流程示意图。
图2为本发明实施例中的实时数据库的存储方法的总体示意图。
图3为本发明实施例中的历史数据写入内存表的示意图。
图4为本发明实施例中的历史数据文件的结构示意图。
图5为本发明实施例中的历史数据文件中的文件尾块的结构示意图。
图6为本发明实施例中的历史数据文件中的首索引块的结构示意图。
图7为本发明实施例中的历史数据文件中的索引块的结构示意图。
图8为本发明实施例中的历史数据文件中的数据块的结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
本实施例提供了一种实时数据库的存储方法。
图1为本发明实施例中的实时数据库的存储方法的流程示意图。图2为本发明实施例中的实时数据库的存储方法的总体示意图。为如图1和图2所示,本发明实施例中的实时数据库的存储方法主要包括如下所述的步骤:
步骤11,使用有损压缩算法对需要写入实时数据库的历史数据进行过滤。
在本发明的技术方案中,当需要将历史数据写入实时数据库时,在将历史数据写入实时数据库之前,首先需要在前端使用有损压缩算法对历史数据进行处理,从而对需要写入实时数据库的历史数据进行过滤。
步骤12,当所述历史数据通过所述有损压缩的例外检查时,将所述历史数据写入当前的内存表和操作日志缓冲区。
由此可知,在本发明的技术方案中,只有通过有损压缩的例外检查时,所述历史数据才会被写入到预设的内存表中。
另外,在将上述历史数据写入上述内存表的同时,还会将该历史数据写入操作日志缓存区。
较佳的,在本发明具体实施例中,本方法还可进一步包括:所述操作日志缓存区中的操作日志以4K的整数倍为单位写入到操作日志文件中,从而便于在出现故障之后能及时恢复数据。
步骤13,当当前的内存表满时,将当前的内存表中的历史数据经压缩后写入到当前时刻所对应的分钟级历史数据文件中,申请一个新的内存表,并将所申请的新内存表作为当前的内存表。
在本发明的技术方案中,每一个时刻都对应一个分钟级历史数据文件,因此可以通过写入线程将当前的内存表中的历史数据经压缩后写入到当前时刻所对应的的分钟级历史数据文件中。同时,还将申请一个新的内存表,并将该新的内存表作为当前的内存表,以便于随后继续写入新的历史数据。
较佳的,在本发明具体实施例中,本方法还可进一步包括:所述当前的内存表中的历史数据以4K的整数倍为单位写入到分钟级历史数据文件中。
较佳的,在本发明具体实施例中,可以同时使用固态硬盘和机械硬盘存储历史数据和操作日志文件。
由于固态硬盘是采用FLASH芯片等存贮历史数据,不需要机械硬盘的寻道时间,因此读写速度比机械硬盘要快得多。但是,固态硬盘的特理特性决定了只有在每次读写时,数据块必须扇区(大小为4K)对齐,且读写整数个扇区时才能达到最高性能,如果每次读写部分扇区,则读写性能会急剧下降。在本发明的实时数据库的存储方法中,由于每次的数据读写操作都是扇区对齐操作(例如,以4K为单位的读写操作),且只读写整数个扇区的数据,因此可以有效地发挥固态硬盘的优点,大大提高数据的读写速度。
步骤14,合并线程定时进行检查,在每天的预设时间将多个分钟级历史数据文件合并为日级历史数据文件,在每月的预设时间将多个日级历史数据文件合并为月级历史数据文件,在每年的预设时间将多个月级历史数据文件合并为年级历史数据文件。
较佳的,在本发明的具体实施例中,上述操作日志文件的写入操作、历史数据文件的写入操作、历史数据文件的合并操作等操作都是顺序读写的操作。
另外,图3为本发明实施例中的历史数据写入内存表的示意图。如图3所示,较佳的,在本发明的具体实施例中,所述将所述历史数据写入当前的内存表可以包括如下所述的步骤:
步骤21,当需要将测点的历史数据写入到内存表中时,先获取当前内存表中的当前可用位置。
步骤22,将所述历史数据写入到当前内存表中的当前可用位置中。
较佳的,在本发明的具体实施例中,所述写入到内存表中的历史数据的内容至少包括:测点标识(ID)、时间戳、质量戳和值。
步骤23,当一个历史数据写入完毕后,确定所述内存表中的下一个可用位置,并将所确认的下一个可用位置作为该内存表的当前的可用位置。这样,当进行下一个历史数据的写入时,可以直接获取到内存表中的当前的可用位置,并进行后续的写入操作。
例如,如图3所示,可以通过如下所述的步骤,将多个测点的历史数据写入到图3中右边的内存表中:
步骤31,增加新历史数据时,首先获取下一个可用位置,并在可用位置上记录下时间戳、质量戳和值。
步骤32,当所增加的新历史数据是测点i的数据时,如果此时测点i的首数据位置的值为空,则在写入所述新历史数据时,将测点i的首数据位置的值更改为内存表的当前可用位置的值。
步骤33,如果此时测点i的尾数据位置的值也为空,则将尾数据位置的值也更改为内存表的当前可用位置的值。
步骤34,如果此时测点i的首数据位置的值不为空,则尾数据位置的值也一定不为空,则将尾数据位置的值的下一数据值作为内存表的下一个可用位置,并在写入该新历史数据之后,将该测点i的尾数据位置的值更改为该历史数据最后一个数据所占用的内存表的位置。
例如,如图3所示,当测点0当前测得的数据为空值(NULL)时,则测点0的首数据位置和尾数据位置均为空值;如果此时测点0新到了一个新数据A,且此时内存表的下一个可用位置为8,则获取内存表中的当前可用位置8,并将内存表的下一个可用位置修改为9,然后在位置8中记录测点0的数据A,并将图3所示的左表中的测点0的首数据位置和尾数据位置都修改为8;如果之后,测点0又测到了一个新数据B,且此时内存表的下一个可用位置为9,则获取该内存表中的当前可用位置9,在位置9中记录测点0的数据B,将内存表的下一个可用位置修改为10,并将图3所示的左表中的测点0的首数据位置和尾数据位置都修改为9;……,依此类推,即可不断将测点0新测到的数据写入到内存表中。
另外,根据图3所示的左表可知,在图3所示的情况下,测点0没有需要写入的数值,因此测点0的首数据位置和尾数据位置均为NULL。测点1在内存表的位置1写入了一个数据,即空值NULL,因此测点1的首数据位置和尾数据位置均为1;测点2在内存表的位置2、3、5分别写入了3个数据,且测点2在内存表中写入的首数据位置为2,尾数据位置为5;测点3在内存表的位置4、6、7分别写入了3个数据,且测点3在内存表中写入的首数据位置为4,尾数据位置为7;依此类推。
较佳的,在本发明的具体实施例中,按区域和子系统将所述历史数据保存为相应的历史数据文件。
图4为本发明实施例中的历史数据文件的结构示意图。如图4所示,较佳的,在本发明的具体实施例中,所述历史数据文件由多个块构成;所述块的类型包括:文件尾块、首索引块、索引块和数据块。
其中,可以将所述文件尾块称为文件尾区,将所述首索引块称为首索引区;将所述索引块和数据块统称为索引+数据区。
较佳的,在本发明的具体实施例中,所述历史数据文件中的块内容包括了上述文件尾块、首索引块、索引块和数据块;所述历史数据文件中还包括:表示所述历史数据文件是否压缩的压缩标识位(例如,长度可以为1位)、表示块类型的块类型标识位(例如,长度可以为7位)以及用于CRC校验的校验位(例如,长度可以为4个字节)。
较佳的,在本发明的具体实施例中,所述文件尾块的有效内容为固定长度(例如,该固定长度为:36字节+5字节)。因此,根据历史数据文件的尺寸大小即可快速定位到文件尾块。较佳的,在本发明的具体实施例中,所述文件尾块中所包括的内容如图5所示。
较佳的,在本发明的具体实施例中,每一个测点标识(ID)都设置有对应的首索引。各个测点标识的首索引都存储在首索引块中,因此,通过对首索引块的查询,即可获知各个测点标识的首索引。
较佳的,在本发明的具体实施例中,所述首索引块中所包括的内容如图6所示。
较佳的,在本发明的具体实施例中,所述索引块中包括:各个数据块的起始时间、位置和尺寸等信息。例如,数据块0的起始时间表是数据块0中数据的最小时间。
较佳的,在本发明的具体实施例中,所述索引块中所包括的内容如图7所示。
较佳的,在本发明的具体实施例中,所述数据块的长度可以预先配置。例如,所述数据块的长度可以是数K。
较佳的,在本发明的具体实施例中,所述数据块中所包括的内容如图8所示。
较佳的,在本发明的具体实施例中,上述图4~图8中所示的数据块中的数据所表示的是最终的数据,在实际存储时,上述数据块会被压缩。
另外,在本发明的技术方案中,还可以根据传入时间参数,定位到当前所需查询的数据存储在哪个历史数据文件上。
例如,较佳的,在本发明的具体实施例中,所述实时数据库的存储方法还可进一步包括:
根据所接收的数据查询请求中的传入时间参数,确定对应的历史数据文件;
读取所确定的历史数据文件的文件尾块,确定对应的首索引块;
根据数据查询请求中的测点标识,确定该测点的索引块的位置;。
在所确定的索引块中根据传入时间参数,确定对应的数据块;
在所确定的数据块中查询到与所述传入时间参数对应的测点值。
综上可知,在本发明中的实时数据库的存储方法中,在将实时数据库的历史数据写入内存表时,对磁盘文件的操作全部都是顺序操作,而没有随机写操作,因此可以充分利用机械硬盘的顺序操作的高效特性。同时,本发明中的实时数据库的存储方法中在写操作日志和历史数据时,都是以4K的整数倍为单位整块读写,因此可充分利用固态硬盘的高效特性,提高数据读写操作的速度和效率,从而可以在对实时数据库中的历史数据进行读写操作时,获得更快的读写速度。例如,现有技术中的常用实时数据库在非压缩情况下,对历史数据的读写速度一般为每秒5万至10万次;而使用本发明中的实时数据库的存储方法之后,对历史数据的读写速度可达到或超过每秒30万次。
本发明中,支持多核优化、固态硬盘优化,采用文件块结构设计,保证数据写入全顺序操作。
另外,由于在本发明中的实时数据库的存储方法中,是先获取当前内存表中的当前可用位置,然后再将历史数据写入到当前内存表中的当前可用位置中,因此可以支持并发读写,并支持对多个测点的并发写,读写操作之间互不干扰,多个测点写之间也互不干扰,从而可利用现代多核计算机系统的特性,提高实时数据库的并发访问能力。
此外,本发明中的实时数据库的历史数据文件存贮结构可以有效地利用时间序列数据的特点,将历史数据按区域和子系统存贮,每个历史数据文件对应一个固定的时间段,因此可以根据查询时间快速定位到相应的历史数据文件,并可在历史数据文件中快速查找到某测点在某时间的值。例如,通过上述的实时数据库的历史数据查询步骤,可以以最小的定位步骤在历史数据文件中定位到某测点在某时间的值。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (9)

1.一种实时数据库的存储方法,其特征在于,该方法包括:
使用有损压缩算法对需要写入实时数据库的历史数据进行过滤;
当所述历史数据通过所述有损压缩的例外检查时,将所述历史数据写入当前的内存表和操作日志缓冲区;
当当前的内存表满时,将当前的内存表中的历史数据经压缩后写入到当前时刻所对应的分钟级历史数据文件中,申请一个新的内存表,并将所申请的新内存表作为当前的内存表;
合并线程在每天的预设时间将多个分钟级历史数据文件合并为日级历史数据文件,在每月的预设时间将多个日级历史数据文件合并为月级历史数据文件,在每年的预设时间将多个月级历史数据文件合并为年级历史数据文件;
所述将所述历史数据写入当前的内存表包括:
当需要将测点的历史数据写入到内存表中时,先获取当前内存表中的当前可用位置;
将所述历史数据写入到当前内存表中的当前可用位置中;
当一个历史数据写入完毕后,确定所述内存表中的下一个可用位置,并将所确认的下一个可用位置作为该内存表的当前的可用位置;
所述操作日志文件的写入操作、历史数据文件的写入操作、历史数据文件的合并操作均为顺序读写的操作。
2.根据权利要求1所述的方法,其特征在于,所述写入到内存表中的历史数据的内容至少包括:
测点标识、时间戳、质量戳和值。
3.根据权利要求1所述的方法,其特征在于:
按区域和子系统将所述历史数据保存为相应的历史数据文件。
4.根据权利要求3所述的方法,其特征在于:
所述历史数据文件由多个块构成;
所述块的类型包括:文件尾块、首索引块、索引块和数据块。
5.根据权利要求4所述的方法,其特征在于:
所述文件尾块的有效内容为固定长度。
6.根据权利要求5所述的方法,其特征在于,该方法还进一步包括:
根据所接收的数据查询请求中的传入时间参数,确定对应的历史数据文件;
读取所确定的历史数据文件的文件尾块,确定对应的首索引块;
根据数据查询请求中的测点标识,确定该测点的索引块的位置;
在所确定的索引块中根据传入时间参数,确定对应的数据块;
在所确定的数据块中查询到与所述传入时间参数对应的测点值。
7.根据权利要求1所述的方法,其特征在于,该方法还进一步包括:
所述操作日志缓存区中的操作日志以4K的整数倍为单位写入到操作日志文件中。
8.根据权利要求7所述的方法,其特征在于,该方法还进一步包括:
所述当前的内存表中的历史数据以4K的整数倍为单位写入到分钟级历史数据文件中。
9.根据权利要求8所述的方法,其特征在于:
同时使用固态硬盘和机械硬盘存储历史数据和操作日志文件。
CN201410842334.3A 2014-12-30 2014-12-30 一种实时数据库的存储方法 Active CN104504105B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410842334.3A CN104504105B (zh) 2014-12-30 2014-12-30 一种实时数据库的存储方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410842334.3A CN104504105B (zh) 2014-12-30 2014-12-30 一种实时数据库的存储方法

Publications (2)

Publication Number Publication Date
CN104504105A CN104504105A (zh) 2015-04-08
CN104504105B true CN104504105B (zh) 2018-08-24

Family

ID=52945503

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410842334.3A Active CN104504105B (zh) 2014-12-30 2014-12-30 一种实时数据库的存储方法

Country Status (1)

Country Link
CN (1) CN104504105B (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105095421A (zh) * 2015-07-14 2015-11-25 南京国电南自美卓控制系统有限公司 一种实时数据库的分布式的存储方法
CN106649722B (zh) * 2016-12-23 2020-09-08 郑州天迈科技股份有限公司 一种监控系统高频数据的存储及查询方法
CN108319602B (zh) * 2017-01-17 2020-10-16 阿里巴巴(中国)有限公司 数据库管理方法及数据库系统
CN107506140A (zh) * 2017-08-16 2017-12-22 郑州云海信息技术有限公司 一种用于存储系统的数据访问方法和系统
CN107807969A (zh) * 2017-10-18 2018-03-16 上海华电电力发展有限公司 用于电厂的新的时间序列数据存储方法
CN107862762A (zh) * 2017-10-27 2018-03-30 天津津航计算技术研究所 一种飞机数据快速采集与存储系统
CN107967360A (zh) * 2017-12-22 2018-04-27 广东雅达电子股份有限公司 一种实时数据库文件存储方法
CN110109915B (zh) * 2018-01-18 2024-01-05 伊姆西Ip控股有限责任公司 用于管理哈希表的方法、设备和计算机程序产品
CN108536736B (zh) * 2018-03-06 2021-06-11 航天东方红卫星有限公司 一种小卫星综合测试系统实时数据库搭建方法及系统
CN108446399B (zh) * 2018-03-29 2021-07-30 重庆大学 一种结构化海量实时数据的动态存储优化方法
CN108629029B (zh) * 2018-05-09 2021-06-29 北京京东尚科信息技术有限公司 一种应用于数据仓库的数据处理方法和装置
CN109033289A (zh) * 2018-07-13 2018-12-18 天津瑞能电气有限公司 一种用于微电网的高频实时数据的存库方法
CN109299108B (zh) * 2018-11-05 2020-05-29 江苏瑞中数据股份有限公司 一种可变频率的wams实时数据库管理方法与系统
CN111782636A (zh) * 2020-06-30 2020-10-16 浙江中控技术股份有限公司 一种数据处理方法及装置
CN114579408A (zh) * 2022-05-05 2022-06-03 西安热工研究院有限公司 一种实时数据库实时方程式的解析系统及方法
CN115840737B (zh) * 2023-02-16 2023-06-13 济南邦德激光股份有限公司 一种基于数据库的分离式日志管理方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102779138A (zh) * 2011-05-13 2012-11-14 上海振华重工(集团)股份有限公司 实时数据的硬盘存取方法
CN104077405A (zh) * 2014-07-08 2014-10-01 国家电网公司 时序类型数据存取方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003296174A (ja) * 2002-03-29 2003-10-17 Nri & Ncc Co Ltd リアルタイムでデータを参照更新するための装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102779138A (zh) * 2011-05-13 2012-11-14 上海振华重工(集团)股份有限公司 实时数据的硬盘存取方法
CN104077405A (zh) * 2014-07-08 2014-10-01 国家电网公司 时序类型数据存取方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于实时数据库系统的历史数据处理;陆会明 等;《电力自动化设备》;20090331;第 29 卷(第 3 期);全文 *

Also Published As

Publication number Publication date
CN104504105A (zh) 2015-04-08

Similar Documents

Publication Publication Date Title
CN104504105B (zh) 一种实时数据库的存储方法
CN104504116B (zh) 一种实时数据库的存储方法
CN103902623B (zh) 用于在存储系统上存取文件的方法和系统
US10255235B2 (en) Database storage system based on jukebox and method using the system
CN103530290B (zh) 数据库间的数据迁移方法和系统
US8225029B2 (en) Data storage processing method, data searching method and devices thereof
US9996557B2 (en) Database storage system based on optical disk and method using the system
CN103605805A (zh) 一种海量时序数据的存储方法
CN107766374B (zh) 一种海量小文件存储读取的优化方法和系统
CN104536908B (zh) 一种面向单机的海量小记录高效存储管理方法
CN107665219A (zh) 一种日志管理方法及装置
CN116257523A (zh) 一种基于非易失存储器的列式存储索引方法及装置
CN103473324A (zh) 基于非结构化数据存储的多维业务属性检索装置及方法
CN102521256B (zh) 高可靠性的实时/历史数据库数据保护方法
CN103500226A (zh) 一种去除敏感数据敏感性的方法及装置
US9710504B2 (en) Data processing and writing method and related apparatus
AU2018345147B2 (en) Database processing device, group map file production method, and recording medium
CN106897174B (zh) 一种针对mysql数据库的碎片恢复方法
CN105956090B (zh) 一种基于i/o自适应的日志文件系统数据存储方法
CN1564158A (zh) 实时数据库建模、存储和访问方法
CN103077187A (zh) 日志管理方法和日志管理系统
Chardin et al. Chronos: a NoSQL system on flash memory for industrial process data
Iwata et al. A simulation result of replicating data with another layout for reducing media exchange of cold storage
CN107330002A (zh) 分布式数据库实现方法及装置
CN103309890A (zh) 一种Linux文件系统与实时数据库索引融合的技术

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant