一种数据存储方法、查询方法、存储装置及查询装置与流程

文档序号:16532156发布日期:2019-01-05 10:50阅读:178来源:国知局
一种数据存储方法、查询方法、存储装置及查询装置与流程
本申请涉及数据存储及检索
技术领域
,具体而言,涉及一种数据存储方法、查询方法、存储装置及查询装置。
背景技术
:随着社会经济的快速发展,交通需求也日益增加,车辆的使用越来越频繁,由此带来的城市道路交通的拥挤、交通事故已经环境污染等问题也日益严重。通过对车辆交通信息的采集、存储和分析,可以获取城市交通数据,为交通监控和对违法车辆的管理提供可靠的数据支撑,从而提高交通管理和控制水平,改善交通安全,促成城市综合交通体系的形成。现有技术中,城市车辆通行记录在存储中,受到多方面因素的影响,数据量巨大,存储时间长,并且随着时间的增加,每天都会新产生大量的数据,如果存储方法不当,则需要消耗大量的存储时间,且在进行数据搜索时,也会带来不便。综上,现在缺少一种对车辆通行记录数据进行合理存储的方法,来对城市车辆通行记录进行合理统计。技术实现要素:有鉴于此,本申请的目的在于提供一种数据存储方法、查询方法、存储装置及查询装置,以对城市车辆通行记录进行合理统计。第一方面,本申请实施例提供了一种数据存储方法,包括:获取用于描述车辆通行记录的源数据;按照第一预设格式对所述源数据进行转换得到第一数据;获取所述第一数据包含的特征;查找预设的索引表,获取与所述特征相匹配的索引;将所述第一数据分别写入各相匹配的索引对应的数据存储文件中进程存储。结合第一方面,本申请实施例提供了第一方面的第一种可能的实施方式,所述第一数据包括的特征包括车牌号码、车辆颜色、车辆型号和对应的卡口号。结合第一方面,本申请实施例提供了第一方面的第二种可能的实施方式,所述将所述第一数据分别写入各相匹配的索引对应的数据存储文件中进程存储,包括:从与所述特征相匹配的索引中,选取一索引,找到与该索引对应的数据存储文件;按照预设的数据存储策略,确定所述第一数据在找到的数据存储文件中的待存储位置;将所述第一数据写入所述待存储位置进行存储,直至索引选取完毕。结合第一方面的第二种可能的实施方式,本申请实施例提供了第一方面的第三种可能的实施方式,所述数据存储文件的结构包括首块和多个数据块,所述首块记录多个所述数据块的信息,多个所述数据块组成构成所述数据存储文件的数据链表;所述按照预设的数据存储策略,确定所述第一数据在找到的数据存储文件中的待存储位置,包括:获取所述数据链中每个数据块中的各个子索引值,子索引值按照预设算法对子索引进行运算得到;获取所述特征对应的子索引,计算获取的子索引对应的子索引值;根据所述特征对应的子索引值与每个数据块中的各个子索引值的大小关系,确定所述第一数据在所述数据链表中的所述待存储位置。结合第一方面的第三种可能的实施方式,本申请实施例提供了第一方面的第四种可能的实施方式,所述根据所述特征对应的子索引值与每个数据块中的各个子索引值的大小关系,确定所述第一数据在所述数据链表中的所述待存储位置,包括:当所述特征对应的子索引值小于所述数据链中最小的子索引值时,确定所述第一数据的所述待存储位置位于所述数据链表中的第一个数据块中;当所述特征对应的子索引值大于所述数据链表中最大的子索引值时,确定所述第一数据的所述待存储位置位于所述数据链表中最大的索引值所在的数据块中;当所述特征对应的子索引值小于所述数据链表中任一数据块中最大的子索引值,且大于所述任一数据块中最小的子索引值时,确定所述第一数据的所述待存储位置位于所述任一数据块中;当所述特征对应的子索引值大于所述数据链中的任一数据块中的最大子索引值,且小于所述数据链中位于该任一数据块之后的数据块中的最小子索引值时,确定所述第一数据的所述待存储位置位于所述任一个数据块和该任一数据块之后的数据块之间的数据块中。结合第一方面的第四种可能的实施方式,本申请实施例提供了第一方面的第五种可能的实施方式,在将第一数据分别写入各相匹配的索引对应的数据存储文件中之后,所述方法还包括:对各个所述数据存储文件中的首块和数据链中的数据块进行更新。第二方面,本申请实施例提供了一种数据查询方法,包括:接收用户端发送的查询数据;按照第二预设格式对所述查询数据进行格式转换后得到第二数据;获取所述第二数据包含的所有特征,将所述特征中的其中一个特征作为索引,将其他特征作为非索引;基于所述索引确定与所述索引对应的数据存储文件,以及基于所述索引对应的子索引值,在所述数据存储文件确定所述第二数据所在的数据块;根据所述非索引对应的非索引值,在所述数据块中查找与所述非索引值对应的所有数据,并将所有所述数据发送至所述用户端。结合第二方面,本申请实施例提供了第二方面的第一种可能的实施方式,所述查询数据中还包括预设分页策略和第三预设格式,所述将所有所述数据发送至所述用户端,包括:按照所述第三预设格式对所有所述数据进行转换;按照所述用户端设定的分页策略,依次将与页码对应数据量的按照所述第三预设格式转换后的数据发送至所述用户端。第三方面,本申请实施例提供了一种数据存储装置,包括:获取模块,用于获取用于描述车辆通行记录的源数据;转换模块,用于按照第一预设格式对所述源数据进行转换得到第一数据;所述获取模块,还用于获取所述第一数据包含的特征;用于查找预设的索引表,获取与所述特征相匹配的索引;写入模块,用于将所述第一数据分别写入各相匹配的索引对应的数据存储文件中进行存储。第四方面,本申请实施例提供了一种数据查询装置,接收模块,用于接收用户端发送的查询数据;转换模块,用于按照第二预设格式对所述查询数据进行格式转换后得到第二数据;获取模块,用于获取所述第二数据包含的所有特征,将所述特征中的其中一个特征作为索引,将其他特征作为非索引;确定模块,用于基于所述索引确定与所述索引对应的数据存储文件,以及基于所述索引对应的子索引值,在所述数据存储文件确定所述第二数据所在的数据块;发送模块,用于根据所述非索引对应的非索引值,在所述数据块中查找与所述非索引值对应的所有数据,并将所有所述数据发送至所述用户端。与现有技术相比,本申请实施例获取用于描述车辆通行记录的源数据;按照第一预设格式对源数据进行转换得到第一数据;获取第一数据包含的特征;查找预设的索引表,获取与特征相匹配的索引;将第一数据分别写入各相匹配的索引对应的数据存储文件中,这样将描述车辆通行记录的源数据按照统一的格式分别存储在与数据中包含的各个特征对应的数据存储文件中,这样因为按照以第一数据包含的特征相匹配的索引对所有源数据进行的存储,每个数据存储文件中对应的索引均不相同,各个数据存储文件之间存储的源数据内容相同,无论用户后期以哪个特征作为索引,均可以快速查询到需要的车辆通行记录,即本申请实施例提供了一种对城市车辆通行记录进行合理统计的数据存储方法。为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。附图说明为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。图1示出了本申请实施例所提供的数据存储方法的第一种流程示意图;图2示出了本申请实施例所提供的数据存储方法的第二种流程示意图;图3示出了本申请实施例所提供的数据存储方法的第三种流程示意图;图4示出了本申请实施例所提供的一种数据存储方法的具体场景示意图;图5示出了本申请实施例所提供的一种数据查询方法的流程示意图;图6示出了本申请实施例所提供的一种数据存储装置的结构示意图;图7示出了本申请实施例所提供的一种数据查询装置的结构示意图。具体实施方式为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。本申请实施例提供了一种数据存储方法,如图1所示,包括步骤101~105:101,获取用于描述车辆通行记录的源数据。这里的车辆通行记录可以包括车辆的属性信息,比如:车辆颜色、型号和车牌号码,以及车辆的通行信息,比如车辆通行时间和通行地点等,此外,也包括源数据来源的卡口号、数据采集时间以及数据的顺序号,一切与车辆通行相关的数据均可以作为车辆通行记录的源数据,比如一个车辆通信记录可以包括该车辆的车牌号、车辆颜色、车辆型号、该车辆在设定区域行驶的时间以及该车辆通信记录来源的卡口号等。102,按照第一预设格式对源数据进行转换得到第一数据。源数据的来源可能是相机、数据块或其他通讯接口等,所以各个源数据的格式可能并不相同,为了按照统一的格式对源数据进行存储,这里需要按照第一预设格式对源数据进行格式转换,使得所以源数据变成统一格式的第一数据。比如,源数据中包括的车辆通行记录的格式是:通行时间、通行地点、车牌号码、车辆颜色、车辆型号以及来源卡口号,第一预设格式指按照车牌号码、车辆颜色、车辆型号、通行时间、通行地点以及来源卡口号的顺序描述车辆通行记录。103,获取第一数据包含的特征。这里,第一数据包括的特征即上述源数据中的车牌号码、车辆颜色、车辆型号、对应的卡口号、通行时间和通信地点等。104,查找预设的索引表,获取与特征相匹配的索引。这里预设的索引表指包括以车牌号码、车辆颜色、车辆型号、对应的卡口号、通行时间和通信地点为索引的索引表,当获取到第一数据后,查看第一数据中包括的特征,获取与这些特征相匹配的索引,比如某一个第一数据包括的特征为:车牌号码、第一数据对应的源数据输入的顺序号、过往时间以及卡口号,则获取到的与特征相匹配的索引为车牌号码索引、顺序号索引、过往时间索引以及卡口号索引。105,将第一数据分别写入各相匹配的索引对应的数据存储文件中进行存储。在将第一数据写入各相匹配的索引对应的数据存储文件中之前,因为第一数据可能包括的个数较多,如果多线程对所有的第一数据进行同时写入,可能会引发写入的异常,所以在具体实施中,会将所有的第一数据线写入到一个线程安全的队列中,再从队列中提取出来按序写入数据存储文件。为了便于快速存储以及用户的快速查询,这里会建立多个数据存储文件,每个数据存储文件中最终存储的第一数据内容相同,但是每个数据存储文件都对应不同的索引,比如有的数据存储文件是以车牌号码为索引写入的,有的数据存储文件是以顺序号为索引写入的,有的数据存储文件是以过往时间为索引写入的,有的数据存储文件是以卡口号为索引的。具体的,针对每个数据存储文件,预先设定了每个数据存储文件的结构,如下表1所示,为数据存储文件结构,包括首块和数据块,在表1中,第一行为数据存储文件的首块,包括文件头信息和所有数据块的头信息;第二行开始为各个数据块,具体包括每个数据块的头信息以及每个数据块中的存储数据。表1数据存储文件的结构其中,首块中记录数据存储文件的头信息和该数据存储文件中所有数据块的头信息,文件的头信息中包含文件标志、文件描述和数据块总数;每个数据块分为数据块头信息和存储数据,数据块的头信息包括该数据块的块号,与它逻辑上相连的前一数据块和后一数据块的块号,每个数据块中可以存储一定大小的存储数据。针对具体一个数据块的头信息,其包括的参数属性可以如下表2所示:名称数据类型初始值范围slotint-10-8192previousslotint-10-8192nextslotint-10-8192minkeyulong0maxkeyulong0countint00-32384表2数据块的头信息的参数属性表2中,slot表示当前数据块的名称,previousslot表示当前数据块的前一个数据块的名称,nextslot表示当前数据块的后一个数据块的名称,minkey表示最小子索引值,maxkey表示最大子索引值,count表示数据块中的数据条数,-1表示初始值为空,范围表示字节大小区间。具体地,步骤105中,将第一数据分别写入各相匹配的索引对应的数据存储文件中进行存储,如图2所示,具体包括以下步骤201~203:201,从与特征相匹配的索引中,选取一索引,找到与该索引对应的数据存储文件。每个第一数据均会按照不同的索引存储到与各个索引对应的数据存储文件中,在具体执行过程中,在与特征相匹配的索引中先找到一索引,比如车牌号码索引,然后找到与该车牌号码索引对应的数据存储文件。202,按照预设的数据存储策略,确定第一数据在找到的数据存储文件中的待存储位置。具体地,数据存储文件的结构包括首块和多个数据块,首块记录多个数据块的信息,多个数据块组成构成数据存储文件的数据链表;步骤202中,按照预设的数据存储策略,确定第一数据在找到的数据存储文件中的待存储位置,如图3所示,具体包括以下步骤301~303:301,获取数据链中每个数据块中的各个子索引值,子索引值按照预设算法对子索引进行运算得到。在数据存储文件中,各个数据块组成了该数据存储文件中的数据链,数据块中存储的数据,均为每个数据块中的子索引值,比如以车牌号码作为索引对应的数据存储文件中,各个数据块中存储的第一数据均以车牌号码作为子索引,这里对子索引按照预设算法进行运算后可以得到这里的子索引值,比如车牌号码为“xa1005”,在存入数据块之前,会将车牌号码“xa1005”按照某种运算规则进行运算,得到该车牌号码对应的子索引值,比如是一个具体的二进制数。302,获取特征对应的子索引,计算获取的子索引对应的子索引值。针对待存储的第一数据,若确定该待存储的第一数据对应的子索引为车牌号码,按照上述预设算法得到该待存储的第一数据的车牌号码对应的子索引值。303,根据特征对应的子索引值与每个数据块中的各个子索引值的大小关系,确定第一数据在数据链表中的所述待存储位置。具体地,步骤303中,根据特征对应的子索引值与每个数据块中的各个子索引值的大小关系,确定第一数据在所述数据链表中的待存储位置,包括以下多种情况,结合图4给予说明:第一种情况,当特征对应的子索引值小于数据链中最小的子索引值时,确定第一数据的待存储位置位于数据链表中的第一个数据块中,如图4中的第一种情况。第二种情况,当特征对应的子索引值大于数据链表中最大的子索引值时,确定第一数据的待存储位置位于数据链表中最大的索引值所在的数据块中,如图中4中的第二种情况。第三种情况,当特征对应的子索引值小于数据链表中任一数据块中最大的子索引值,且大于任一数据块中最小的子索引值时,确定第一数据的待存储位置位于任一数据块中,如图4中,该任一数据块为数据块2,当特征对应的子索引值小于该数据块中的最大子索引值,且大于该数据块2中的最小子索引值,则确定该第一数据的待存储位置位于该数据块2中。第四种情况,当特征对应的子索引值大于数据链中的任一数据块中的最大子索引值,且小于数据链中位于该任一数据块之后的数据块中的最小子索引值时,确定第一数据的待存储位置位于任一个数据块和该任一数据块之后的数据块之间的数据块中。比如,图4中,当当特征对应的子索引值大于数据链中的数据块2中的最大子索引值,且小于数据链中的数据块5中的最小子索引值,则确定该第一数据的待存储位置位于数据块2和数据块5之间的数据块中。具体的,数据块2和数据块5之间存在数据块3和数据块4时,该待存储的位置位于有效数据条数较少的数据块中,比如,数据块3中的有效数据条数为50条,数据块4中的有效数据条数为28条,则该待存储的位置位于数据块4中。203,将第一数据写入待存储位置进行存储,直至索引选取完毕。第一数据包括多个特征,对应多个待存储的数据存储文件,按照与所有特征相匹配的各个索引,将该第一数据分别存储至各个数据存储文件中。可选地,在将第一数据分别写入各相匹配的索引对应的数据存储文件中之后,还包括:对各个数据存储文件中的首块和数据链中的数据块进行更新。通过文件首块中存储的数据块头信息,构建以数据块头信息作为节点的有序双向链表,考虑到首块数据的重要性,在每个数据块中都单独流出空间用来存储本数据块的头信息,从而在文件首块数据损坏的情况下,可以通过数据块的头信息对文件首块数据进行重新恢复。在将第一数据存储到数据存储文件中后,更新该数据存储文件中首块中对应的数据块的头信息,如果首块中没有该数据块的头信息,追加相应的信息即可,比如原来包括10个数据块的头信息,新写入的第一数据存储在第11个数据块中,则在首块中追加第11个数据块的头信息;如果已经存在第一数据存储的数据块的头信息,则覆盖原先的数据即可。在第一数据存储到数据存储文件中后,该数据存储文件中的由数据块组成的数据链的节点个数可能会相应改变,或者某个数据块中数据的最大值和最小值可能会发生变化,需要对这些信息进行更新。有上述存储方法,可以看出数据库内部的存储数据是以追加的形式写入,同一数据块内部的数据是无序的,为了保证不同的数据块和数据块之间的数据在逻辑是有序的,对数据块的组织规则如下:获取到第一数据后,写入第1个数据块,此时第1个数据块逻辑上的前一块为空,后一块也为空。当第1个数据块的存储数据存满了,将会使用第2个数据块,此时,将第1个数据块中的数据独处,依据子索引值进行升序排序,排序后的前一半数据写入第1个数据块,排序后的后一半写入第2个数据块;此时第1个数据块逻辑上的前一块为空,后一块为第2个数据块;第2个数据块的前一块为第1个数据块,后一块为空。根据存储策略,如果新来数据还是写入第1个数据块,而第1个数据块中的数据存满时,则使用第3个数据块,此时,将第1个数据块中的数据读出,依据索引值进行升序排序,排序后的前一半数据写入第1个数据块,排序后的后一半数据写入第3个数据块;同时更新它们逻辑上的前后块关系,即第1个数据块逻辑上的前一块为空,后一块为第3个数据块;第3个数据块的前一块为第1个数据块,后一块为第2个数据块;第2个数据块的前一块为第3个数据块,后一块为空,以此类推。这样就能保证第1个数据块中的所有数据都小于第3个数据块中的数据,第3个数据块的数据都小于第2个数据块的数据,以此规则组织数据块的结构,这样通过数据块与数据块逻辑上的前后关系来构建双向的有序链表。基于上述的数据存储方法,本申请实施例还提供了一种数据查询方法,如图5所示,包括以下步骤501~505:501,接收用户端发送的查询数据。用户端发送的查询数据中可能包括一个或多个表示车辆通行记录的特征。502,按照第二预设格式对查询数据进行格式转换后得到第二数据。用户端发送的查询数据,首先需要先对该查询数据按照第二预设格式对该查询数据进行解析得到第二数据,该第二数据中可能包括一个或多个特征。503,获取第二数据包含的所有特征,将特征中的其中一个特征作为索引,将其他特征作为非索引。由于所有数据存储文件中的存储内容均相同,在查询时,仅仅从其中一个数据存储文件中进行查询即可,当第二数据包含的多个特征时,为了避免多个索引同时查询时造成的重复,这里会赋予不同的索引在查询时不同的优先级,即在多个特征中,将优先级最高的一个特征作为索引,将其他特征就作为非索引,比如,优先级为:车牌号码>数据顺序号>过往时间>卡口卡号>车辆颜色,当第二数据中包括车牌号码和车辆颜色时,则将车牌号码作为索引,将车辆颜色作为非索引,需要注意的是,这里的车牌号码并不是车辆的实际号码,而是按照预设算法对实际的车辆号码进行运算后的数据,所以可能会存在不同的车辆号码对应同一个数据的情况。504,基于索引确定与索引对应的数据存储文件,以及基于索引对应的子索引值,在数据存储文件确定第二数据所在的数据块。比如,如果以车辆号码作为索引,及确定在车辆号码为索引对应的数据存储文件中查询,具体地,确定该车辆号码的子索引值,然后根据该子索引值在数据存储文件中确定该第二数据所在的数据块。505,根据非索引对应的非索引值,在数据块中查找与非索引值对应的所有数据,并将所有数据发送至用户端。找到该第二数据所在的数据块后,可能发现在该数据块中,有多条数据均满足条件,此时就需要根据非索引对应的非索引值来缩小查找的范围,从而得到用户端需要的有效数据。可选地,查询数据中还包括预设分页策略和第三预设格式,将所有数据发送至用户端,包括:按照第三预设格式对所有数据进行转换。查询到满足客户端需要的有效数据后,在将这些数据按照客户端需要的格式进行转换。按照用户端设定的分页策略,依次将与页码对应数据量的按照第三预设格式转换后的数据发送至用户端。比如用户端设定了每页展示的数据条数为50条,而查询到的有效数据为200条,则依次将这部分有效数据按照50条为单位的发送至用户端。本申请实施例提供了一种数据存储装置,如图6所示,包括:获取模块601,用于获取用于描述车辆通行记录的源数据。转换模块602,用于按照第一预设格式对源数据进行转换得到第一数据。获取模块601,还用于获取第一数据包含的特征;用于查找预设的索引表,获取与特征相匹配的索引。写入模块603,用于将第一数据分别写入各相匹配的索引对应的数据存储文件中。可选地,写入模块603,具体用于:从与特征相匹配的索引中,选取一索引,找到与该索引对应的数据存储文件。按照预设的数据存储策略,确定第一数据在找到的数据存储文件中的待存储位置。将第一数据写入所述待存储位置进行存储,直至索引选取完毕。可选地,数据存储文件的结构包括首块和多个数据块,首块记录多个数据块的信息,多个数据块组成构成数据存储文件的数据链表;写入模块603,具体用于:获取数据链中每个数据块中的各个子索引值,子索引值按照预设算法对子索引进行运算得到。获取特征对应的子索引,计算获取的子索引对应的子索引值。根据特征对应的子索引值与每个数据块中的各个子索引值的大小关系,确定第一数据在数据链表中的所述待存储位置。可选地,写入模块603,具体用于:当特征对应的子索引值小于数据链中最小的子索引值时,确定第一数据的待存储位置位于数据链表中的第一个数据块中。当特征对应的子索引值大于数据链表中最大的子索引值时,确定第一数据的待存储位置位于数据链表中最大的索引值所在的数据块中。当特征对应的子索引值小于数据链表中任一数据块中最大的子索引值,且大于任一数据块中最小的子索引值时,确定第一数据的待存储位置位于任一数据块中。当特征对应的子索引值大于数据链中的任一数据块中的最大子索引值,且小于数据链中位于该任一数据块之后的数据块中的最小子索引值时,确定第一数据的待存储位置位于任一个数据块和该任一数据块之后的数据块之间的数据块中。可选地,数据存储装置还包括更新模块,更新模块用于:对各个数据存储文件中的首块和数据链中的数据块进行更新。本申请实施例还提供了一种数据查询装置,如图7所示,接收模块701,用于接收用户端发送的查询数据。转换模块702,用于按照第二预设格式对查询数据进行格式转换后得到第二数据。获取模块703,用于获取第二数据包含的所有特征,将特征中的其中一个特征作为索引,将其他特征作为非索引。确定模块704,用于基于索引确定与索引对应的数据存储文件,以及基于索引对应的子索引值,在数据存储文件确定所述第二数据所在的数据块。发送模块705,用于根据非索引对应的非索引值,在数据块中查找与非索引值对应的所有数据,并将所有数据发送至用户端。可选地,查询数据中还包括预设分页策略和第三预设格式,发送模块705,具体用于:按照第三预设格式对所有数据进行转换。按照用户端设定的分页策略,依次将与页码对应数据量的按照第三预设格式转换后的数据发送至用户端。与现有技术相比,本申请实施例获取用于描述车辆通行记录的源数据;按照第一预设格式对源数据进行转换得到第一数据;获取第一数据包含的特征;查找预设的索引表,获取与特征相匹配的索引;将第一数据分别写入各相匹配的索引对应的数据存储文件中,这样将描述车辆通行记录的源数据按照统一的格式分别存储在与数据中包含的各个特征对应的数据存储文件中,这样因为按照以第一数据包含的特征相匹配的索引对所有源数据进行的存储,每个数据存储文件中对应的索引均不相同,各个数据存储文件之间存储的源数据内容相同,无论用户后期以哪个特征作为索引,均可以快速查询到需要的车辆通行记录,即本申请实施例提供了一种对城市车辆通行记录进行合理统计的数据存储方法。此外,本申请实施例构建的数据存储文件的结构,支持存储大量数据量的车辆通行记录源数据,支持源数据的动态增加;构建了基于数据存储策略的数据存储方法,能够满足对大数量的车辆通行记录的源数据进行实时存储;提供的数据查询方法,因为按照优先级索引,能够快速在优先级最高的索引对应的数据存储文件中找到查询结果。本申请实施例所提供的进行数据存储方法以及数据查询方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。本申请实施例所提供的数据存储装置以及数据查询装置可以为设备上的特定硬件或者安装于设备上的软件或固件等。本申请实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的系统、装置和单元的具体工作过程,均可以参考上述方法实施例中的对应过程,在此不再赘述。在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本申请提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本
技术领域
的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围。都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1