本发明专利技术公开了一种实时数据库的存储方法。该方法包括:当写入历史数据和历史报警数据时,分别将历史数据和历史报警数据写入对应的内存表和操作日志缓冲区;当当前的内存表满时,将当前的内存表中的历史数据或历史报警数据经压缩后分别写入到分钟级文件中,申请一个新的内存表作为当前的内存表;合并线程定时进行检查,在每天的预设时间将多个分钟级历史数据文件、历史报警数据分别合并为日级历史数据文件、历史报警数据文件;在每月的预设时间将多个日级文件分别合并为月级文件;在每年的预设时间将多个月级文件分别合并为年级文件。通过上述方法,可以同时在实时数据库中存储和访问历史数据和历史报警数据,提高对历史报警数据的存储和访问速度。
【技术实现步骤摘要】
【专利摘要】本专利技术公开了。该方法包括:当写入历史数据和历史报警数据时,分别将历史数据和历史报警数据写入对应的内存表和操作日志缓冲区;当当前的内存表满时,将当前的内存表中的历史数据或历史报警数据经压缩后分别写入到分钟级文件中,申请一个新的内存表作为当前的内存表;合并线程定时进行检查,在每天的预设时间将多个分钟级历史数据文件、历史报警数据分别合并为日级历史数据文件、历史报警数据文件;在每月的预设时间将多个日级文件分别合并为月级文件;在每年的预设时间将多个月级文件分别合并为年级文件。通过上述方法,可以同时在实时数据库中存储和访问历史数据和历史报警数据,提高对历史报警数据的存储和访问速度。【专利说明】
本专利技术涉及实时数据库技术,特别涉及。
技术介绍
目前,在很多领域中一般使用关系数据库存贮历史数据。然而,在很多高频采样、海量数据的应用场景(例如,轨道交通综合监控)下,关系数据库在读写性能和存贮容量上都遇到了瓶颈,难以满足综合监控系统对历史数据处理的需求。以轨道交通综合监控领域为例,报表统计、事故反演、培训仿真等操作都需要处理海量的历史运营数据,因此,综合监控系统对历史数据处理的要求也越来越高,关系数据库也越来越难以满足上述的要求。 为了解决上述的问题,在现有技术中开始使用实时数据库系统对系统的历史数据进行相应的处理。实时数据库系统是开发工业监控系统、数据采集系统等的支撑系统,能够解决行业内历史数据处理的性能和容量瓶颈,因此在流程行业中大量使用了实时数据库系统。 时序数据库,全称为时间序列数据库,是实时数据库的另一种名称。在本专利技术中,时序数据库与实时数据库所指的对象完全一样。主要用于指处理带时间标签(按照时间的顺序变化,即时间序列化)的数据,带时间标签的数据也称为时间序列数据。 时间序列数据主要由轨道交通行业、电力行业、化工行业等各类型实时监测、检查与分析设备所采集、产生的数据,这些工业数据的典型特点是:产生频率快(每一个监测点一秒钟内可产生多条数据)、严重依赖于采集时间(每一条数据均要求对应唯一的时间)、测点多信息量大(常规的实时监测系统均有成千上万的监测点,监测点每秒钟都产生数据,每天产生几十GB的数据量)。由上可知,基于时间序列数据的特点,关系型数据库无法满足对时间序列数据的有效存储与处理,必须使用实时数据库对上述的时间序列历史数据进行存储和处理。 时间序列历史数据,如工业监控领域的模拟量历史数据,一般是由如下四元组构成:测点ID、时间戳、质量戳、值。实时数据库的历史数据中可以存贮多个测点(数量从1万到1000万)的海量时间序列历史数据。 另外,实时数据库也可以存储开关量历史数据,但是实时数据库一般只记录开关量历史数据的变化信息,也是采用与模拟量历史数据同样的四元组构成:测点ID、时间戳、质量戳、值,其中值为开关变位信息。 但是,在实际应用时,使用开关量历史信息并不能完整地表达一条报警信息。例如,一条完整的报警信息一般包含如下内容:报警开始时间、报警类型、报警级别、报警描述、报警消失时间、报警确认时间、报警确认人、报警对应测点、对应设备、所属子系统等等。(以上只是举例说明,实际的系统的报警信息可以采用上述的格式,也可以采用其它的格式)。 由上可知,历史报警数据的类型比模拟量历史数据和开关量历史数据所采用的四元组结构复杂得多,因此对历史报警数据的查询条件也比模拟量历史数据和开关量历史数据复杂得多。在实际应用中的实时数据库系统中,一般采用关系型数据库来保存和处理历史报警数据,即在系统中混合使用实时数据库和关系数据库,其中,使用实时数据库存贮模拟量历史数据和开关量历史数据,采用关系数据库存贮历史报警数据。 在轨道交通综合监控这种高频采样、海量数据的应用场景下,历史报警数据的数量也是海量的,因此关系数据库在历史报警数据的读写性能和存贮容量上也都遇到了瓶颈。另外,在轨道交通综合监控系统中,历史报警数据比模拟量历史数据更为重要,如果能提高历史报警数据的存贮和读写性能,并提供与关系数据库相同的查询和使用方式,将极大拓展实时数据库的应用范围。
技术实现思路
有鉴于此,本专利技术提供,从而可以同时在实时数据库中存储和访问历史数据和历史报警数据,提高对历史报警数据的存储和访问速度。 本专利技术的技术方案具体是这样实现的: ,该方法包括: 当写入历史数据和历史报警数据时,分别将所述历史数据和历史报警数据写入对应的内存表和操作日志缓冲区; 当当前的内存表满时,将当前的内存表中的历史数据或历史报警数据经压缩后分别写入到当前时刻所对应的分钟级历史数据文件或分钟级历史报警数据文件中,申请一个新的内存表,并将所申请的新内存表作为当前的内存表; 合并线程定时进行检查,在每天的预设时间将多个分钟级历史数据文件和分钟级历史报警数据分别合并为日级历史数据文件和日级历史报警数据文件;在每月的预设时间将多个日级历史数据文件和日级历史报警数据文件分别合并为月级历史数据文件和月级历史报警数据文件;在每年的预设时间将多个月级历史数据文件和月级历史报警数据文件分别合并为年级历史数据文件和年级历史报警数据文件。 较佳的,所述将所述历史数据写入当前的内存表包括: 当需要将历史数据或历史报警数据写入到内存表中时,先获取当前内存表中的当前可用位置; 将所述历史数据或历史报警数据写入到当前内存表中的当前可用位置中; 当一个历史数据或历史报警数据写入完毕后,确定所述内存表中的下一个可用位置,并将所确认的下一个可用位置作为该内存表的当前的可用位置。 较佳的,所述写入到内存表中的历史数据的内容至少包括:测点标识、时间戳、质量戳和值; 所述写入到内存表中的历史报警数据的内容至少包括:报警开始时间、报警类型、报警级别、报警描述、报警消失时间、报警确认时间、报警确认人、报警对应测点、对应设备和所属子系统。 较佳的,按区域和子系统将所述历史数据保存为相应的历史数据文件; 按区域和子系统将所述历史报警数据保存为相应的历史报警数据文件。 较佳的,所述历史数据文件由多个块构成;所述块的类型包括:文件尾块、首索引块、索引块和数据块。 较佳的,所述文件尾块的有效内容为固定长度。 较佳的,该方法还进一步包括: 根据所接收的数据查询请求中的传入时间参数,确定对应的历史数据文件; 读取所确定的历史数据文件的文件尾块,确定对应的首索引块; 根据数据查询请求中的测点标识,确定该测点的索引块的位置; 在所确定的索引块中根据传入时间参数,确定对应的数据块; 在所确定的数据块中查询到与所述传入时间参数对应的测点值。 较佳的,所述历史数据文件由多个块构成;所述历史数据文件的块的类型包括:文件尾块、首索引块、索引块和数据块; 所述历史报警数据文件由多个块构成;所述历史报警数据文件的块的类型包括:报警文件尾块、报警索引块、报警过滤块和报警描述块。 较佳的,所述报警文件尾块的有效内容为固定长度。 较佳的,该方法还进一步包括: 用户输入历史报警数据查询请求; 系统根据所接收的历史报警数据查询请求中的开始时间,确定对应的历史报警数据的起始文件; 读取所确定的起始文件的报警文件尾块,确定对应的报警索引块; 对本文档来自技高网...
【技术保护点】
一种实时数据库的存储方法,其特征在于,该方法包括:当写入历史数据和历史报警数据时,分别将所述历史数据和历史报警数据写入对应的内存表和操作日志缓冲区;当当前的内存表满时,将当前的内存表中的历史数据或历史报警数据经压缩后分别写入到当前时刻所对应的分钟级历史数据文件或分钟级历史报警数据文件中,申请一个新的内存表,并将所申请的新内存表作为当前的内存表;合并线程定时进行检查,在每天的预设时间将多个分钟级历史数据文件和分钟级历史报警数据分别合并为日级历史数据文件和日级历史报警数据文件;在每月的预设时间将多个日级历史数据文件和日级历史报警数据文件分别合并为月级历史数据文件和月级历史报警数据文件;在每年的预设时间将多个月级历史数据文件和月级历史报警数据文件分别合并为年级历史数据文件和年级历史报警数据文件。
【技术特征摘要】
【专利技术属性】
技术研发人员:廖常斌,万思军,刘见,刘东海,宋艳荣,张洪波,
申请(专利权)人:青岛海信网络科技股份有限公司,
类型:发明
国别省市:山东;37
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。