CN107861956B - 一种卡口过车数据记录的查询方法及装置 - Google Patents
一种卡口过车数据记录的查询方法及装置 Download PDFInfo
- Publication number
- CN107861956B CN107861956B CN201610839845.9A CN201610839845A CN107861956B CN 107861956 B CN107861956 B CN 107861956B CN 201610839845 A CN201610839845 A CN 201610839845A CN 107861956 B CN107861956 B CN 107861956B
- Authority
- CN
- China
- Prior art keywords
- field
- file
- content
- record
- name
- 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
Links
Images
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/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24535—Query rewriting; Transformation of sub-queries or views
-
- 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/24—Querying
- G06F16/242—Query formulation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Traffic Control Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种卡口过车数据记录的查询方法及装置,所述方法的步骤包括:接收查询请求;获取待查询字段所对应的索引文件,在该索引文件中查询该待查询字段的内容对应的记录编号;根据预设的偏移量,依次计算所述所有待查询的记录编号中,每个记录编号在数据文件中的位置;在所述位置,查找所述记录编号所对应的字段的内容编号及字段名称;根据字段名称获得与所述字段名称对应的字段文件,根据所述字段的内容编号从所述字段文件中查询出该字段的内容编号所对应的内容;输出待查询字段及与所述待查询字段对应的目标字段。应用本发明实施例降低了存储卡口过车数据记录的存储空间和硬件成本,提升了查询卡口过车数据记录的速度。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种卡口过车数据记录的查询方法及装置。
背景技术
随着监控行业的迅猛发展,智能交通、智能卡口设备的增多,产生了越来越多的过车数据记录,对于如何高效的存储及查询这些海量的过车数据记录是当前主要的问题。
通常,一条过车数据记录是指一条结构化的数据,例如,一条过车数据记录是指车辆经过一个电子卡口产生的信息,其可以包括:经过卡口的时间、车牌号码、经过卡口的编号、车辆颜色及车辆类型等字段。在实际应用中,数据库***将每天自动产生的海量卡口过车数据记录以特定格式存储,便于用户以后查询这些过车数据记录。
在实际应用中,对过车数据记录的应用比较简单,一般仅涉及增、删、改、查几个功能,并不需要对过车数据进行复杂处理。但是,传统的数据库***结构复杂,其通常支持大而全的功能,因而使用传统数据库所支持的查询方法既难以对过车数据进行有效管理,且查询速度较慢,并且还需占用大量存储空间。
发明内容
本发明实施例的目的在于提供一种卡口过车数据记录的查询方法及装置,提升卡口过车数据记录的检索速度,降低卡口过车数据记录的存储空间。具体技术方案如下:
一方面,本发明实施例公开了一种卡口过车数据记录的查询方法,包括:
接收查询请求,所述查询请求中至少包括一个待查询字段;
获取所述待查询字段所对应的索引文件,在该索引文件中查询该待查询字段的内容对应的记录编号,获得所有待查询的记录编号;
根据预设的偏移量,依次计算所述所有待查询的记录编号中,每个记录编号在数据文件中的位置;在所述位置,根据数据文件中已存储的记录编号、字段的内容编号及字段名称的对应关系,查找所述记录编号所对应的字段的内容编号及字段名称;
根据所述字段名称获得与所述字段名称对应的字段文件,根据所述字段的内容编号从所述字段文件中查询出该字段的内容编号所对应的内容;
输出所述待查询字段及与所述待查询字段对应的目标字段,其中,所述目标字段包括所述字段的内容编号所在的字段文件名称及所述字段的内容编号所对应的内容。
优选的,在查询请求中包括两个以上待查询字段时,在所述两个以上待查询字段对应的索引文件中查询该待查询字段的内容对应的记录编号,获得所有待查询的记录编号的步骤包括:
在该索引文件中查询所述两个以上待查询字段的内容对应的记录编号后,对各个查询字段对应的记录取交集;
将取交集后的所有记录编号作为所获得的所有待查询的记录编号。
优选的,根据所述字段名称获得与所述字段名称对应的字段文件,包括:
如果所述字段名称对应的字段为第一类型字段,在内存中获得该字段名称对应的字段文件;
如果所述字段名称对应的字段为第二类型字段,在磁盘中获得该字段名称对应的字段文件。
优选的,根据所述字段的内容编号从所述字段文件中查询出该字段的内容编号所对应的内容,包括:
如果所述字段文件在内存中,在该字段文件中,将所述字段的内容编号与该字段文件中的编号进行比对,获得与所述字段的内容编号所对应的内容;
如果所述字段文件在磁盘中,计算该字段的内容编号在该字段文件中的偏移量,获得该字段的内容编号对应的内容。
优选的,所述目标字段为一条过车数据记录中所记录的所有字段,或查询请求中所指示的在查询结果中所显示的字段。
另一方面,本发明实施例还公开了一种卡口过车数据记录的查询装置,包括:
接收单元,用于接收查询请求,所述查询请求中至少包括一个待查询字段;
查询索引文件单元,用于获取所述待查询字段所对应的索引文件,在该索引文件中查询该待查询字段的内容对应的记录编号,获得所有待查询的记录编号;
查询数据文件单元,用于根据预设的偏移量,依次计算所述所有待查询的记录编号中,每个记录编号在数据文件中的位置;在所述位置,根据数据文件中已存储的记录编号、字段的内容编号及字段名称的对应关系,查找所述记录编号所对应的字段的内容编号及字段名称;
查询字段文件单元,用于根据所述字段名称获得与所述字段名称对应的字段文件,根据所述字段的内容编号从所述字段文件中查询出该字段的内容编号所对应的内容;
输出单元,用于输出所述待查询字段及与所述待查询字段对应的目标字段,其中,所述目标字段包括所述字段的内容编号所在的字段文件名称及所述字段的内容编号所对应的内容。
优选的,所述装置还包括:
第一查询索引文件单元,用于在该索引文件中查询所述两个以上待查询字段的内容对应的记录编号后,对各个查询字段对应的记录取交集;
取交集单元,用于将取交集后的所有记录编号作为所获得的所有待查询的记录编号。
优选的,所述查询字段文件单元,包括:
第一查询字段文件子单元,用于如果所述字段名称对应的字段为第一类型字段,在内存中获得该字段名称对应的字段文件;
第二查询字段文件子单元,用于如果所述字段名称对应的字段为第二类型字段,在磁盘中获得该字段名称对应的字段文件。
优选的,所述查询字段文件单元,还包括:
第三查询字段文件子单元,用于如果所述字段文件在内存中,在该字段文件中,将所述字段的内容编号与该字段文件中的编号进行比对,获得与所述字段的内容编号所对应的内容;
第四查询字段文件子单元,用于如果所述字段文件在磁盘中,计算该字段的内容编号在该字段文件中的偏移量,获得该字段的内容编号对应的内容。
本发明实施例提供的一种卡口过车数据记录的查询方法及装置,根据卡口过车数据记录的字段重复性高的特点,将重复性高的字段的内容同时存储于内存和磁盘上,在查询卡口过车数据记录时,在内存中读取这些重复性高的字段的内容,实现快速查询卡口过车数据记录。应用本发明实施例可以降低存储卡口过车数据记录的存储空间,同时,降低了硬件成本,提升了查询卡口过车数据记录的速度。当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的卡口过车数据记录的查询方法的流程图;
图2为本发明实施例提供的卡口过车数据记录的查询装置的结构示意图;
图3为本发明实施例提供的卡口过车数据记录的查询装置的查询字段文件单元的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在实际应用中,用户查询最多的过车数据记录是最近一段时间存储的过车数据记录,对于比较久远的过车数据记录查询的情况比较少,根据这一特性,本发明实施例在存储卡口过车数据记录时,将一定时间段内的所有过车数据记录存储在一个目录下,例如一个目录下存储一天的过车数据记录、或者一个目录下存储一周的过车数据记录、或者一个目录下存储一个月的过车数据记录等。这样,当输入过车数据记录的过车时间时,可以快速定位到相应的目录文件,减少了大量不必要的磁盘的读取。同时,最近几天的过车数据记录相对于所有过车数据记录而言,数量比较小,存在于缓存中,会加快读取这些过车数据记录的速度。
卡口过车数据记录是结构化的数据,每条过车数据记录以多个字段的形式存储,例如,一条过车数据记录以6个字段的形式表示,具体包括:过车时间、卡口名称、车牌号码、车辆颜色、车辆类型以及过车图片统一资源定位符(Uniform Resource Locator,url)。这里,以1月1日的过车数据记录举例,具体如表1所示,表1中的“过车时间”、“卡口名称”、“车牌号码”、“车辆颜色”、“车辆类型”及“过车图片url”表示字段名称。
表1
记录编号 | 过车时间 | 卡口名称 | 车牌号码 | 车辆颜色 | 车辆类型 | 过车图片url |
01 | 1月1日8:00 | X卡口 | A12345 | 红色 | 轿车 | Xxx |
02 | 1月1日10:00 | Y卡口 | B23456 | 白色 | 货车 | Yyy |
03 | 1月1日12:00 | Z卡口 | C34567 | 黑色 | 大巴车 | Vvv |
04 | 1月1日14:00 | U卡口 | D45678 | 黄色 | 大卡车 | Ddd |
05 | 1月1日15:00 | W卡口 | E78910 | 蓝色 | 小卡车 | Bbb |
……. | ||||||
11 | 1月1日20:00 | M卡口 | A45678 | 红色 | 越野车 | Ppp |
12 | 1月1日22:00 | N卡口 | C78910 | 黑色 | 出租车 | Qqq |
……... |
本实施例中,在存储过车数据记录时,将一天作为一个存储目录,存储当天所有过车数据记录。需要理解的是,一个城市的卡口数量是一定的,车辆颜色最多十几种,车辆类型最多上百种,所以卡口名称、车辆颜色以及车辆类型是有效总数量相对较少的字段,即它们的重复数据很多;而过车时间、车牌号码以及过车图片url是有效总数量相对比较多的字段,即他们的重复数据较少。这里,将重复数据较多的字段定义为第一类型字段,将重复数据较少的字段定义为第二类型字段,也就是说,将卡口名称、车辆颜色、车辆类型定义为第一类型字段;将过车时间、车牌号码、过车图片url定义为第二类型字段。
具体的,在获得一条过车数据记录时,对该过车数据记录进行编号,得到该过车数据记录对应的记录编号。例如,在以一天为一个存储目录时,对获得的第一条过车数据记录进行编号,得到该过车数据记录对应的记录编号为“01”,对获得的第二条过车数据记录进行编号,得到该过车数据记录对应的记录编号为“02”。
在对过车数据记录编号后,从过车数据记录中提取出每个第一类型字段,判断每个第一类型字段的内容在内存中是否都存在,如果内存中不存在该第一类型字段的内容,则将该第一类型字段的内容存储到内存中该第一类型字段对应的字段文件中;如果第一类型字段的内容在内存中已经存在,则从内存中的该第一类型字段对应的字段文件内获得该第一类型字段的内容在该字段文件中对应的字段编号,并更新磁盘中所存储的该第一类型字段对应的字段文件。
从过车数据记录中提取出第二类型字段,对该第二类型字段的内容进行编号,并将该第二类型字段的内容及其对应的编号存储到磁盘中该第二类型字段对应的字段文件中。
可以理解的是,内存是计算机中重要的部件之一,计算机中所有程序的运行都是在内存中进行的。内存(Memory)也被称为内存储器,其作用是用于暂时存放中央处理器中的运算数据,以及与硬盘等外部存储器交换的数据。只要计算机在运行中,中央处理器就会把需要运算的数据调到内存中进行运算,当运算完成后中央处理器再将结果传送出来,内存的运行也决定了计算机的稳定运行。本发明实施例,过车数据记录中的第一类型字段同时存储在内存和磁盘中,便于用户在查询过车数据记录时,快速的从内存中读取到第一类型字段。需要注意的是,当过车数据记录查询装置断电时,内存中的第一类型字段就会丢失,此时,用户可以在磁盘上查询该第一类型字段。这里,磁盘用来长期存储过车数据记录,即使过车数据记录查询装置断电时,也不会造成磁盘上的过车数据记录的各个字段的丢失。
这里,上述字段文件用于存储过车数据记录的各个字段的内容及其对应的编号。
例如获得一条如下过车数据记录,该过车数据记录的记录编号为01、过车时间为1月1日8:00、卡口名称为X卡口、车牌号码为A12345、车辆颜色为红色、车辆类型为轿车、以及过车图片url为Xxx。在该过车数据记录中提取出第一类型字段(卡口名称、车辆颜色以及车辆类型),该第一类型字段的卡口名称的内容为X卡口,车辆颜色的内容为红色,车辆类型的内容为轿车;在该过车数据记录中提取出第二类型字段(过车时间、车牌号码以及过车图片url),该第二类型字段的过车时间的内容为1月1日8:00,车牌号码的内容为A12345,车辆颜色的内容为红色。
具体的,将卡口名称的内容及其对应的编号,存储到内存中卡口名称对应的卡口名称字段文件中,并更新磁盘中卡口名称对应的卡口名称字段文件的步骤包括:如果过车数据记录是来自“X卡口”获得的过车数据记录,则判断该过车数据记录的卡口名称的内容“X卡口”在内存中是否存在,如果不存在,则对“X卡口”进行编号,得到“X卡口”对应的编号,将“X卡口”及其对应的编号存储到内存的卡口名称字段文件中,如果“X卡口”在内存中已经存在,则从内存的卡口名称字段文件内获得该卡口名称即“X卡口”对应的编号,更新磁盘中卡口名称字段文件。表2为卡口名称字段文件中卡口名称的内容编号与卡口名称的内容的对应关系,其中,卡口名称字段文件的名称为卡口名称。
表2
卡口名称的内容编号 | 卡口名称的内容 |
01 | A卡口 |
02 | B卡口 |
03 | C卡口 |
04 | D卡口 |
05 | E卡口 |
我们再以车辆颜色字段文件为例,如果获得的过车数据记录的车辆颜色是“红色”,则判断该过车数据记录的车辆颜色的内容“红色”在内存中是否存在,如果不存在,则对“红色”进行编号,得到“红色”对应的编号,并将该“红色”存储到内存的车辆颜色字段文件中,如果该“红色”在内存中已经存在,则从内存的车辆颜色字段文件内获得该车辆颜色即“红色”对应的编号,更新磁盘中的车辆颜色字段文件。表3为车辆颜色字段文件中车辆颜色的内容编号与车辆颜色的内容的对应关系,其中,车辆颜色字段文件名称为车辆颜色。例如在下面的表3中,白色车辆对应的车辆颜色编号为“02”。
表3
车辆颜色的内容编号 | 车辆颜色的内容 |
01 | 红色 |
02 | 白色 |
03 | 黑色 |
04 | 黄色 |
05 | 蓝色 |
接下来,以车牌号码的内容及其对应的编号存储到磁盘中该车牌号码对应的车牌号码字段文件中为例进行说明。如果获得的过车数据记录的车牌号码的内容为“A12345”,则判断“A12345”在磁盘中是否存在,如果不存在,对“A12345”进行编号,得到“A12345”对应的编号,并将“A12345”及其对应的编号存储到磁盘中车辆号码字段文件;如果存在,则从磁盘中“A12345”对应车牌号码字段文件中获得“A12345”对应的编号。例如,表4示出了车牌号码字段文件中的车牌号码的内容编号与车牌号码的内容的对应关系,其中,车牌号码字段文件名称为车牌号码。
表4
车牌号码的内容编号 | 车牌号码的内容 |
01 | A12345 |
02 | B23456 |
03 | C34567 |
04 | D45678 |
05 | E78910 |
另外,将过车数据记录内的每个字段的内容在其对应的字段文件内的编号写入数据文件中,其中,所述数据文件包括数据文件头和数据文件内容,具体的,数据文件头用于关联各个字段文件;数据文件内容用于存储过车数据记录的记录编号及每个字段对应的内容在其对应的字段文件内的编号。以下以数据文件为例进行说明,如表5所示,表5示出了过车数据记录的记录编号与过车数据记录内的各个字段的内容编号以及字段名称的对应关系,其中,数据文件头包括:记录编号、各个字段内容编号对应的字段名称(过车时间、卡口名称、车牌号码、车辆颜色、车辆类型以及车辆图片url),表5的数据文件头还包括,各个字段的内容编号占用的存储长度。例如,数据文件头占用存储长度为32bit、每条记录编号占用的存储长度为64bit、过车时间的内容编号占用的存储长度为64bit、卡口名称的内容编号占用的存储长度为8bit、车牌号码的内容编号占用的存储长度为16bit、车辆颜色的内容编号占用的存储长度为8bit、车辆类型的内容编号占用的存储长度为8bit以及车辆图片url的内容编号占用的存储长度为64bit,则一条过车数据记录在数据文件中占用的存储长度为232bit。在实际应用中,每条过车数据记录的记录编号以及各个字段的内容编号在数据文件中所占用的存储长度可以包括其他存储长度。表5示出了数据文件头的所占用的存储长度为32bit,具体的,数据文件头所占用的存储长度可以包括其他存储长度。
表5
记录编号 | 过车时间 | 卡口名称 | 车牌号码 | 车辆颜色 | 车辆类型 | 车辆图片url |
… | ||||||
11 | 11 | 12 | 23 | 01 | 09 | 11 |
12 | 12 | 22 | 15 | 03 | 13 | 12 |
… |
在获得过车数据记录时,将过车数据记录内的每个字段的内容存储到对应的索引文件中,具体的,每个过车数据记录内的每个字段对应一个索引文件。例如,车牌颜色对应车牌颜色索引文件,车牌号码对应车牌号码索引文件,车辆类型对应车辆类型索引文件。这里,所述索引文件用于存储每个字段的内容及其对应的记录编号。以下以车牌号码索引文件(车牌号码的内容和记录编号的对应关系)为例进行说明,如表6所示。
表6
当有一条过车数据记录输入时,在车牌号码索引文件中,查该过车数据记录内的车牌号码的内容是否存在,如果不存在,将该车牌号码的内容及该过车数据记录的记录编号存入到车牌号码索引文件;如果存在,则在该车牌号码后填入该过车数据记录的记录编号。
具体的,表6示出了,在车牌号码索引文件中,车牌号码的内容“C34567”后填入了记录编号“03”、记录编号“08”。当记录编号为“11”的过车数据记录的字段的内容为“C34567”时,将该记录编号“11”填入车牌号码索引文件中的车牌号码的内容“C34567”之后。这里,车牌号码索引文件中的车牌号码的内容后的记录编号表示,该记录编号对应的过车数据记录的字段的内容包括该车牌号码。
以上是以过车数据记录中的部分字段为例,具体说明了如何将一条过车数据记录存储至数据库内的相关文件(即,字段文件、数据文件以及索引文件)中。当需要查询过车数据记录内的字段的内容时,按照本发明如下实施例所示方法进行查询。
参见图1,图1为本发明实施例提供的卡口过车数据记录的查询方法的流程图,包括以下步骤:
S101,接收查询请求,所述查询请求中至少包括一个待查询字段;
查询请求中至少包括一个待查询字段,可以理解为,该查询请求中可以包括一个待查询的字段、或者该查询请求中可以包括两个待查询的字段、或者该查询请求中可以包括三个待查询的字段、或者该查询请求中可以包括更多个待查询的字段。这里,待查询的字段可以为车牌号码、车辆颜色、过车时间、卡口名称、车辆类型以及过车图片中的一个或多个字段。
S102,获取所述待查询字段所对应的索引文件,在该索引文件中查询该待查询字段的内容对应的记录编号,获得所有待查询的记录编号;
具体的,每个待查询字段对应一个索引文件,即,车牌号码对应车牌号码索引文件,车辆颜色对应车辆颜色索引文件。根据待查询字段的字段名称,在对应的索引文件中,查询该待查询字段的内容对应的记录编号。例如,当用户查询车牌号码时,将车牌号码输入数据库查询***,根据该待查询字段的字段名称(车牌号码),在车牌号码索引文件中,查询该车牌号码的内容对应的记录编号。例如,当用户要查询车牌号码的内容为“A12345”时,在车牌号码索引文件(表6)得到该车牌号码的内容“A12345”对应的记录编号“01”和记录编号“06”。
优选的,根据该待查询字段的字段名称,通过二分法,在车牌号码索引文件中,查询该车牌号码的内容对应的记录编号。
在本发明实施例的一种可能实现方式中,在查询请求中包括两个以上待查询字段时,在所述两个以上待查询字段对应的索引文件中查询该待查询字段的内容对应的记录编号,获得所有待查询的记录编号的步骤包括:在该索引文件中查询所述两个以上待查询字段的内容对应的记录编号后,对各个查询字段对应的记录取交集;将取交集后的所有记录编号作为所获得的所有待查询的记录编号。
具体的,当所述查询请求中同时包括输入车牌号码和卡口名称两个字段时,分别在车牌号码索引文件和卡口名称索引文件中查询该车牌号码和卡口名称两个字段的内容对应的记录编号,再对该记录编号取交集,获得包括这两个字段的所有过车数据记录的记录编号。例如,在查询请求中包括车牌号码和卡口名称两个字段时,且车牌号码和卡口名称这两个字段的内容分别为“C34567”和“Z卡口”,分别在车牌索引文件和卡口索引文件中,查询车牌号码的内容“C34567”和卡口名称的内容“Z卡口”对应的记录编号“03”、“08”、“11”和记录编号“03”、“06”、“11”,对记录编号“03”、“08”、“11”和记录编号“03”、“06”、“11”取交集,得到取交集后的记录编号“03”及“11”,其中,记录编号“03”及“11”对应的过车数据记录内字段的内容同时包括车牌号码“C34567”和“Z卡口”。
S103,根据预设的偏移量,依次计算所述所有待查询的记录编号中,每个记录编号在数据文件中的位置;在所述位置,根据数据文件中已存储的记录编号、字段的内容编号及字段名称的对应关系,查找所述记录编号所对应的字段的内容编号及字段名称;
这里,以表5为例,假设每条过车数据记录的记录编号以及各个字段的内容编号所占用的存储长度之和为232bit,则预设偏移量即为232bit,数据文件头所占用的存储长度为32bit。在索引文件中获得所有待查询的记录编号之后,根据预设偏移量,依次计算所述所有待查询的记录编号中,每个记录编号在数据文件中的位置。这里,假设获得的待查询的记录编号为“04”和“08”,则记录编号“04”在数据文件中的位置:32+232×(4-1)=728bit,其中,4代表记录编号“04”;记录编号“08”在数据文件中的位置:32+232×(8-1)=1656bit,其中,8代表记录编号“08”。在数据文件中的728bit以及1656bit的位置,根据已存储的记录编号“04”和“08”、字段的内容编号及字段名称的对应关系,查找记录编号“04”和“08”所对应的字段的内容编号及字段名称。
S104,根据所述字段名称获得与所述字段名称对应的字段文件,根据所述字段的内容编号从所述字段文件中查询出该字段的内容编号所对应的内容;
在本发明实施例的一种可能的实现方式中,根据字段名称获得与所述字段名称对应的字段文件,包括:如果所述字段名称对应的字段为第一类型字段,在内存中获得该字段名称对应的字段文件;如果所述字段名称对应的字段为第二类型字段,在磁盘中获得该字段名称对应的字段文件。
具体的,将获得的字段名称关联到该字段名称对应的字段文件。例如,将字段名称为车辆颜色的关联到车辆颜色字段文件,将字段名称为车牌号码关联到车牌号码字段文件。具体的,将第一类型字段的字段名称关联到内存中第一类型字段的字段名称对应的字段文件,将第二类字段的字段名称关联到磁盘中第二类型字段的字段名称对应的字段文件。
在本发明实施例的一种可能的实现方式中,根据所述字段的内容编号从所述字段文件中查询出该字段的内容编号所对应的内容,包括:如果所述字段文件在内存中,在该字段文件中,将所述字段的内容编号与该字段文件中的编号进行比对,获得与所述字段的内容编号所对应的内容;如果所述字段文件在磁盘中,计算该字段的内容编号在该字段文件中的偏移量,获得该字段的内容编号对应的内容。
需要注意的是,在内存中的字段文件中查询第一类型字段的内容编号所对应的内容时,将字段的内容编号与对应字段文件中的字段的内容所对应的编号比对,得到该内容编号所对应的内容。在磁盘中的字段文件中查询第二类型字段的内容时,根据所获的第二类字段的内容编号,计算该编号在对应的字段文件中的偏移量,根据该偏移量,在对应的字段文件中,获得第二类型字段的内容编号对应内容。例如,如表5所示,在数据文件中获得记录编号“11”所对应的各个字段的内容编号包括:过车时间的内容编号“11”、卡口名称的内容编号“12”、车牌号码的内容编号“23”、车辆颜色的内容编号“01”、车辆类型的内容编号“09”以及车辆图片url的内容编号“11”。将卡口名称的内容编号“12”与卡口名称字段文件中的编号“12”进行比对,得到卡口名称字段文件中编号“12”对应的卡口名称的内容“M卡口”,所述“M卡口”即为记录编号为“11”所对应的过车数据记录的卡口名称的内容;在车牌号码所对应的字段文件在磁盘中时,计算该车牌号码的内容编号在车牌号码字段文件中的偏移量。例如,车牌号码的内容在车牌号码字段文件中的偏移量为64×(23-1)=1408bit,根据该偏移量得到该车牌号码的内容编号“23”在磁盘中的车牌号码字段文件中的对应的车牌号码的内容“A45678”。
S105,输出所述待查询字段及与所述待查询字段对应的目标字段,其中,所述目标字段包括所述字段的内容编号所在的字段文件名称及所述字段的内容编号所对应的内容。
这里,目标字段指在输入待查询的字段时,指定要查询的过车数据记录中的字段。例如,查询请求中包括车牌号码和卡口名称,目标字段包括:车辆颜色、车辆类型、过车时间以及过车图片url中的一个字段或者多个字段。目标字段,就是用户在查询请求中所指示的在查询的结果中,要显示的字段。
可见,本发明实施例提供的卡口过车数据记录的查询方法,根据卡口过车数据记录的字段重复性高的特点,查询卡口过车数据记录时,在内存中读取重复性高的字段的内容,实现快速查询卡口过车数据记录。应用本发明实施例可以降低存储卡口过车数据记录的存储空间,同时,降低了硬件成本,提升了查询卡口过车数据记录的速度。
参见图2,图2为本发明实施例提供的卡口过车数据记录的查询装置的结构示意图,包括:
接收单元210,用于接收查询请求,所述查询请求中至少包括一个待查询字段;
查询索引文件单元220,用于获取所述待查询字段所对应的索引文件,在该索引文件中查询该待查询字段的内容对应的记录编号,获得所有待查询的记录编号;
查询数据文件单元230,用于根据预设的偏移量,依次计算所述所有待查询的记录编号中,每个记录编号在数据文件中的位置;在所述位置,根据数据文件中已存储的记录编号、字段的内容编号及字段名称的对应关系,查找所述记录编号所对应的字段的内容编号及字段名称;
查询字段文件单元240,用于根据所述字段名称获得与所述字段名称对应的字段文件,根据所述字段的内容编号从所述字段文件中查询出该字段的内容编号所对应的内容;
输出单元250,用于输出所述待查询字段及与所述待查询字段对应的目标字段,其中,所述目标字段包括所述字段的内容编号所在的字段文件名称及所述字段的内容编号所对应的内容。
在本发明实施例的一种可能实现方式中,所述装置还包括:
第一查询索引文件单元,用于在该索引文件中查询所述两个以上待查询字段的内容对应的记录编号后,对各个查询字段对应的记录取交集;
取交集单元,用于将取交集后的所有记录编号作为所获得的所有待查询的记录编号。
参见图3,图3为本发明实施例提供的卡口过车数据记录的查询装置的查询字段文件单元的结构示意图,具体包括:
第一查询字段文件子单元310,用于如果所述字段名称对应的字段为第一类型字段,在内存中获得该字段名称对应的字段文件;
第二查询字段文件子单元320,用于如果所述字段名称对应的字段为第二类型字段,在磁盘中获得该字段名称对应的字段文件。
第三查询字段文件子单元330,用于如果所述字段文件在内存中,在该字段文件中,将所述字段的内容编号与该字段文件中的编号进行比对,获得与所述字段的内容编号所对应的内容;
第四查询字段文件子单元340,用于如果所述字段文件在磁盘中,计算该字段的内容编号在该字段文件中的偏移量,获得该字段的内容编号对应的内容。
可见,本发明实施例提供的卡口过车数据记录的查询装置,根据卡口过车数据记录的字段重复性高的特点,查询卡口过车数据记录时,在内存中读取重复性高的字段的内容,实现快速查询卡口过车数据记录。应用本发明实施例可以降低存储卡口过车数据记录的存储空间,同时,降低了硬件成本,提升了查询卡口过车数据记录的速度。
对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (9)
1.一种卡口过车数据记录的查询方法,其特征在于,所述卡口过车数据的存储方式为:将一定时间段内的所有过车数据记录存储在一个目录下;每条过车数据记录以多个字段的形式存储;在获得一条过车数据记录时,对该过车数据记录进行编号,得到该过车数据记录对应的记录编号;将该过车数据记录内的每个字段的内容及该过车数据记录对应的编号存储至字段文件中;将该过车数据记录内的每个字段的内容在该过车数据记录对应的字段文件内的编号写入数据文件中;将该过车数据记录内的每个字段的内容分别存储到每个字段对应的索引文件中;
所述卡口过车数据记录的查询方法包括:
接收查询请求,所述查询请求中至少包括一个待查询字段;
获取所述待查询字段所对应的索引文件,在该索引文件中查询该待查询字段的内容对应的记录编号,获得所有待查询的记录编号;
根据预设的偏移量,依次计算所述所有待查询的记录编号中,每个记录编号在数据文件中的位置;在所述位置,根据数据文件中已存储的记录编号、字段的内容编号及字段名称的对应关系,查找所述记录编号所对应的字段的内容编号及字段名称;
根据所述字段名称获得与所述字段名称对应的字段文件,根据所述字段的内容编号从所述字段文件中查询出该字段的内容编号所对应的内容;
输出所述待查询字段及与所述待查询字段对应的目标字段,其中,所述目标字段包括所述字段的内容编号所在的字段文件名称及所述字段的内容编号所对应的内容。
2.根据权利要求1所述的方法,其特征在于,在查询请求中包括两个以上待查询字段时,在所述两个以上待查询字段对应的索引文件中查询该待查询字段的内容对应的记录编号,获得所有待查询的记录编号的步骤包括:
在该索引文件中查询所述两个以上待查询字段的内容对应的记录编号后,对各个查询字段对应的记录取交集;
将取交集后的所有记录编号作为所获得的所有待查询的记录编号。
3.根据权利要求1所述的方法,其特征在于,所述根据所述字段名称获得与所述字段名称对应的字段文件,包括:
如果所述字段名称对应的字段为第一类型字段,在内存中获得该字段名称对应的字段文件;
如果所述字段名称对应的字段为第二类型字段,在磁盘中获得该字段名称对应的字段文件。
4.根据权利要求1所述的方法,其特征在于,所述根据所述字段的内容编号从所述字段文件中查询出该字段的内容编号所对应的内容,包括:
如果所述字段文件在内存中,在该字段文件中,将所述字段的内容编号与该字段文件中的编号进行比对,获得与所述字段的内容编号所对应的内容;
如果所述字段文件在磁盘中,计算该字段的内容编号在该字段文件中的偏移量,获得该字段的内容编号对应的内容。
5.根据权利要求1所述的方法,其特征在于,所述目标字段为一条过车数据记录中所记录的所有字段,或查询请求中所指示的在查询结果中所显示的字段。
6.一种卡口过车数据记录的查询装置,其特征在于,所述卡口过车数据的存储方式为:将一定时间段内的所有过车数据记录存储在一个目录下;每条过车数据记录以多个字段的形式存储;在获得一条过车数据记录时,对该过车数据记录进行编号,得到该过车数据记录对应的记录编号;将该过车数据记录内的每个字段的内容及该过车数据记录对应的编号存储至字段文件中;将该过车数据记录内的每个字段的内容在该过车数据记录对应的字段文件内的编号写入数据文件中;将该过车数据记录内的每个字段的内容分别存储到每个字段对应的索引文件中;
所述卡口过车数据记录的查询装置包括:
接收单元,用于接收查询请求,所述查询请求中至少包括一个待查询字段;
查询索引文件单元,用于获取所述待查询字段所对应的索引文件,在该索引文件中查询该待查询字段的内容对应的记录编号,获得所有待查询的记录编号;
查询数据文件单元,用于根据预设的偏移量,依次计算所述所有待查询的记录编号中,每个记录编号在数据文件中的位置;在所述位置,根据数据文件中已存储的记录编号、字段的内容编号及字段名称的对应关系,查找所述记录编号所对应的字段的内容编号及字段名称;
查询字段文件单元,用于根据所述字段名称获得与所述字段名称对应的字段文件,根据所述字段的内容编号从所述字段文件中查询出该字段的内容编号所对应的内容;
输出单元,用于输出所述待查询字段及与所述待查询字段对应的目标字段,其中,所述目标字段包括所述字段的内容编号所在的字段文件名称及所述字段的内容编号所对应的内容。
7.根据权利要求6所述的装置,其特征在于,所述查询请求中包括两个以上待查询字段,所述装置还包括:
第一查询索引文件单元,用于在该索引文件中查询所述两个以上待查询字段的内容对应的记录编号后,对各个查询字段对应的记录取交集;
取交集单元,用于将取交集后的所有记录编号作为所获得的所有待查询的记录编号。
8.根据权利要求6所述的装置,其特征在于,所述查询字段文件单元,包括:
第一查询字段文件子单元,用于如果所述字段名称对应的字段为第一类型字段,在内存中获得该字段名称对应的字段文件;
第二查询字段文件子单元,用于如果所述字段名称对应的字段为第二类型字段,在磁盘中获得该字段名称对应的字段文件。
9.根据权利要求6所述的装置,其特征在于,所述查询字段文件单元,还包括:
第三查询字段文件子单元,用于如果所述字段文件在内存中,在该字段文件中,将所述字段的内容编号与该字段文件中的编号进行比对,获得与所述字段的内容编号所对应的内容;
第四查询字段文件子单元,用于如果所述字段文件在磁盘中,计算该字段的内容编号在该字段文件中的偏移量,获得该字段的内容编号对应的内容。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610839845.9A CN107861956B (zh) | 2016-09-22 | 2016-09-22 | 一种卡口过车数据记录的查询方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610839845.9A CN107861956B (zh) | 2016-09-22 | 2016-09-22 | 一种卡口过车数据记录的查询方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107861956A CN107861956A (zh) | 2018-03-30 |
CN107861956B true CN107861956B (zh) | 2020-10-02 |
Family
ID=61698599
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610839845.9A Active CN107861956B (zh) | 2016-09-22 | 2016-09-22 | 一种卡口过车数据记录的查询方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107861956B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111179603B (zh) * | 2018-11-09 | 2021-03-02 | 杭州海康威视数字技术股份有限公司 | 一种车辆识别方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102929936A (zh) * | 2012-09-26 | 2013-02-13 | 东软集团股份有限公司 | 日志记录方法、日志查询方法及*** |
CN103617275A (zh) * | 2013-12-06 | 2014-03-05 | 中国联合网络通信集团有限公司 | 一种移动终端上网详细记录查询方法和*** |
CN105718436A (zh) * | 2015-12-18 | 2016-06-29 | 武汉开目信息技术有限责任公司 | 一种新型表格数据管理方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8271462B2 (en) * | 2010-12-10 | 2012-09-18 | Inventec Corporation | Method for creating a index of the data blocks |
-
2016
- 2016-09-22 CN CN201610839845.9A patent/CN107861956B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102929936A (zh) * | 2012-09-26 | 2013-02-13 | 东软集团股份有限公司 | 日志记录方法、日志查询方法及*** |
CN103617275A (zh) * | 2013-12-06 | 2014-03-05 | 中国联合网络通信集团有限公司 | 一种移动终端上网详细记录查询方法和*** |
CN105718436A (zh) * | 2015-12-18 | 2016-06-29 | 武汉开目信息技术有限责任公司 | 一种新型表格数据管理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107861956A (zh) | 2018-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102799634B (zh) | 数据存储方法及装置 | |
US8924373B2 (en) | Query plans with parameter markers in place of object identifiers | |
US9870382B2 (en) | Data encoding and corresponding data structure | |
CN108228817A (zh) | 数据处理方法、装置和*** | |
CN107992492B (zh) | 一种数据区块的存储方法、读取方法、其装置及区块链 | |
JP2019527898A (ja) | 大規模データセットの高速検索またはフィルタリングのためのシステム、方法、およびデータ構造 | |
CN110109910A (zh) | 数据处理方法及***、电子设备和计算机可读存储介质 | |
CN104765731A (zh) | 数据库查询优化方法和设备 | |
WO2018097846A1 (en) | Edge store designs for graph databases | |
CN105373541A (zh) | 数据库的数据操作请求的处理方法和*** | |
CN113177090A (zh) | 数据处理方法及装置 | |
CN111258819A (zh) | MySQL数据库备份文件的数据获取方法、装置和*** | |
CN101963993B (zh) | 一种数据库单表记录快速查找的方法 | |
CN100357952C (zh) | 一种二进制数据的访问方法 | |
CN107861956B (zh) | 一种卡口过车数据记录的查询方法及装置 | |
US20070282804A1 (en) | Apparatus and method for extracting database information from a report | |
CN106909623B (zh) | 一种支持高效海量数据分析和检索的数据装置及数据存储方法 | |
CN110019192B (zh) | 数据库的检索方法及装置 | |
CN116186116A (zh) | 一种基于等保测评的资产问题分析方法 | |
JP2001216307A (ja) | リレーショナルデータベース管理システム及びそれを記憶した記憶媒体 | |
CN110008243A (zh) | 一种数据表处理方法及装置 | |
US20230377692A1 (en) | Methods and systems for storing genomic data in a file structure comprising an information metadata structure | |
CN115344603A (zh) | 运价数据存储方法、装置、电子设备和计算机存储介质 | |
CN115114297A (zh) | 数据轻量存储及查找方法、装置、电子设备及存储介质 | |
CN110399396A (zh) | 高效的数据处理 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |