CN103150397A - 一种数据索引创建方法、数据检索方法和系统 - Google Patents

一种数据索引创建方法、数据检索方法和系统 Download PDF

Info

Publication number
CN103150397A
CN103150397A CN201310099809XA CN201310099809A CN103150397A CN 103150397 A CN103150397 A CN 103150397A CN 201310099809X A CN201310099809X A CN 201310099809XA CN 201310099809 A CN201310099809 A CN 201310099809A CN 103150397 A CN103150397 A CN 103150397A
Authority
CN
China
Prior art keywords
data
index
information
address
index information
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.)
Granted
Application number
CN201310099809XA
Other languages
English (en)
Other versions
CN103150397B (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.)
Beijing Runke General Technology Co Ltd
Original Assignee
Beijing Jingwei Hirain Tech 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 Beijing Jingwei Hirain Tech Co Ltd filed Critical Beijing Jingwei Hirain Tech Co Ltd
Priority to CN201310099809.XA priority Critical patent/CN103150397B/zh
Publication of CN103150397A publication Critical patent/CN103150397A/zh
Application granted granted Critical
Publication of CN103150397B publication Critical patent/CN103150397B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开一种数据索引创建方法、数据检索方法和系统。其中一种数据索引创建方法包括:获取数据表文件记录的所有索引信息;计算每个索引信息对应的索引记录区域大小,并依据索引记录区域大小计算每个索引信息的偏移首地址;按照数据在数据文件中存储顺序,将数据文件中预设大小的数据块存放在固定大小的内存中;逐条从内存中读取数据,并获取读取的每条数据的数据索引信息和数据地址信息;确定每条数据的数据索引信息对应的索引信息,将每条数据的数据地址信息存储到对应的索引信息的偏移首地址所对应的索引记录区域中;在将数据文件中所有数据的数据地址信息存储到对应的索引记录区域后,完成数据索引创建,以提高读取速度并节约空间。

Description

一种数据索引创建方法、数据检索方法和系统
技术领域
本申请涉及数据库领域,更具体地说,涉及一种数据索引创建方法、数据检索方法和系统。
背景技术
随着现在总线带宽的不断提高,电子系统的仿真测试必不可少,这样就需要处理大批量的信息数据,所以在关于数据库处理的问题,引起了各个行业的关注,关注的重点是对大批量的数据进行数据存储、数据查询和数据分析等方面的内容。
目前常用的数据库在进行大批量处理时,都是有一些要求的,如在Mysql数据库对大批量数据的处理之前,要确保有合适的存储引擎,而在该数据库中无法同时满足时间、存储容量和空间利用的需求;Mysql处理大批量数据可以使用多个值表的插入语句,由客户终端从存储Mysql数据库的服务器的磁盘中读取Mysql数据库中的数据,而从磁盘中读取数据降低读取速度,增加读取时间。
因此对于目前在处理数据尤其是处理大批量数据的时候,需要一种数据索引创建方法,以实现在时间上的节约,提高读取速度,并且保证空间上的合理分配。
发明内容
为解决上述技术问题,本申请提供一种数据索引创建方法,以实现在处理大批量数据时,可以快速的完成索引的创建,节约时间,提高读取速度,并且节约空间。其技术方案如下:
本申请实施例提供一种数据索引创建方法,用于创建数据文件的数据索引,包括:
获取与所述数据文件对应的数据表文件记录的所有索引信息;
计算每个索引信息对应的索引记录区域大小,并依据索引记录区域大小计算每个索引信息的偏移首地址;
按照数据在数据文件中存储顺序,将数据文件中预设大小的数据块存放在固定大小的内存中,其中所述数据文件预先存储在客户终端的硬盘中;
逐条从内存中读取数据,并获取读取的每条数据的数据索引信息和数据地址信息;
确定每条数据的数据索引信息对应的索引信息,将每条数据的数据地址信息存储到对应的索引信息的偏移首地址所对应的索引记录区域中;
在将所述数据文件中所有数据的数据地址信息存储到对应的索引记录区域后,完成数据索引创建。
优选地,所述依据索引记录区域大小计算每个索引信息的偏移首地址包括:
对于任意一个索引信息,获取该索引信息在所有索引信息中的顺序;
在该索引信息在所有索引信息中的顺序为1时,则顺序为1的索引信息的偏移首地址为0;
在该索引信息在所有索引信息中的顺序为i,且i为正整数,i不等于1时,则顺序为i的索引信息的偏移首地址为顺序为i-1的索引信息的偏移首地址与顺序为i-1的索引信息对应的索引记录区域大小之和。
优选地,所述索引信息为关键字时,所述索引信息对应的索引记录区域大小为索引记录区域中每条数据占用字节数和该索引记录区域对应的偏移首地址在索引记录区域中占用字节数之和;
或者所述索引信息为时间点时,所述索引信息对应的索引记录区域大小为索引记录区域大小为索引记录区域中数据文件的号码占用字节数和该索引记录区域对应的偏移首地址在对应的索引记录区域中占用字节数之和;
或者所述索引信息为关键字和时间点时,所述索引信息对应的索引记录区域大小为索引记录区域中所有时间点内每条数据占用字节数和该索引记录区域对应的偏移首地址在对应的索引记录区域中占用字节数之和。
优选地,所述将每条数据的数据地址信息存储到对应的索引信息的偏移首地址所对应的索引记录区域中包括:将每条数据的数据地址信息存储到对应的索引信息的偏移首地址所对应的缓存中,当缓存中剩余空间为0时,将缓存中存储的数据地址信息存储到对应的索引记录区域中,并清除缓存。
本申请实施例还提供一种数据检索方法,预先应用上述数据索引创建方法创建数据文件的数据索引,所述数据检索方法包括:
接收数据检索请求;
提取所述数据检索请求中携带的索引信息,并获取所述索引信息的偏移首地址;
依据索引信息的偏移首地址,确定所述索引信息对应的索引记录区域;
依据所述索引记录区域中记录的数据地址信息,从数据文件中读取数据地址信息对应的数据。
本申请实施例还提供一种数据索引创建系统,用于创建数据文件的数据索引,包括:第一获取模块、第一计算模块、第一读取模块、第一存储模块和创建模块;其中:
第一获取模块,用于获取数据表文件记录的所有索引信息;
第一计算模块,用于计算每个索引信息对应的索引记录区域大小,并依据索引记录区域大小计算每个索引信息的偏移首地址;
第一读取模块,用于按照数据在数据文件中存储顺序,将数据文件中预设大小的数据块存放在固定大小的内存中;逐条从内存中读取数据,并获取读取的每条数据的数据索引信息和数据地址信息,其中所述数据文件预先存储在客户终端的硬盘中;
第一存储模块,用于确定每条数据的数据索引信息对应的索引信息,将每条数据的数据地址信息存储到对应的索引信息的偏移首地址所对应的索引记录区域中;
创建模块,用于在将所述数据文件中所有数据的数据地址信息存储到对应的索引记录区域后,完成数据索引创建。
优选地,所述第一计算模块包括:第二获取单元、判断单元、第一分配单元和第二分配单元;其中:
第二获取单元,用于对于任意一个索引信息,获取该索引信息在所有索引信息中的顺序;
判断单元,用于判断该索引信息在所有索引信息中的顺序;
第一分配单元,用于在该索引信息在所有索引信息中的顺序为1时,则顺序为1的索引信息的偏移首地址为0;
第二分配单元,用于在该索引信息在所有索引信息中的顺序为i,且i为正整数,i不等于1时,则顺序为i的索引信息的偏移首地址为顺序为i-1的索引信息的偏移首地址与顺序为i-1的索引信息对应的索引记录区域大小之和。
优选地,所述索引信息为关键字时,所述第二分配单元中所述索引信息对应的索引记录区域大小为索引记录区域中每条数据占用字节数和该索引记录区域对应的偏移首地址在对应的索引记录区域中占用字节数之和;
或者所述索引信息为时间点时,所述第二分配单元中所述索引信息对应的索引记录区域大小为索引记录区域中数据文件的号码占用字节数和该索引记录区域对应的偏移首地址在对应的索引记录区域中占用字节数之和;
或者所述索引信息为关键字和时间点时,所述第二分配单元中所述索引信息对应的索引记录区域大小为索引记录区域中所有时间点内每条数据占用字节数和该索引记录区域对应的的偏移首地址在对应的索引记录区域中占用字节数之和。
优选地,
所述第一存储模块包括:第二存储单元,用于将每条数据的数据地址信息存储到对应的索引信息的偏移首地址所对应的缓存中;
判断模块,用于判断缓存中剩余空间是否为0;
第三存储单元,用于在缓存中的剩余空间为0时,将缓存中存储的数据地址信息存储到对应的索引记录区域中,并清除缓存。
本申请实施例还提供一种数据检索系统,预先应用上述数据索引创建系统创建数据文件的数据索引,所述数据检索系统包括:
接收模块,用于接收数据检索请求;
提取模块,用于提取所述数据检索请求中携带的索引信息,并获取所述索引信息的偏移首地址;
匹配模块,用于依据索引信息的偏移首地址,确定所述索引信息对应的索引记录区域;
读取模块,用于依据所述索引记录区域中记录的数据地址信息,从数据文件中读取数据地址信息对应的数据。
应用本申请提供的技术方案,首先根据数据表文件记录的所有的索引信息,计算得到每个索引信息在索引记录区域中的偏移首地址;按照数据在数据文件中存储顺序,将数据文件中预设大小的数据库存放在固定大小的内存中,并逐条从内存中读取数据,并获取读取的每条数据的数据索引信息和数据地址信息,将每条数据的数据地址信息存储到对应的索引信息的偏移首地址所对应的缓存中,在将所述数据文件中所有数据的数据地址信息存储到对应的索引记录区域后,完成数据索引创建。
在应用本申请提供的技术方案时,数据文件预先存储在客户终端的硬盘中,因此客户终端可以直接对自身存储的数据文件建立数据索引,并依据数据索引检索数据文件,从而省去客户终端和服务器之间的反复的连接建立和断开时间,提高读取速度。而且在读取数据时可以从内存中读取数据,进一步节省读取时间,提高读取速度。并且通过计算每个索引信息对应的索引记录区域大小,则可以为每个索引记录区域分配固定的空间,如索引记录区域在存放数据地址信息时,可以使相邻两个索引记录区域中一个索引记录区域的尾地址和另一个索引记录区域的首地址相连,即相邻两个索引记录区域之间没有空闲区域,从而可以节约空间。
附图说明
图1为本申请中提供的数据索引创建方法的一种流程图;
图2为本申请中数据表文件的结构示意图;
图3为本申请中计算每个索引信息的偏移首地址的具体流程图;
图4为本申请中索引信息为关键字时的索引文件的内部结构图;
图5为本申请中索引信息为时间点时的索引文件的内部结构图;
图6为本申请中索引信息为关键字和时间点时的索引文件的内部结构图;
图7为本申请中提供的数据检索方法的一种流程图;
图8为本申请中数据索引创建系统的结构示意图;
图9为本申请中第一计算模块的结构示意图;
图10为本申请中第一存储模块的结构示意图;
图11为本申请中数据检索系统的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请提供了一种数据索引创建方法,首先根据数据表文件记录的所有索引信息,计算每个索引信息的偏移首地址;然后按照数据在数据文件中存储顺序存放在固定大小的内块中,并逐条从内存中读取数据,并获取读取的每条数据的数据索引信息和数据地址信息;确定每条数据的数据索引信息对应的索引信息,将每条数据的数据地址信息存储到对应的索引信息的偏移首地址所对应的索引记录区域中,在数据文件中所有数据的数据地址信息存储到对应的索引记录区域后完成数据索引的创建。
一个实施例
请参阅图1,其示出了本申请中提供的数据索引创建方法的一种流程图,该数据索引创建方法用于创建数据文件的数据索引,可以包括以下步骤:
步骤101:获取与数据文件对应的数据表文件记录的所有索引信息。
因为数据文件较大,所以在每次存储的时候,会有一个与数据文件对应的数据表文件,数据表文件中存储的是数据文件的信息。请参阅图2,其示出了本申请中数据表文件的结构示意图,包括:starttime、endtime、totalfilenum、key、key_count和key_seq。其中starttime为数据文件中第一条数据记录时间、endtime为数据文件最后一条数据记录时间,totalfilenum为每一次试验后对应的数据文件的个数;key为关键字,key_count为关键字key的条数,key_seq为关键字key的序列号。
步骤102:计算每个索引信息对应的索引记录区域大小,并依据索引记录区域大小计算每个索引信息的偏移首地址。
在本实施例中,索引信息可以为关键字,如数据表文件中的key字段,如一个表示各地时间点的温度的数据文件中,其中关键字可以为地区,不同的关键字表示不同的地区。当然数据表文件中的starttime和endtime之间的时间可以划分为多个时间段,每个时间段的起始时间为时间点,并将时间点作为索引信息。此外索引信息还可以为关键字和时间点。
需要说明的是,对于一个数据文件,如果除了时间点和地区之外,还有其它多个不同的标注信息,那么可以从中选择一个标注信息作为关键字。
由于不同数据文件中存储的数据条数可能互不相同,且为了便于在数据量较大时可以方便对数据文件中的数据进行读取,需要对不同数据文件分别创建数据索引,并将不同数据文件的数据索引存储在不同区域中,所以在创建数据文件的数据索引时,需要获取不同数据文件的数据索引占用的空间以及索引信息的偏移首地址。
在本实施例中不同数据文件的数据索引占用的空间可以根据上述的数据表文件中的信息内容计算得出,进一步可以结合各个索引记录区域大小及索引记录区域顺序,计算该区域偏移首地址,具体请参阅图3,其示出了本申请中计算每个索引信息的偏移首地址的具体流程图,包括以下步骤:
S1:对于任意一个索引信息,获取该索引信息在所有索引信息中的顺序。
其中,索引信息在所有索引信息中的顺序,即索引信息是所有索引信息中的第几个索引信息。以索引信息为关键字为例,数据表文件中key_seq为关键字key的序列号,该序列号表明关键字key是第几个关键字,所以该序列号可以表明索引信息为关键字时,索引信息在所有索引信息中的顺序。
而在索引信息为时间点时,可以依据对starttime和endtime之间的时间的划分确定索引信息在所有索引信息中的顺序。
S2:在该索引信息在所有索引信息中的顺序为1时,则顺序为1的索引信息的偏移首地址为0。
S3:在该索引信息在所有索引信息中的顺序为i,且i为正整数,i不等于1时,则顺序为i的索引信息的偏移首地址为顺序为i-1的索引信息的偏移首地址与顺序为i-1的索引信息对应的索引记录区域大小之和。
通过上述方法可以计算出每个索引信息的偏移首地址。
在索引信息为关键字时,偏移首地址的计算过程如下:首先获取此关键字在关键字中的顺序,关键字的顺序为1时,关键字对应的偏移首地址为0,关键字的顺序为i,且i为正整数,i不等于1时,则顺序为i的索引信息的偏移首地址为顺序为i-1的索引信息的偏移首地址与顺序为i-1的索引信息对应的索引记录区域大小之和。其中,所述索引信息对应的索引记录区域大小为索引记录区域中每条数据占用字节数和该索引记录区域对应的偏移首地址在对应的索引记录区域中占用字节数之和。
在索引信息为时间点时,偏移首地址的计算过程如下:对于任意一个时间点,获取该时间点在所有索引信息中的顺序;在该时间点在所有索引信息中的顺序为1时,则顺序为1的时间点的偏移首地址为0;在该时间点在所有时间点中的顺序为i,且i为正整数,i不等于1时,则顺序为i的时间点的偏移首地址为顺序为i-1的时间点的偏移首地址与顺序为i-1的时间点对应的索引记录区域大小之和。其中,所述索引信息对应的索引记录区域大小为索引记录区域中数据文件的号码占用字节数和该索引记录区域对应的的偏移首地址在对应的索引记录区域中占用字节数之和。
在索引信息为关键字和时间点时偏移首地址的计算过程如下:用坐标(x,y)表示索引信息为关键字和时间点的偏移地址,其中i表示该关键字在关键字信息中的顺序,其偏移地址为x,j表示该时间点在时间点信息中的顺序,偏移地址为y。当关键字的顺序为1,时间点的顺序为1时的偏移地址可以表示为(0,0);关键字的顺序为i,时间点的顺序为j的偏移地址中x为关键字顺序为i-1,时间点顺序为j的索引记录的偏移地址与关键字顺序为i-1,时间点顺序为j的索引记录的长度之和。y为关键字顺序为i,时间点顺序为j-1的索引记录的偏移地址与关键字顺序为i,时间点顺序为j-1的索引记录的长度之和。
步骤103:按照数据在数据文件中存储顺序,将数据文件中预设大小的数据块存放在固定大小的内存中;逐条从内存中读取数据,并获取读取的每条数据的数据索引信息和数据地址信息,其中所述数据文件预先存储在客户终端的硬盘中。
在本实施例中,数据文件在读取之前首先是按照数据在数据文件中存储顺序存放在固定大小的内存中,并逐条从内存中读取数据。由于在读取数据时可以从内存中逐条读取,而内存的读取速度优于其他方式,所以从内存中读取数据加快本实施例提供的数据索引创建方法的处理速度,节约时间。
在从内存中逐条读取数据时,首先判断内存中是否存储有数据,如果内存中存储有数据,则直接从内存中逐条读取数据;如果内存中未存储有数据,则判断数据文件中是否存储有未存储到内存中的数据,如果有,则将数据文件中的数据存储到内存中,再从内存中逐条读取数据。
步骤104:确定每条数据的数据索引信息对应的索引信息,将每条数据的数据地址信息存储到对应的索引信息的偏移首地址所对应的索引记录区域中。
在内存的迭代器中记录有数据表文件中所有索引信息,并且对于不同索引信息分配不同的缓存,因此在内存逐条读取到数据后,首先查找迭代器中为该数据对应的索引信息分配的缓存,再将数据的数据地址信息存储到该缓存中。
需要说明的是:缓存的存储空间有限,所以将每条数据的数据地址信息存储到对应的索引信息的偏移首地址所对应的缓存中时,当缓存中剩余空间为0时,首先将缓存中存储的数据地址信息存储到对应的索引记录区域中,然后清除缓存,以存储其他数据的数据地址信息。
步骤105:在将所述数据文件中所有数据的数据地址信息存储到对应的索引记录区域后,完成数据索引创建。
数据文件中的所有数据的地址信息都被完全存储到对应的索引记录区域时,则完成了此数据文件的数据索引创建。
如数据文件为记录北京的天气的数据文件,索引信息可以为关键字——北京,相应地北京这一索引信息对应的索引记录区域为用于存储所有索引信息区域中的第一个索引记录区域,则记录北京的天气的数据文件中的所有数据的数据地址信息可以依次存储到第一个索引记录区域中。
请参阅图4,其示出了本实施例中索引信息为关键字时的索引文件的内部结构图,在图中key1关键字记录区域内记录有n条关键字为key1的数据地址信息,从偏移首地址开始依次存储;在索引记录中存储的信息为datefilenum和dataoffset,其中datefilenum为数据文件编号,dataoffset为数据偏移地址。因此可以得出每条索引记录所占空间的长度。
请参阅图5,其示出了本实施例中索引信息为时间点时的索引文件的内部结构图,在图中T0、T1、T2...Tn为选取的时间点,下面的atefilenum和dataoffset分别为数据文件的号码和该时间点数据记录的起始偏移地址。
请参阅图6,其示出了本实施例中索引信息为关键字和时间点时的索引文件的内部结构示意图,在图中第一行为各个时间点、然后接着是关键字为key1的索引记录区域,其中offset1表示关键字为key1的偏移首地址,时间点下面第一行的count1、count2...countn为关键字key1的各个时间点到来的数据在该关键字中的条数。
通过本实施例提供的数据索引创建方法,可以在内存中逐条读取数据文件,并且在迭代器中建立各个索引信息的缓存,可以将数据文件中索引信息相同的多个数据的数据地址信息暂时放入到迭代器中对应的缓存,当其缓存中没有空余空间时,将多个数据的数据地址信息同时放入到相对应的索引记录区域中,节约了时间,提高了索引创建的效率。在本申请提供的技术方案在为每个索引记录区域分配固定的空间,这样可以节约空间,提高了空间利用率。
与上述数据索引创建方法相对应,本申请还提供了一种数据检索方法,请参阅图7,其示出了本申请中数据检索方法的流程图,主要包括以下步骤:
步骤701:接收数据检索请求。
在接收数据检索请求检索数据之前,首先需要创建数据文件的数据索引。其中数据文件的数据索引创建可以参见图1至图6的示意图以及示意图对应的实施例说明,对此不再加以阐述。
步骤702:提取所述数据检索请求中携带的索引信息,并获取所述索引信息的偏移首地址。
在本实施例中接收数据检索请求的过程其实是接收一个索引信息的过程。即在接收到的数据索引请求中携带有索引信息,该索引信息对应用户需要检索的数据文件。由于不同索引信息具有不同偏移首地址,所以在确定索引信息后,即可以获知该索引信息的偏移首地址。
当索引信息为关键字时,可以根据其关键字和在关键字中的条数从图4所示的结构图中找到对应的偏移首地址。当索引信息为时间点时,可以根据时间点从图5所示的结构图中找到对应的偏移首地址。当索引信息为关键字和时间点时,可以根据其提供的关键字和时间点信息从图6所示的结构图中找到对应的偏移首地址。
如索引信息为北京时,而在数据索引创建过程中北京这一索引信息的偏移首地址为50,所以在接收到北京这一索引信息对应的数据文件提出的数据检索请求,即可以获知北京这一索引信息的偏移首地址为50。
步骤703:依据索引信息的偏移首地址,确定所述索引信息对应的索引记录区域。
在索引信息的偏移首地址为已知的情况下,则可以确定索引信息对应的索引记录区域。当然还可以根据索引信息在该所有索引信息中的顺序确定其对应的索引记录区域。
步骤704:依据所述索引记录区域中记录的数据地址信息,从数据文件中读取数据地址信息对应的数据。
在索引信息对应的索引记录区域中存储有数据地址信息,而该数据地址信息为数据文件中每条数据的存储地址,所以依据数据地址信息即可以从数据文件中读取数据即可完成数据的检索。
与上述方法相对应,本申请还提供了一种数据索引创建系统,用于创建数据文件的数据索引,请参阅图8,其示出了本申请中数据索引创建系统的结构示意图,包括:第一获取模块801、第一计算模块802、第一读取模块803、第一存储模块804和创建模块805;其中:
第一获取模块801,用于获取与数据文件对应的数据表文件记录的所有索引信息。
数据表文件中存储的是数据文件的信息请参阅图2,其示出了本申请中数据表文件的结构示意图,包括:starttime、endtime、totalfilenum、key、key_count和key_seq。其中starttime为数据文件中第一条数据记录时间、endtime为数据文件最后一条数据记录时间,totalfilenum为每一次试验后对应的数据文件的个数;key为关键字,key_count为关键字key的条数,key_seq为关键字key的序列号。
第一计算模块802,用于计算每个索引信息对应的索引记录区域大小,并依据索引记录区域大小计算每个索引信息的偏移首地址。
在本实施例中不同数据文件的数据索引占用的空间可以根据上述的数据表文件中的信息内容计算得出,进一步可以结合数据索引占用的空间计算出数据索引信息的偏移首地址,请参阅图9,其示出了本申请中第一计算模块802的结构示意图,所述第一计算模块802包括:第二获取单元901、第一判断单元902、第一分配单元903和第二分配单元904;其中:
第二获取单元901,用于对于任意一个索引信息,获取该索引信息在所有索引信息中的顺序。
索引信息在所有索引信息中的顺序,即索引信息是所有索引信息中的第几个索引信息。以索引信息为关键字为例,数据表文件中key_seq为关键字key的序列号,该序列号表明关键字key是第几个关键字,所以该序列号可以表明索引信息为关键字时,索引信息在所有索引信息中的顺序。
第一判断单元902,用于判断该索引信息在所有索引信息中的顺序。
第一分配单元903,用于在该索引信息在所有索引信息中的顺序为1时,则顺序为1的索引信息的偏移首地址为0。
第二分配单元904,用于在该索引信息在所有索引信息中的顺序为i,且i为正整数,i不等于1时,则顺序为i的索引信息的偏移首地址为顺序为i-1的索引信息的偏移首地址与顺序为i-1的索引信息对应的索引记录区域大小之和。
索引信息为关键字时,所述第二分配单元904中所述索引信息对应的索引记录区域大小为索引记录区域中每条数据占用字节数和该索引记录区域对应的的偏移首地址在对应的索引记录区域中占用字节数之和。
索引信息为时间点时,所述第二分配单元904中所述索引信息对应的索引记录区域大小为索引记录区域中数据文件的号码占用字节数和该索引记录区域对应的的偏移首地址在对应的索引记录区域中占用字节数之和。
索引信息为关键字和时间点时,所述第二分配单元904中所述索引信息对应的索引记录区域大小为索引记录区域中所有时间点内每条数据占用字节数和该索引记录区域对应的偏移首地址在对应的索引记录区域中占用字节数之和。
第一读取模块803,用于按照数据在数据文件中存储顺序,将数据文件中预设大小的数据块存放在固定大小的内存中;逐条从内存中读取数据,并获取读取的每条数据的数据索引信息和数据地址信息,其中所述数据文件预先存储在客户终端的硬盘中。
请参阅图10,其示出了本申请中第一存储模块804的结构示意图,所述第一存储模块804包括:第二存储单元401,用于将每条数据的数据地址信息存储到对应的索引信息的偏移首地址所对应的缓存中;
第二判断单元402,用于判断缓存中剩余空间是否为0;
第三存储单元403,用于在缓存中的剩余空间为0时,将缓存中存储的数据地址信息存储到对应的索引记录区域中,并清除缓存。
在内存的迭代器中记录有数据表文件中所有索引信息,并且对于不同索引信息分配不同的缓存,因此在内存逐条读取到数据后,首先查找迭代器中为该数据对应的索引信息分配的缓存,再将数据的数据地址信息存储到该缓存中。
创建模块805,用于在将所述数据文件中所有数据的数据地址信息存储到对应的索引记录区域后,完成数据索引创建。
数据文件中的所有数据的地址信息都被完全存储到对应的索引记录区域时,则完成了此数据文件的数据索引创建。
与上述方法实施例相对应,本申请还提供了一种数据检索系统,请参阅图11,其示出了本申请中数据检索系统的结构示意图,所述数据检索系统包括:接收模块501、提取模块502、匹配模块503和读取模块504;其中:
接收模块501,用于接收数据检索请求。
在接收数据检索请求检索数据之前,首先需要创建数据文件的数据索引。其中数据文件的数据索引系统可以参见图8至图10的示意图以及示意图对应的实施例说明,对此不再加以阐述。
提取模块502,用于提取所述数据检索请求中携带的索引信息,并获取所述索引信息的偏移首地址。
在本实施例中接收数据检索请求的过程其实是接收一个索引信息的过程。即在接收到的数据索引请求中携带有索引信息,该索引信息对应用户需要检索的数据文件。由于不同索引信息具有不同偏移首地址,所以在确定索引信息后,即可以获知该索引信息的偏移首地址。
匹配模块503,用于依据索引信息的偏移首地址,确定所述索引信息对应的索引记录区域;
在索引信息的偏移首地址为已知的情况下,则可以确定索引信息对应的索引记录区域。当然还可以根据索引信息在该所有索引信息中的顺序确定其对应的索引记录区域。
读取模块504,用于依据所述索引记录区域中记录的数据地址信息,从数据文件中读取数据地址信息对应的数据。
在索引信息对应的索引记录区域中存储有数据地址信息,而该数据地址信息为数据文件中每条数据的存储地址,所以依据数据地址信息即可以从数据文件中读取数据即可完成数据的检索。
以上所描述的装置或系统实施例仅仅是示意性的,其中所述作为分离部件说明的装置/单元可以是或者也可以不是物理上分开的,作为装置/单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个设备单元上来实现。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,在没有超过本申请的精神和范围内,可以通过其他的方式实现。当前的实施例只是一种示范性的例子,不应该作为限制,所给出的具体内容不应该限制本申请的目的。例如,所述单元或子单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或多个子单元结合一起。另外,多个单元可以或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
以上所述仅是本申请的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (10)

1.一种数据索引创建方法,用于创建数据文件的数据索引,其特征在于,包括:
获取与所述数据文件对应的数据表文件记录的所有索引信息;
计算每个索引信息对应的索引记录区域大小,并依据索引记录区域大小计算每个索引信息的偏移首地址;
按照数据在数据文件中存储顺序,将数据文件中预设大小的数据块存放在固定大小的内存中,其中所述数据文件预先存储在客户终端的硬盘中;
逐条从内存中读取数据,并获取读取的每条数据的数据索引信息和数据地址信息;
确定每条数据的数据索引信息对应的索引信息,将每条数据的数据地址信息存储到对应的索引信息的偏移首地址所对应的索引记录区域中;
在将所述数据文件中所有数据的数据地址信息存储到对应的索引记录区域后,完成数据索引创建。
2.根据权利要求1所述的数据索引创建方法,其特征在于,所述依据索引记录区域大小计算每个索引信息的偏移首地址包括:
对于任意一个索引信息,获取该索引信息在所有索引信息中的顺序;
在该索引信息在所有索引信息中的顺序为1时,则顺序为1的索引信息的偏移首地址为0;
在该索引信息在所有索引信息中的顺序为i,且i为正整数,i不等于1时,则顺序为i的索引信息的偏移首地址为顺序为i-1的索引信息的偏移首地址与顺序为i-1的索引信息对应的索引记录区域大小之和。
3.根据权利要求2所述的数据索引创建方法,其特征在于,所述索引信息为关键字时,所述索引信息对应的索引记录区域大小为索引记录区域中每条数据占用字节数和该索引记录区域对应的偏移首地址在索引记录区域中占用字节数之和;
或者所述索引信息为时间点时,所述索引信息对应的索引记录区域大小为索引记录区域大小为索引记录区域中数据文件的号码占用字节数和该索引记录区域对应的偏移首地址在对应的索引记录区域中占用字节数之和;
或者所述索引信息为关键字和时间点时,所述索引信息对应的索引记录区域大小为索引记录区域中所有时间点内每条数据占用字节数和该索引记录区域对应的偏移首地址在对应的索引记录区域中占用字节数之和。
4.根据权利要求1至3任意一项所述的数据索引创建方法,其特征在于,所述将每条数据的数据地址信息存储到对应的索引信息的偏移首地址所对应的索引记录区域中包括:将每条数据的数据地址信息存储到对应的索引信息的偏移首地址所对应的缓存中,当缓存中剩余空间为0时,将缓存中存储的数据地址信息存储到对应的索引记录区域中,并清除缓存。
5.一种数据检索方法,其特征在于,预先应用权利要求1至4任意一项所述的数据索引创建方法创建数据文件的数据索引,所述数据检索方法包括:
接收数据检索请求;
提取所述数据检索请求中携带的索引信息,并获取所述索引信息的偏移首地址;
依据索引信息的偏移首地址,确定所述索引信息对应的索引记录区域;
依据所述索引记录区域中记录的数据地址信息,从数据文件中读取数据地址信息对应的数据。
6.一种数据索引创建系统,用于创建数据文件的数据索引,其特征在于,包括:第一获取模块、第一计算模块、第一读取模块、第一存储模块和创建模块;其中:
第一获取模块,用于获取与所述数据文件对应的数据表文件记录的所有索引信息;
第一计算模块,用于计算每个索引信息对应的索引记录区域大小,并依据索引记录区域大小计算每个索引信息的偏移首地址;
第一读取模块,用于按照数据在数据文件中存储顺序,将数据文件中预设大小的数据块存放在固定大小的内存中;逐条从内存中读取数据,并获取读取的每条数据的数据索引信息和数据地址信息,其中所述数据文件预先存储在客户终端的硬盘中;
第一存储模块,用于确定每条数据的数据索引信息对应的索引信息,将每条数据的数据地址信息存储到对应的索引信息的偏移首地址所对应的索引记录区域中;
创建模块,用于在将所述数据文件中所有数据的数据地址信息存储到对应的索引记录区域后,完成数据索引创建。
7.根据权利要求6所述的数据索引创建系统,其特征在于,所述第一计算模块包括:第二获取单元、判断单元、第一分配单元和第二分配单元;其中:
第二获取单元,用于对于任意一个索引信息,获取该索引信息在所有索引信息中的顺序;
判断单元,用于判断该索引信息在所有索引信息中的顺序;
第一分配单元,用于在该索引信息在所有索引信息中的顺序为1时,则顺序为1的索引信息的偏移首地址为0;
第二分配单元,用于在该索引信息在所有索引信息中的顺序为i,且i为正整数,i不等于1时,则顺序为i的索引信息的偏移首地址为顺序为i-1的索引信息的偏移首地址与顺序为i-1的索引信息对应的索引记录区域大小之和。
8.根据权利要求7所述的数据索引创建系统,其特征在于,所述索引信息为关键字时,所述第二分配单元中所述索引信息对应的索引记录区域大小为索引记录区域中每条数据占用字节数和该索引记录区域对应的偏移首地址在对应的索引记录区域中占用字节数之和;
或者所述索引信息为时间点时,所述第二分配单元中所述索引信息对应的索引记录区域大小为索引记录区域中数据文件的号码占用字节数和该索引记录区域对应的偏移首地址在对应的索引记录区域中占用字节数之和;
或者所述索引信息为关键字和时间点时,所述第二分配单元中所述索引信息对应的索引记录区域大小为索引记录区域中所有时间点内每条数据占用字节数和该索引记录区域对应的的偏移首地址在对应的索引记录区域中占用字节数之和。
9.根据权利要求6至8任意一项所述的数据索引创建系统,其特征在于,
所述第一存储模块包括:第二存储单元,用于将每条数据的数据地址信息存储到对应的索引信息的偏移首地址所对应的缓存中;
判断模块,用于判断缓存中剩余空间是否为0;
第三存储单元,用于在缓存中的剩余空间为0时,将缓存中存储的数据地址信息存储到对应的索引记录区域中,并清除缓存。
10.一种数据检索系统,其特征在于,预先应用权利要求6至9任意一项所述的数据索引创建系统创建数据文件的数据索引,所述数据检索系统包括:
接收模块,用于接收数据检索请求;
提取模块,用于提取所述数据检索请求中携带的索引信息,并获取所述索引信息的偏移首地址;
匹配模块,用于依据索引信息的偏移首地址,确定所述索引信息对应的索引记录区域;
读取模块,用于依据所述索引记录区域中记录的数据地址信息,从数据文件中读取数据地址信息对应的数据。
CN201310099809.XA 2013-03-26 2013-03-26 一种数据索引创建方法、数据检索方法和系统 Active CN103150397B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310099809.XA CN103150397B (zh) 2013-03-26 2013-03-26 一种数据索引创建方法、数据检索方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310099809.XA CN103150397B (zh) 2013-03-26 2013-03-26 一种数据索引创建方法、数据检索方法和系统

Publications (2)

Publication Number Publication Date
CN103150397A true CN103150397A (zh) 2013-06-12
CN103150397B CN103150397B (zh) 2016-03-16

Family

ID=48548474

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310099809.XA Active CN103150397B (zh) 2013-03-26 2013-03-26 一种数据索引创建方法、数据检索方法和系统

Country Status (1)

Country Link
CN (1) CN103150397B (zh)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104484332A (zh) * 2014-11-11 2015-04-01 珠海天琴信息科技有限公司 一种嵌入式系统中读写数据的方法及装置
CN106326305A (zh) * 2015-06-30 2017-01-11 星环信息科技(上海)有限公司 一种数据文件的存储和查询方法及设备
CN107132993A (zh) * 2016-02-26 2017-09-05 高德软件有限公司 一种将数据写入内存的方法及装置
CN107704329A (zh) * 2017-10-16 2018-02-16 中汇信息技术(上海)有限公司 一种消息持久化方法、服务器和计算机可读存储介质
CN107704604A (zh) * 2017-10-16 2018-02-16 中汇信息技术(上海)有限公司 一种消息持久化方法、服务器和计算机可读存储介质
CN108009254A (zh) * 2017-12-05 2018-05-08 北京百度网讯科技有限公司 多索引方法及装置、云系统以及计算机可读存储介质
CN108595508A (zh) * 2018-03-22 2018-09-28 佛山市顺德区中山大学研究院 一种基于后缀数组的自适应索引构建方法及系统
WO2019001296A1 (zh) * 2017-06-29 2019-01-03 中兴通讯股份有限公司 一种存储记录方法及装置
CN109799947A (zh) * 2017-11-16 2019-05-24 浙江宇视科技有限公司 分布式存储方法及装置
CN110059153A (zh) * 2019-03-29 2019-07-26 中国人民解放军63791部队 一种用于实时数据处理系统的数据交换方法
CN110347674A (zh) * 2019-06-03 2019-10-18 阿里巴巴集团控股有限公司 一种基于业务标识的索引创建方法、装置及设备
CN110442308A (zh) * 2019-07-05 2019-11-12 厦门四信物联网科技有限公司 一种数据块存储方法、装置、设备及存储介质
CN112035522A (zh) * 2020-07-16 2020-12-04 中科驭数(北京)科技有限公司 数据库数据获取方法和装置
US10963453B2 (en) 2019-06-03 2021-03-30 Advanced New Technologies Co., Ltd. Service identifier-based data indexing
CN114943021A (zh) * 2022-07-20 2022-08-26 之江实验室 一种tb级增量数据筛选方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070288428A1 (en) * 2006-06-09 2007-12-13 Mark John Anderson Apparatus and Method for Autonomic Index Creation
CN102270231A (zh) * 2011-07-21 2011-12-07 苏州阔地网络科技有限公司 一种数据库索引建立方法及装置
CN102467523A (zh) * 2010-11-03 2012-05-23 英业达股份有限公司 索引文件的建立方法与利用索引文件查询数据区块的方法
CN102646130A (zh) * 2012-03-12 2012-08-22 华中科技大学 一种海量历史数据的存储及索引方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070288428A1 (en) * 2006-06-09 2007-12-13 Mark John Anderson Apparatus and Method for Autonomic Index Creation
CN102467523A (zh) * 2010-11-03 2012-05-23 英业达股份有限公司 索引文件的建立方法与利用索引文件查询数据区块的方法
CN102270231A (zh) * 2011-07-21 2011-12-07 苏州阔地网络科技有限公司 一种数据库索引建立方法及装置
CN102646130A (zh) * 2012-03-12 2012-08-22 华中科技大学 一种海量历史数据的存储及索引方法

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104484332A (zh) * 2014-11-11 2015-04-01 珠海天琴信息科技有限公司 一种嵌入式系统中读写数据的方法及装置
CN106326305A (zh) * 2015-06-30 2017-01-11 星环信息科技(上海)有限公司 一种数据文件的存储和查询方法及设备
CN107132993A (zh) * 2016-02-26 2017-09-05 高德软件有限公司 一种将数据写入内存的方法及装置
WO2019001296A1 (zh) * 2017-06-29 2019-01-03 中兴通讯股份有限公司 一种存储记录方法及装置
CN107704329A (zh) * 2017-10-16 2018-02-16 中汇信息技术(上海)有限公司 一种消息持久化方法、服务器和计算机可读存储介质
CN107704604A (zh) * 2017-10-16 2018-02-16 中汇信息技术(上海)有限公司 一种消息持久化方法、服务器和计算机可读存储介质
CN109799947A (zh) * 2017-11-16 2019-05-24 浙江宇视科技有限公司 分布式存储方法及装置
CN108009254A (zh) * 2017-12-05 2018-05-08 北京百度网讯科技有限公司 多索引方法及装置、云系统以及计算机可读存储介质
US11222067B2 (en) 2017-12-05 2022-01-11 Beijing Baidu Netcom Science And Technology Co., Ltd. Multi-index method and apparatus, cloud system and computer-readable storage medium
CN108595508A (zh) * 2018-03-22 2018-09-28 佛山市顺德区中山大学研究院 一种基于后缀数组的自适应索引构建方法及系统
CN108595508B (zh) * 2018-03-22 2020-11-13 佛山市顺德区中山大学研究院 一种基于后缀数组的自适应索引构建方法及系统
CN110059153A (zh) * 2019-03-29 2019-07-26 中国人民解放军63791部队 一种用于实时数据处理系统的数据交换方法
CN110059153B (zh) * 2019-03-29 2023-09-26 中国人民解放军63791部队 一种用于实时数据处理系统的数据交换方法
CN110347674A (zh) * 2019-06-03 2019-10-18 阿里巴巴集团控股有限公司 一种基于业务标识的索引创建方法、装置及设备
US10963453B2 (en) 2019-06-03 2021-03-30 Advanced New Technologies Co., Ltd. Service identifier-based data indexing
US11106660B2 (en) 2019-06-03 2021-08-31 Advanced New Technologies Co., Ltd. Service identifier-based data indexing
US11816099B2 (en) 2019-06-03 2023-11-14 Advanced New Technologies Co., Ltd. Service identifier-based data indexing
CN110442308B (zh) * 2019-07-05 2022-05-17 厦门四信物联网科技有限公司 一种数据块存储方法、装置、设备及存储介质
CN110442308A (zh) * 2019-07-05 2019-11-12 厦门四信物联网科技有限公司 一种数据块存储方法、装置、设备及存储介质
CN112035522A (zh) * 2020-07-16 2020-12-04 中科驭数(北京)科技有限公司 数据库数据获取方法和装置
CN114943021A (zh) * 2022-07-20 2022-08-26 之江实验室 一种tb级增量数据筛选方法和装置
US11789639B1 (en) 2022-07-20 2023-10-17 Zhejiang Lab Method and apparatus for screening TB-scale incremental data

Also Published As

Publication number Publication date
CN103150397B (zh) 2016-03-16

Similar Documents

Publication Publication Date Title
CN103150397A (zh) 一种数据索引创建方法、数据检索方法和系统
US8938603B2 (en) Cache system optimized for cache miss detection
CN105224546B (zh) 数据存储和查询方法及设备
CN101276361B (zh) 一种显示相关关键词的方法及系统
CN102737133B (zh) 一种实时搜索的方法
CN104794228B (zh) 一种搜索结果提供方法及装置
CN102541757B (zh) 写缓存方法、缓存同步方法和装置
CN103150362B (zh) 一种视频搜索方法及系统
CN102682108B (zh) 一种行列混合的数据库存储方法
CN105373541A (zh) 数据库的数据操作请求的处理方法和系统
CN101963977A (zh) 无城市搜索方法及移动终端
CN105260464A (zh) 数据存储结构的转换方法及装置
CN103793439A (zh) 一种实时检索信息获取方法、装置及服务器
CN114116762A (zh) 一种离线数据模糊搜索方法、装置、设备和介质
CN103530298A (zh) 一种信息搜索方法和装置
CN104657513A (zh) 嵌入式系统中档案操作与快速检索方法
CN103354576A (zh) 手机及其手机号归属信息的存储及查找方法
CN110968723B (zh) 一种图像特征值的搜索方法、装置及电子设备
CN111831691A (zh) 一种数据读写方法及装置、电子设备、存储介质
CN109739854A (zh) 一种数据存储方法及装置
CN113626449A (zh) 数据存储、数据查询方法及相关设备
CN104915435A (zh) 数据查询方法和装置
CN111858581A (zh) 一种分页查询的方法、装置、存储介质和电子设备
CN108228802B (zh) 一种输入联想的推荐方法及装置
CN106599178B (zh) 一种可实现快速寻找并支持分布存储的大数据处理方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 4 / F, building 1, No.14 Jiuxianqiao Road, Chaoyang District, Beijing 100020

Patentee after: Beijing Jingwei Hirain Technologies Co.,Inc.

Address before: 100101 Beijing city Chaoyang District Anxiang Beili 11 B block 8 layer

Patentee before: Beijing Jingwei HiRain Technologies Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230614

Address after: 100192 5th floor, Zhizhen building, 7 Zhichun Road, Haidian District, Beijing

Patentee after: BEIJING RUNKE GENERAL TECHNOLOGY Co.,Ltd.

Address before: 4 / F, building 1, No.14 Jiuxianqiao Road, Chaoyang District, Beijing 100020

Patentee before: Beijing Jingwei Hirain Technologies Co.,Inc.