基于实时采集数据特征的数据格式化和文件存储方法
技术领域
本发明涉及铁路信号***,尤其是涉及一种基于实时采集数据特征的数据格式化和文件存储方法,通过该方法统一了各类采集数据的存储和访问方式,减少存储文件数量和存储空间消耗,增加采集数据存储的历史时间长度,提高数据存储和查询性能,从而提升***的整体可用性。
背景技术
采集数据存储是监测类***的基础功能,传统的采集数据存储方法对各种采集数据采用不同的处理方式,导致采集数据访问方式不统一,增加了***上层开发的难度和成本;另外传统数据存储方法针对高频度大量采集数据采用按时间或数据标识划分文件的方式,使数据文件数量过多、磁盘碎片不断增加最终导致***性能下降;同时传统数据存储方法采用无差别全记录方式,即使在采集数据没有变化的情况时也花费大量存储空间,导致无法长时间存储历史数据。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种用于铁路信号集中监测***、地铁维护支持***、铁路信号综合运维***的基于实时采集数据特征的数据格式化和文件存储方法。
本发明的目的可以通过以下技术方案来实现:
一种基于实时采集数据特征的数据格式化和文件存储方法,其特征在于,包括以下步骤:
(1)基于采集数据特征建立统一的数据存储规范;
(2)基于时间分段方式建立采集数据格式化机制;
(3)基于文件分块和多级索引建立采集数据读写管理机制;
(4)建立采集数据读写的事务机制;
(5)统一各种采集数据的数据访问接口。
所述的基于采集数据特征建立统一的数据存储规范具体为:
根据采集数据的基本特征,统一各种采集数据的存储格式,同时定义连续采集数据记录之间的关联关系和存储方式。
所述的根据采集数据的基本特征,统一各种采集数据的存储格式,同时定义连续采集数据记录之间的关联关系和存储方式具体为从数据时间、数据内容、数据关联的角度对采集数据格式进行统一定义:
101)定义采集数据记录的时间格式:采集数据记录的时间精度到毫秒等级,并对秒时间和毫秒偏移时间分字段记录,以支持数据记录不同时间精度查询要求;
102)定义采集数据记录的内容格式:采集数据存储底层只需记录采集数据的二进制内容和数据长度;
103)定义连续采集数据记录间关联:当连续采集数据记录间存在关联时,根据比较相邻前后记录的变化情况,定义后置记录的具体存储内容。
所述的基于时间分段方式建立采集数据格式化机制具体为:
根据采集数据存储规范,将时间分段内的采集数据存储内容转换为统一的二进制存储记录,同时根据连续采集数据记录之间的关联关系进行数据压缩,有效减少数据存储空间。
所述的将时间分段内的采集数据存储内容转换为统一的二进制存储记录,其转换时具体场景为:
201)时间段内仅有一条采集数据记录,按规范将该记录时间和数据内容添加到数据存储单元,并将数据存储单元提交存储;
202)时间段内存在多条采集数据记录,如数据记录间无关联,则将每条记录的时间和数据内容添加到数据存储单元,并将数据存储单元提交存储;
203)时间段内存在多条采集数据记录,如数据记录间存在关联,则根据数据关联情况对后置记录进行压缩转换后将记录的时间和转换后数据内容添加到数据存储单元,并将数据存储单元提交存储。
所述的数据存储单元为采集数据存储时的基本元素,以整体记录方式存储到数据文件中。
所述的基于文件分块和多级索引建立采集数据读写管理机制为:
对采集数据文件的存储区域实施分块管理,同时在同一文件内对本文件存储的采集数据按类型和采集时间建立索引,实现灵活的数据存储、数据查询、数据清除、空间扩展机制。
所述的实现灵活的数据存储、数据查询、数据清除、空间扩展机制,具体包括:
301)文件主体数据存储区域划分为相同大小的多个文件块并以“链式”结构组织,文件管理数据存储区域记录文件块的使用信息;
302)对数据存储单元按时间和存储类型建立索引,索引记录中包含数据存储单元的记录时间、记录大小、所使用的文件块标识、文件块内的偏移位置;
303)数据存储时基于文件块申请机制,在当前分配的数据文件块的指定位置存储数据存储单元内容并在当前分配的索引文件块的指定位置存储索引内容;数据查询时基于索引信息,根据查询时间定位数据存储单元所在数据文件块并快速查询数据内容;数据清除时基于文件块回收机制,根据索引信息将不再使用的数据文件块回收并可重新投入使用;
304)文件块数目不足时,基于文件块扩展机制对文件进行在线扩展,新扩展区域按既有文件块大小继续划分文件块并进行统一管理。
所述的建立采集数据读写的事务机制具体为:
数据读写过程中在内存里统一维护涉及的关键数据,并实现关键数据写入到磁盘的原子性,保证整个数据读写过程的一致性和持续性。
所述的统一各种采集数据的数据访问接口,包括数据存储接口、按时间段数据查询接口、按时间点数据查询接口、按时间点数据清除接口,形成规范化的外部访问方式。
所述的采集数据包括开关量采集数据、多状态量采集数据、模拟量采集数据、曲线类采集数据、道岔缺口图像数据。
与现有技术相比,本发明具有统一各种采集数据的存取方式;并通过减少存储文件数量、降低存储空间开销、减少***IO消耗等措施提高数据存取的性能;同时增加了历史数据保存的时间长度,从而提升***的整体可用性。
附图说明
图1是本发明中对于采集数据格式化的说明示意图;
图2是本发明中对于文件分块和多级索引的说明示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
1、基于采集数据特征建立统一的数据存储规范
建立统一的数据存储规范是采集数据统一存储方法的基础。数据存储规范中屏蔽各类采集数据的业务差别,从数据时间、数据内容、数据关联等角度对采集数据格式进行统一定义:
(1)定义采集数据记录的时间格式。采集数据记录的时间精度到毫秒等级,并对秒时间和毫秒偏移时间分字段记录,以支持数据记录不同时间精度查询要求。
(2)定义采集数据记录的内容格式。采集数据存储底层无需关心具体数据的业务含义,只需记录采集数据的二进制内容和数据长度。
(3)定义连续采集数据记录间关联。当连续采集数据记录间存在关联时,根据比较相邻前后记录的变化情况,定义后置记录的具体存储内容。
2、基于时间分段方式实现采集数据格式化机制
根据前述的统一的数据存储和数据压缩规范,将实时采集数据按时间分段并转换为符合规范的数据存储单元。转换时具体场景如下:
(1)时间段内仅有一条采集数据记录,按规范将该记录时间和数据内容添加到数据存储单元,并将数据存储单元提交存储。
(2)时间段内存在多条采集数据记录,如数据记录间无关联,则将每条记录的时间和数据内容添加到数据存储单元,并将数据存储单元提交存储。
(3)时间段内存在多条采集数据记录,如数据记录间存在关联,则根据数据关联情况对后置记录进行压缩转换后将记录的时间和转换后数据内容添加到数据存储单元,并将数据存储单元提交存储。
数据存储单元为采集数据存储时的基本元素,以整体记录方式存储到数据文件中。数据存储单元存储时其关键信息也做持久化处理,包括:
(1)数据存储单元内数据记录条数。
(2)数据存储单元内首数据记录时间。
(3)数据存储单元整体数据长度。
(4)数据存储单元内存在多条记录时,每条记录的时间和数据长度。
3、基于文件分块和多级索引实现采集数据读写管理机制
基于文件分块和多级索引实现灵活的数据存储、数据查询、数据清除、文件扩展。具体方法如下:
(1)文件主体数据存储区域划分为相同大小的多个文件块并以“链式”结构组织,文件管理数据存储区域记录文件块的使用信息,依此实现文件块申请、文件块扩展、文件块回收等机制。
(2)对数据存储单元按时间和存储类型建立索引,索引记录中包含数据存储单元的记录时间、记录大小、所使用的文件块标识、文件块内的偏移位置。索引记录使用独立的文件块存储,实现索引和数据的分离。
(3)数据存储时基于文件块申请机制,在当前分配的数据文件块的指定位置存储数据存储单元内容并在当前分配的索引文件块的指定位置存储索引内容;数据查询时基于索引信息,根据查询时间定位数据存储单元所在数据文件块并快速查询数据内容;数据清除时基于文件块回收机制,根据索引信息将不再使用的数据文件块回收并可重新投入使用。
(4)文件块数目不足时,基于文件块扩展机制对文件进行在线扩展,新扩展区域按既有文件块大小继续划分文件块并进行统一管理。
4、实现采集数据读写的事务机制
数据读写过程中在内存里统一维护涉及的关键数据,包括以下内容:
(1)读写过程涉及的数据类型对应的索引文件块关键信息:当前索引文件块标识。
(2)读写过程涉及的数据类型对应的数据文件块关键信息:当前数据文件块标识和当前数据文件块最后一条记录位置。
(3)当前索引文件块的关键使用信息:块内记录数、块内第一条索引记录对应的数据记录时间、块内最后一条索引记录对应的数据记录时间。
上述关键数据保证文件中数据存储和数据索引的逻辑一致性,通过实现关键数据写入磁盘过程的原子性从而保证整个写过程的事务性。关键步骤如下:
(1)对关键数据进行备份。
(2)写入主体数据(索引记录和数据存储单元记录)。主体数据写入正常完成后在内存中更新写过程中涉及的关键数据;如主体数据写入未能正常完成,则本次写入过程无效,内存中关键数据保持前次写过程正常完成后的状态。
(3)写入关键数据,通过标识置位和清除方法判断写入过程是否正常完成。如果关键数据写入正常完成,则本次写过程有效;如果关键数据写入没有正常完成,本次写过程无效。从备份数据中恢复之前的关键数据,回滚到前次写过程正常完成后状态。
5、实现统一的采集数据访问接口
统一的采集数据访问接口包括:
(1)数据存储:按数据类型提交统一格式的数据存储单元。
(2)按时间段查询数据:按数据类型和指定的开始时间和结束时间查询符合条件的所有数据存储单元,通过数据存储单元获取具体的采集数据内容。
(3)按时间点查询数据:按数据类型和指定查询点查询符合条件的数据存储单元,通过数据存储单元获取具体的采集数据内容。
(4)按时间点清除数据:按数据类型和指定时间点清除历史数据。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。