CN107644070B - 数据索引方法、数据查询方法及电子设备 - Google Patents
数据索引方法、数据查询方法及电子设备 Download PDFInfo
- Publication number
- CN107644070B CN107644070B CN201710824712.9A CN201710824712A CN107644070B CN 107644070 B CN107644070 B CN 107644070B CN 201710824712 A CN201710824712 A CN 201710824712A CN 107644070 B CN107644070 B CN 107644070B
- Authority
- CN
- China
- Prior art keywords
- position offset
- data
- fitting function
- field
- field value
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/285—Clustering or classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/137—Hash-based
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2272—Management thereof
-
- 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/23—Updating
- G06F16/235—Update request formulation
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种数据索引方法、数据查询方法及电子设备,数据索引方法包括:按照多个数据记录内预设字段的值创建关于多个数据记录的聚集索引,多个所述数据记录用于存储数据文件,所述预设字段的值为所述聚集索引的字段值;针对每个所述数据记录,绘制所述数据记录在所述数据文件中的偏移量关于字段值的数据分布图;对所述数据分布图进行曲线拟合,得到包含所述字段值与所述偏移量之间对应关系的索引关系式,以便于根据待查询的数据记录的字段值计算偏移量,进而查询到数据记录,达到减少索引数据的数据量,节省存储资源,便于将索引数据全部加载到磁盘中,查询时,只需一次定位即可查找到数据记录的技术效果。
Description
技术领域
本发明涉及大数据索引技术领域,尤其是涉及一种数据索引方法、数据查询方法及电子设备。
背景技术
Hadoop是一个能够对大量数据(例如几个GB、几个TB的文件)进行分布式处理的软件框架,它允许在整个集群使用简单编程模型计算机的分布式环境存储并处理大数据,它的目的是从单一的服务器到上千台机器的扩展,每一个台机都可以提供本地计算和存储。
目前已知的支持大数据的数据索引包括多级合并树和B+树等。以B+树为例,索引数据占用的存储资源会存在一个最小的极限,假设目标是一个查询平均扫描400KB的数据,2GB的数据大约就是2000MB/400KB=5K个索引项。假设key和偏移量都是64位整数,则一个索引项16字节,索引数据会有80KB,占用的存储资源较多,导致根据索引查询数据文件效率很低。
发明内容
有鉴于此,本发明的目的在于提供一种数据索引方法、数据查询方法及电子设备。以缓解现有技术中存在的索引数据占用的存储资源多,根据索引查询数据文件效率很低的技术问题。
第一方面,本发明实施例提供了一种数据索引方法,包括:
按照数据文件对应的多个数据记录中预设字段的字段值的顺序,创建所述数据文件的聚集索引,各个所述数据记录在所述数据文件中的位置偏移量不同;
为数据文件中的多个数据记录绘制字段值所对应的位置偏移量分布;
对所述各个字段值所对应的位置偏移量分布进行曲线拟合,得到拟合函数,以便于根据待查询数据记录中预设字段的字段值确定位置偏移量,进而根据确定的位置偏移量获取数据记录。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,对所述各个字段值所对应的位置偏移量分布进行曲线拟合,得到拟合函数,包括:
对多个字段值所对应的位置偏移量分布进行曲线拟合,得到拟合函数;
根据所述拟合函数,计算得到各个数据记录的位置偏移量;
在多个数据记录对应的实际的位置偏移量与计算得到的位置偏移量之间的偏差值均小于预设阈值时,确定所述拟合函数满足预设条件,保留所述拟合函数。
结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中,所述对所述各个字段值所对应的位置偏移量分布进行曲线拟合,得到拟合函数,还包括:
当所述拟合函数不满足预设条件时,将多个字段值划分为两个字段值集合;
针对每个所述字段值集合,分别对多个字段值所对应的位置偏移量分布进行曲线拟合,得到拟合函数;
当仅存在一个拟合函数满足预设条件时,将不满足预设条件的拟合函数对应的字段值集合中的多个字段值再次划分为两个字段值集合;
将再次划分得到的字段值集合中邻接满足预设条件的拟合函数的字段值集合,和,与预设条件的任一拟合函数对应的字段值集合组合后进行曲线拟合,得到拟合函数;
根据所述拟合函数,计算得到各个数据记录的位置偏移量,直至得到的拟合函数满足预设条件。
结合第一方面,本发明实施例提供了第一方面的第三种可能的实施方式,其中,所述对所述各个字段值所对应的位置偏移量分布进行曲线拟合,得到拟合函数,还包括:
在不满足预设条件的拟合函数对应的字段值集合中仍剩余若干个字段值,且将剩余的字段值与满足预设条件的拟合函数进行曲线拟合得到的拟合函数不满足预设条件时,在剩余的各个字段值中选择若干个字段值,其中,选择的若干个字段值及与字段值对应的各个位置偏移量单调递增,且,任意相邻的两个位置偏移量之间的差值为预设阈值;
为选择的各个字段值及其对应的位置偏移量分别利用原始索引方式建立索引。
结合第一方面,本发明实施例提供了第一方面的第四种可能的实施方式,其中,所述对所述各个字段值所对应的位置偏移量分布进行曲线拟合,得到拟合函数,还包括:
当所述拟合函数不满足预设条件时,确定各个所述实际的位置偏移量及其对应的字段值;
在确定的各个字段值中,判断是否存在任意两个相邻的字段值之间的差值大于预设阈值;
当存在任意两个相邻的字段值之间的差值大于预设阈值时,在数据文件中在差值大于预设阈值的两个相邻的字段值之间插入空白记录,以使两个相邻的字段值中最大的字段值对应的实际的位置偏移量变化,进而使根据各个字段值所对应的位置偏移量及插入的空白记录拟合得到拟合函数,且所述拟合函数满足预设条件。
结合第一方面,本发明实施例提供了第一方面的第五种可能的实施方式,其中,所述对所述各个字段值所对应的位置偏移量分布进行曲线拟合,得到拟合函数,还包括:
当所述拟合函数不满足预设条件时,确定实际的位置偏移量与计算得到的位置偏移量之间偏差值大于预设阈值的数据记录;
为所述数据记录在计算得到的位置偏移量处建立跳转到实际的位置偏移量处的跳转记录,以便根据所述跳转记录,查询到位于所述实际的位置偏移量处的数据记录。
结合第一方面,本发明实施例提供了第一方面的第六种可能的实施方式,其中,所述对所述各个字段值所对应的位置偏移量分布进行曲线拟合,得到拟合函数,还包括:
当所述拟合函数不满足预设条件时,确定实际的位置偏移量与计算得到的位置偏移量之间偏差值大于预设阈值的多个数据记录;
建立包含多个数据记录的字段值及实际的位置偏移量之间的对应关系跳转表,以便根据所述跳转表,查询到位于所述实际的位置偏移量处的数据记录。
结合第一方面,本发明实施例提供了第一方面的第七种可能的实施方式,其中,所述对所述各个字段值所对应的位置偏移量分布进行曲线拟合,得到拟合函数,包括:
在多个字段值中选择第一预设数量个字段值进行曲线拟合,得到拟合函数,其中,每两个相邻的字段值之间间隔第二预设数量个字段值。
第二方面,本发明实施例还提供一种数据查询方法,包括:
获取至少一个待查询的数据记录预设字段的字段值;
根据所述字段值及预设的拟合函数计算得到待查询的数据记录在数据文件中的位置偏移量,所述拟合函数根据所述各个字段值所对应的位置偏移量分布确定;
根据所述位置偏移量在所述数据文件中查询所述待查询的数据记录。
结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中,所述根据所述位置偏移量在所述数据文件中查询所述待查询的数据记录,包括:
将位置偏移量及预设阈值确定偏移量范围;
在所述偏移量范围内查询数据记录。
结合第二方面,本发明实施例提供了第二方面的第二种可能的实施方式,其中,当存在多个待查询的数据记录,且多个待查询的数据记录的字段值及位置偏移量单调递增时,所述方法还包括:
多个待查询的数据记录中最大的上界字段值,多个待查询的数据记录中最小的下界字段值;
利用所述拟合函数、所述上界字段值及所述下界字段值分别计算下界位置偏移量和上界位置偏移量;
根据所述拟合函数及所述下界位置偏移量计算参考字段值;
当所述参考字段值大于所述下界字段值时,确定小于所述下界字段值且与所述下界字段值相邻的候选字段值以及所述候选字段值对应的候选位置偏移量;
在从所述候选位置偏移量至所述上界位置偏移量之间查询,得到多个待查询的数据记录。
第三方面,本发明实施例还提供一种数据索引装置,包括:创建模块、绘制模块和拟合模块;
所述创建模块,用于按照数据文件对应的多个数据记录中预设字段的字段值的顺序,创建所述数据文件的聚集索引,各个所述数据记录在所述数据文件中的位置偏移量不同;
所述绘制模块,用于为数据文件中的多个数据记录绘制字段值所对应的位置偏移量分布;
所述拟合模块,用于对所述各个字段值所对应的位置偏移量分布进行曲线拟合,得到拟合函数,以便于根据待查询数据记录中预设字段的字段值确定位置偏移量,进而根据确定的位置偏移量获取数据记录。
第四方面,本发明实施例还提供一种数据查询装置,包括:获取模块、计算模块和查询模块;
所述获取模块,用于获取至少一个待查询的数据记录预设字段的字段值;
所述计算模块,用于根据所述字段值及预设的拟合函数计算得到待查询的数据记录在数据文件中的位置偏移量,所述拟合函数根据所述各个字段值所对应的位置偏移量分布确定;
所述查询模块,用于根据所述位置偏移量在所述数据文件中查询所述待查询的数据记录。
第五方面,本发明实施例还提供一种电子设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面或者第二方面所述的方法的步骤。
第六方面,本发明实施例还提供一种具有处理器可执行的非易失的程序代码的计算机可读介质,所述程序代码使所述处理器执行所述第一方面或者第二方面所述的方法。
本发明实施例带来了以下有益效果:本发明实施例通过按照多个数据记录内预设字段的值创建关于多个数据记录的聚集索引,多个所述数据记录用于存储数据文件,所述预设字段的值为所述聚集索引的字段值;然后针对每个所述数据记录,绘制所述数据记录在所述数据文件中的偏移量关于字段值的数据分布图;对所述数据分布图进行曲线拟合,可以得到包含所述字段值与所述偏移量之间对应关系的索引关系式,以便于根据待查询的数据记录的字段值计算偏移量,进而查询到数据记录。
通过首先获取至少一个待查询的数据记录的字段值;当所述字段值位于预设范围内时,然后根据所述字段值及预设的索引关系式计算得到待查询的数据记录在数据文件中的偏移量,可以根据所述偏移量在数据文件中进行查询,得到数据记录。
本发明实施例能够减少索引数据的数据量,节省存储资源,便于将索引数据全部加载到磁盘中,查询时,只需一次定位即可查找到数据记录。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的数据索引方法的流程图;
图2为本发明一种实施例提供的拟合曲线;
图3为本发明又一种实施例提供的拟合曲线;
图4为本发明又一种实施例提供的拟合曲线;
图5为本发明又一种实施例提供的拟合曲线;
图6为本发明又一种实施例提供的拟合曲线;
图7为本发明又一种实施例提供的拟合曲线;
图8为本发明又一种实施例提供的拟合曲线;
图9为本发明实施例提供的数据查询方法的流程图;
图10为本发明又一种实施例提供的拟合曲线;
图11为本发明实施例提供的数据索引装置的结构图;
图12为本发明实施例提供的数据查询装置的结构图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前已知的支持大数据的数据索引包括多级合并树和B+树等,但是这些数据索引的索引数据会有80KB,占用的存储资源较多,导致根据索引查询数据文件效率很低,基于此,本发明实施例提供的一种数据索引方法、数据查询方法及电子设备,可以减少索引数据的数据量,节省存储资源,便于将索引数据全部加载到磁盘中,查询时,只需一次定位即可查找到数据记录。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种数据索引方法进行详细介绍,数据索引方法可以应用于计算机、服务器等设备中,如图1所示,所述一种数据索引方法可以包括以下步骤。
步骤S101,按照数据文件对应的多个数据记录中预设字段的字段值的顺序,创建所述数据文件的聚集索引。
本发明实施例中,数据文件可以指大数据如Hadoop中存储的巨型数据文件,比如几个GB、几个TB的文件。假设数据文件包含三个预设字段,分别为用户ID,注册时间和国家,对多个数据记录按照用户ID的顺序创建聚集索引后,多个数据记录是按照用户ID排序的,如下表1,每行为一条数据记录。
表1
用户ID | 注册时间 | 国家 |
1 | 2017-01-01 00:00:00 | CN |
2 | 2017-01-01 00:00:00 | CN |
3 | 2017-01-01 00:00:00 | CN |
在本发明实施例中,各个所述数据记录在所述数据文件中的位置偏移量不同,如表2所示,假设每条数据记录的长度均为25KB,则对应的位置偏移量可以依次为0,25,50等。
表2
字段值 | 位置偏移量 | 数据记录 | 数据记录长度 |
1 | 0 | 1,2017-01-01 00:00:00,CN | 25 |
2 | 25 | 2,2017-05-01 00:00:00,CN | 25 |
3 | 50 | 3,2017-07-01 00:00:00,CN | 25 |
步骤S102,为数据文件中的多个数据记录绘制字段值所对应的位置偏移量分布。
在该步骤中,可以为各个数据记录在以字段值为X轴,以位置偏移量为Y轴的坐标系中,绘制字段值所对应的位置偏移量分布,绘制的字段值所对应的位置偏移量分布中,每个样本点对应一个数据记录。
步骤S103,对所述各个字段值所对应的位置偏移量分布进行曲线拟合,得到拟合函数。
在该步骤中,可以利用matlab等工具,对所述各个字段值所对应的位置偏移量分布进行曲线拟合,得到拟合函数,例如:拟合函数的形式可以为y=ax+b等等,在实际应用中,拟合函数可能是多元多次方程,在这里本发明实施例不做限定,可以以实际情况为准。
通过步骤S103可以便于根据待查询数据记录中预设字段的字段值确定位置偏移量,进而根据确定的位置偏移量获取数据记录。
本发明实施例通过首先按照数据文件对应的多个数据记录中预设字段的字段值的顺序,创建所述数据文件的聚集索引,其中各个所述数据记录在所述数据文件中的位置偏移量不同;然后为数据文件中的多个数据记录绘制字段值所对应的位置偏移量分布;最后对所述各个字段值所对应的位置偏移量分布进行曲线拟合,得到拟合函数,可以便于根据待查询数据记录中预设字段的字段值确定位置偏移量,进而根据确定的位置偏移量获取数据记录。
本发明实施例以字段值以及位置偏移量作为数据文件的索引项,索引数据量小,便于全部加载到磁盘中,而且实际查询时只需要根据字段值及拟合函数,即可得到位置偏移量,进而可以一次定位到数据文件中存储与所述位置偏移量处的数据记录。
比如我们目标是一个查询平均扫描400KB的数据,2GB的数据大约就是2000MB/400KB=5K个索引项。假设字段值和位置偏移量都是64位整数,则一个索引项16字节,索引数据会有80KB。在我们的实际生产中,本发明的算法(未实现间隔拟合)生成的索引文件在15KB左右。
在前述实施例的基础上,在本发明的又一实施例中,步骤S103可以包括以下步骤。
1)、对多个字段值所对应的位置偏移量分布进行曲线拟合,得到拟合函数。
2)、根据所述拟合函数,计算得到各个数据记录的位置偏移量。
为了验证数据文件中各个数据记录是否分布非常均匀,可以将多个字段值分别带入到拟合函数中,得到各个数据记录的位置偏移量。
3)、在多个数据记录对应的实际的位置偏移量与计算得到的位置偏移量之间的偏差值均小于预设阈值时,确定所述拟合函数满足预设条件,保留所述拟合函数。
当计算得到的各个位置偏移量与数据记录实际的位置偏移量之间的偏差值均小于预设阈值例如可以为(200KB)时,说明数据文件中各个数据记录分布非常均匀,也就是说,当计算得到的各个位置偏移量相对于实际的位置偏移量的误差小于预设阈值时,可以认为拟合函数是准确的,此时可以保留该拟合函数。
例如,表2中各个字段值所对应的位置偏移量分布可以参见图2,然后对各个字段值所对应的位置偏移量分布进行曲线拟合,因为数据分布非常均匀,拟合后的曲线可能是一条直线,形式为y=ax+b,这里系数a=25,b=-25。因此在需要查询用户ID=2的数据记录在数据文件内的位置,可以将2带入到拟合函数中,位置偏移量y=f(2)=25x 2-25=25,即可以在文件内偏移25字节的地方找到用户ID=2的数据记录。
再例如,表3中字段值从1,2直接增加至5,分布不很均匀。
表3
字段值 | 位置偏移量 | 数据记录 | 数据记录长度 |
1 | 0 | 1,2017-01-01 00:00:00,CN | 25 |
2 | 25 | 2,2017-05-01 00:00:00,CN | 25 |
5 | 50 | 3,2017-07-01 00:00:00,CN | 25 |
表3中各个字段值所对应的位置偏移量分布可以参见图3,然后对各个字段值所对应的位置偏移量分布进行曲线拟合,因为数据分布不很均匀,拟合后的曲线可能是一条曲线,拟合出来的曲线不一定能过够刚好穿过样本点。在实际应用中,可以用来拟合的曲线形式有很多,这里选用的是B-spline。B-spline本身也有不同阶数,就像N次多项式一样,不同次数的多项式有不同数目的系数。这里用的3阶B-spline,有24个系数。所以拟合曲线出来就是24个浮点数,将这24个浮点数作为拟合函数的系数就可以确定图3中的这条曲线,进而可以根据X计算出Y,另外,曲线的系数个数和样本点的个数没有直接关系。
在前述实施例的基础上,在本发明的又一实施例中,所述步骤S103还可以包括以下步骤。
1)、当所述拟合函数不满足预设条件时,将多个字段值划分为两个字段值集合。例如表4;
表4
X | 1 | 2 | 5 | 9 | 100 | 102 | 104 |
Y | 0 | 25 | 50 | 75 | 85 | 95 | 105 |
表4中各个字段值所对应的位置偏移量分布可以参见图4,图4中样本点之间有一个大的跳跃,如果直接这7个样本点拟合进一条曲线里,将会出现图5中横坐标为20至80之间的线段所示的情况,这时所述拟合函数不满足预设条件,即,多个数据记录对应的实际的位置偏移量与计算得到的位置偏移量之间的偏差值大于或者等于预设阈值也就是说,实际情况下数据记录可能会分布的不那么均匀,计算得到的各个位置偏移量相对于实际的位置偏移量的误差大于或者预设阈值。
这种情况下可以通过拟合两条独立的曲线来解决这个问题,即将用户ID划分为在0~20之间和用户ID在20~120之间两个字段值集合。
2)、针对每个所述字段值集合,分别对多个字段值所对应的位置偏移量分布进行曲线拟合,得到拟合函数。
在得到的两个拟合函数均满足预设条件时,可以在用户ID位于0~20之间,使用第一条拟合曲线计算位置偏移量,在用户ID位于80~120之间,使用第二条曲线计算位置偏移量。
3)、当仅存在一个拟合函数满足预设条件时,将不满足预设条件的拟合函数对应的字段值集合中的多个字段值再次划分为两个字段值集合。
然而,为了保证根据得到的拟合函数能够计算准确的位置偏移量,需要对每个字段值集合拟合得到的拟合函数进行验证,即,判断拟合函数是否满足预设条件,对于不满足预设条件的拟合函数,需要对得到拟合函数的字段值集合进行再次划分,得到两个字段值集合。
4)、将再次划分得到的字段值集合中邻接满足预设条件的拟合函数的字段值集合,和,与预设条件的任一拟合函数对应的字段值集合组合后进行曲线拟合,得到拟合函数。
5)、根据所述拟合函数,计算得到各个数据记录的位置偏移量,直至得到的拟合函数满足预设条件。
举例来说,假设拟合图4中的前三个点,拟合成功并且偏差值小于预设阈值,这时算法不会满足于此,而是尝试再多拟合一些点,由于将7个点全部拟合得到拟合函数不满足预设条件,是拟合失败的,而3个点拟合得到的拟合函数满足预设条件,是拟合成功的,则可以尝试拟合3+(7-3)/2=5个点,假设拟合失败,接着由于已知5个点全拟合是失败的,3个点拟合是成功的,则可以尝试3+(5-3)/2=4个点,假设拟合成功,由于现在5个点全拟合是失败的,4个点全拟合是成功的,则拟合的样本点数量最多即是4个,所以最终可以将这4个点拟合成一条曲线,然后继续用同样的算法拟合其余的样本点。
另外,由于一次拟合太多的样本点需要巨大的计算量,计算量随着样本点的增长呈幂或指数增长,因此一次不能拟合太多的点。目前设置是一次最多拟合十万个点,所以如果文件中有二十万个点,则至少需要拟合出两条曲线,否则一次性拟合二十万个样本点将会耗费很长时间。
在前述实施例的基础上,在本发明的又一实施例中,所述步骤S103还包括以下步骤。
1)、在不满足预设条件的拟合函数对应的字段值集合中仍剩余若干个字段值,且将剩余的字段值与满足预设条件的拟合函数进行曲线拟合得到的拟合函数不满足预设条件时,在剩余的各个字段值中选择若干个字段值,其中,选择的若干个字段值及与字段值对应的各个位置偏移量单调递增,且,任意相邻的两个位置偏移量之间的差值为预设阈值;
2)为选择的各个字段值及其对应的位置偏移量分别利用原始索引方式建立索引。
在本发明实施例中,如果最后剩余的无法成功拟合出拟合曲线的字段值集合中仅存在数量很少的样本点,则可以将这些样本点直接利用原始索引方式(B+树索引方式)建立索引,这样更加节省系统资源。
因为存储一条曲线需要24个浮点数,如果这条曲线只覆盖了两个样本点,显然不如直接用存储这24个浮点数的空间来记录这两个点,因为每个样本点需要记录字段值及位置偏移量,所以记录两个样本点只需要4个浮点数即可,这样相对于存储曲线的方式将剩余20个浮点数的空间,在实际应用中,为了保持各个拟合出的曲线对应的存储空间大小一致,可以将剩余的20个浮点数的空间利用零值等填充值填充。
由于本发明实施例中,不需要为了每个样本点都能够零偏差定位到,而将所有样本点进行单独记录,对于大多数样本点均是需要根据拟合曲线位置偏移量,进而根据位置偏移量扫描预设阈值(200KB)范围内的数据记录。所以在为剩余的各个样本点记录时也是跳跃着,记录一个样本点后,下一个被记录的点是位于200KB后的样本点。这样当需要查找userID=X对应的位置偏移量时,只要找到相邻的两个记录值,(X1,Y1)和(X2,Y2),使得X1<X<X2,那Y一定在Y1和Y2之间,因为数据记录均是按序排列,样本点也一定是单调递增的,所以只要扫描Y1~Y2之间的200KB区域即可。
在本发明的又一实施例中,所述步骤S103还包括以下步骤。
1)、当所述拟合函数不满足预设条件时,确定各个所述实际的位置偏移量及其对应的字段值;
2)、在确定的各个字段值中,判断是否存在任意两个相邻的字段值之间的差值大于预设阈值;
3)、当存在任意两个相邻的字段值之间的差值大于预设阈值时,在数据文件中在差值大于预设阈值的两个相邻的字段值之间插入空白记录,以使两个相邻的字段值中最大的字段值对应的实际的位置偏移量变化,进而使根据各个字段值所对应的位置偏移量及插入的空白记录拟合得到拟合函数,且所述拟合函数满足预设条件。
对于图4的情况,可以在X=9~100之间插入缺少的空白记录,插入空白记录后,X>=100那三条数据记录在文件中的位置偏移量将会变大(因为插入的空白记录也要占据存储空间),变成如图6所示的情况,这时进行曲线拟合得到的拟合函数将可以满足预设条件。在查找数据记录时,如果查找到空白记录,可以根据空白记录的标签等确定空白记录并非数据文件对应的真实的数据记录。
在本发明的又一实施例中,所述步骤S101还包括以下步骤。
1)、当所述拟合函数不满足预设条件时,确定实际的位置偏移量与计算得到的位置偏移量之间偏差值大于预设阈值的数据记录;
2)、为所述数据记录在计算得到的位置偏移量处建立跳转到实际的位置偏移量处的跳转记录,以便根据所述跳转记录,查询到位于所述实际的位置偏移量处的数据记录。
如图7,假设在字段值X=10附近,数据记录的位置偏移量有一个较大的跳跃(假设X=9的数据记录很长),这是如果仍正常进行曲线拟合,在查找X=12的数据记录的位置偏移量时,会预测出位置偏移量Y=210,而其实X=12的记录在Y=585。这时在本发明实施例中,可以在文件偏移210处放置一条特殊的跳转记录:“如果你是来找X=12这条记录的,它在585处”,这条跳转记录可以嵌进X=9的数据记录中,因此在实际应用中,需要文件格式能够支持读取X=9的数据记录时自动跳过中间的跳转记录。
当跳转记录的数量非常多时,数据文件本身将类似于一个哈希表,跳转记录是哈希槽,哈希函数是曲线。
在本发明的又一实施例中,所述步骤S103还包括以下步骤。
1)、当所述拟合函数不满足预设条件时,确定实际的位置偏移量与计算得到的位置偏移量之间偏差值大于预设阈值的多个数据记录;
2)、建立包含多个数据记录的字段值及实际的位置偏移量之间的对应关系跳转表,以便根据所述跳转表,查询到位于所述实际的位置偏移量处的数据记录。
如图8,假设整个数据文件对应的多个数据记录被拟合成一条曲线,但是,当实际的位置偏移量与计算得到的位置偏移量之间偏差值大于预设阈值的数据记录有多个,需要在X=9的数据记录中存储有:“当在黄色X区间内,请不要使用曲线,而是使用下表:“X=12=>Y=585;X=13=>Y=585;X=13=>Y=585……X=20=>Y=585”的信息。
在本发明的又一实施例中,所述步骤S103可以包括以下步骤。
在多个字段值中选择第一预设数量个字段值进行曲线拟合,得到拟合函数,其中,每两个相邻的字段值之间间隔第二预设数量个字段值。
通过本发明实施例,能够把二十万个样本点拟合进一条曲线里,就是隔一个样本点取一个,这样就是十万个点了,拟合出曲线后,只要确保验证一遍这条曲线对所有二十万个样本点偏差都不超过200KB就可以了——虽然不一定能成功,但是有可能能成功。以此类推,如果有一百万个样本点,可以每10个抽一个出来,如果不行就尝试拟合半个文件50万样本点,但是每5个抽一个。与之前分段方法类似。
在前述实施例的基础上,在本发明的又一实施例中,还提供一种数据查询方法,如图9所示,所述方法可以包括以下步骤。
步骤S201,获取至少一个待查询的数据记录预设字段的字段值。
步骤S202,根据所述字段值及预设的拟合函数计算得到待查询的数据记录在数据文件中的位置偏移量,所述拟合函数根据所述各个字段值所对应的位置偏移量分布确定。
步骤S203,根据所述位置偏移量在所述数据文件中查询所述待查询的数据记录。
在该步骤中,可以将位置偏移量及预设阈值确定偏移量范围;然后在所述偏移量范围内查询数据记录。
对于前述实施例中,利用原始索引方式(B+树索引方式)的情况,可以确定如果X1<X<X2,则必有Y1<Y<Y2,因为样本点必然是单调递增的,换句话说,把这些样本点完全串起来的那条折线是单调递增的。但是,对于拟合出来的曲线,由于曲线不是折线,不能变化太快,折线可以变化无穷快,曲线的变化速度是有限的,想变化快就要调整更多的系数,而调了系数又不能兼顾大尺度上的拟合度。所以存在一些情况,在某些范围内曲线是递减的,如图10所示。
如果只是查找那些样本点的X的话是没有问题的,因为曲线发布之前就已经验证过对任何一个样本点偏差都不超过预设阈值(200KB),但是如果X不是已有的点,也就是其实在文件中不存在,那它可能正好在递减的区段,就被预测到错误的偏移上,当然,由于这个X(userId)本来在文件中就没有,即使扫完周围200KB找不到,结果也是正确的。但是如果计算这个X的Y不是为了找X这种定点查询,而是一个区段查询将会出现问题。比如检索所有X1~X2之间的记录。为此,在本发明的又一实施例中,当存在多个待查询的数据记录,且多个待查询的数据记录的字段值及位置偏移量单调递增时,所述方法还可以包括以下步骤。
1)、多个待查询的数据记录中最大的上界字段值,多个待查询的数据记录中最小的下界字段值;
2)、利用所述拟合函数、所述上界字段值及所述下界字段值分别计算下界位置偏移量和上界位置偏移量;
3)、根据所述拟合函数及所述下界位置偏移量计算参考字段值;
4)、当所述参考字段值大于所述下界字段值时,确定小于所述下界字段值且与所述下界字段值相邻的候选字段值以及所述候选字段值对应的候选位置偏移量;
5)、在从所述候选位置偏移量至所述上界位置偏移量之间查询,得到多个待查询的数据记录。
在本发明实施例中,如图10,假设需要检索大约7<=X<=21的区域中的样本点,如果在计算f(7)和f(21)的值后,对应的Y的区域,可以看到如果这样扫描的话会漏掉一个样本点(X=15,Y=90)。
因此,解决的方法是读取预测出的Y区间(黄色区域)下界上的样本点值f(17),可以看到它对应的X=17已经大于我们打算检索的X区间下界了(17>7),然而本领域技术人员所公知的是,对于单调递增的曲线,位于Y区间下届上的样本点,其X值应该小于待查X区间下界。
一旦识别到这种情况,则需要向前跳跃至少一个数据记录(比如200KB),重复直到读到的X值小于X区间下界为止,例如将X从17向左推到7的位置。这种方式虽然可能会浪费写性能,但是这种情况很少,偶尔出现就浪费些可以忽略。另一方面,对于扫描的话,向前跳跃的过程中其实也相当于是扫描各个数据记录,一旦扫描到X=7的位置后也没必要再次从X=7开始向右重新扫描。
在本发明的又一实施例中,如图11所示,还提供一种数据索引装置,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。所述装置包括:创建模块11、绘制模块12和拟合模块13;
所述创建模块11,用于按照数据文件对应的多个数据记录中预设字段的字段值的顺序,创建所述数据文件的聚集索引,各个所述数据记录在所述数据文件中的位置偏移量不同;
所述绘制模块12,用于为数据文件中的多个数据记录绘制字段值所对应的位置偏移量分布;
所述拟合模块13,用于对所述各个字段值所对应的位置偏移量分布进行曲线拟合,得到拟合函数,以便于根据待查询数据记录中预设字段的字段值确定位置偏移量,进而根据确定的位置偏移量获取数据记录。
本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
在本发明的又一实施例中,如图12所示,还提供一种数据查询装置,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。所述装置可以包括:获取模块21、计算模块22和查询模块23;
所述获取模块21,用于获取至少一个待查询的数据记录预设字段的字段值;
所述计算模块22,用于根据所述字段值及预设的拟合函数计算得到待查询的数据记录在数据文件中的位置偏移量,所述拟合函数根据所述各个字段值所对应的位置偏移量分布确定;
所述查询模块23,用于根据所述位置偏移量在所述数据文件中查询所述待查询的数据记录。
本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
在本发明的又一实施例中,还提供一种电子设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法实施例所述的方法的步骤。
在本发明的又一实施例中,还提供一种具有处理器可执行的非易失的程序代码的计算机可读介质,所述程序代码使所述处理器执行上述方法实施例所述的方法。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本发明实施例所提供的数据索引方法、数据查询方法及电子设备的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (14)
1.一种数据索引方法,其特征在于,包括:
按照数据文件对应的多个数据记录中预设字段的字段值的顺序,创建所述数据文件的聚集索引,各个所述数据记录在所述数据文件中的位置偏移量不同;
为所述数据文件中的多个数据记录绘制字段值所对应的位置偏移量分布;
对各个字段值所对应的位置偏移量分布进行曲线拟合,得到拟合函数,以便于根据待查询数据记录中预设字段的字段值确定位置偏移量,进而根据确定的所述位置偏移量获取数据记录;
所述对所述各个字段值所对应的位置偏移量分布进行曲线拟合,得到拟合函数,包括:
对多个字段值所对应的位置偏移量分布进行曲线拟合,得到拟合函数;
根据所述拟合函数,计算得到各个数据记录的位置偏移量;
在多个所述数据记录对应的实际的位置偏移量与计算得到的位置偏移量之间的偏差值均小于预设阈值时,确定所述拟合函数满足预设条件,保留所述拟合函数;
当所述拟合函数不满足预设条件时,将多个字段值划分为两个字段值集合;
针对每个所述字段值集合,分别对多个字段值所对应的位置偏移量分布进行曲线拟合,得到拟合函数。
2.根据权利要求1所述的数据索引方法,其特征在于,所述对所述各个字段值所对应的位置偏移量分布进行曲线拟合,得到拟合函数,还包括:
当仅存在一个拟合函数满足预设条件时,将不满足预设条件的拟合函数对应的字段值集合中的多个字段值再次划分为两个字段值集合;
将再次划分得到的字段值集合中邻接满足预设条件的拟合函数的字段值集合,和,与预设条件的任一拟合函数对应的字段值集合组合后进行曲线拟合,得到拟合函数;
根据所述拟合函数,计算得到各个数据记录的位置偏移量,直至得到的拟合函数满足预设条件。
3.根据权利要求2所述的数据索引方法,其特征在于,所述对所述各个字段值所对应的位置偏移量分布进行曲线拟合,得到拟合函数,还包括:
在不满足预设条件的拟合函数对应的字段值集合中仍剩余若干个字段值,且将剩余的字段值与满足预设条件的拟合函数进行曲线拟合得到的拟合函数不满足预设条件时,在剩余的各个字段值中选择若干个字段值,其中,选择的若干个字段值及与字段值对应的各个位置偏移量单调递增,且,任意相邻的两个位置偏移量之间的差值为预设阈值;
为选择的各个字段值及其对应的位置偏移量分别利用原始索引方式建立索引,所述原始索引方式包括B+树索引方式。
4.根据权利要求1所述的数据索引方法,其特征在于,所述对所述各个字段值所对应的位置偏移量分布进行曲线拟合,得到拟合函数,还包括:
当所述拟合函数不满足预设条件时,确定各个所述实际的位置偏移量及其对应的字段值;
在确定的各个字段值中,判断是否存在任意两个相邻的字段值之间的差值大于预设阈值;
当存在任意两个相邻的字段值之间的差值大于预设阈值时,在数据文件中在差值大于预设阈值的两个相邻的字段值之间插入空白记录,以使两个相邻的字段值中最大的字段值对应的实际的位置偏移量变化,进而使根据各个字段值所对应的位置偏移量及插入的空白记录拟合得到拟合函数,且所述拟合函数满足预设条件。
5.根据权利要求1所述的数据索引方法,其特征在于,所述对所述各个字段值所对应的位置偏移量分布进行曲线拟合,得到拟合函数,还包括:
当所述拟合函数不满足预设条件时,确定实际的位置偏移量与计算得到的位置偏移量之间偏差值大于预设阈值的数据记录;
为所述数据记录在计算得到的位置偏移量处建立跳转到实际的位置偏移量处的跳转记录,以便根据所述跳转记录,查询到位于所述实际的位置偏移量处的数据记录。
6.根据权利要求1所述的数据索引方法,其特征在于,所述对所述各个字段值所对应的位置偏移量分布进行曲线拟合,得到拟合函数,还包括:
当所述拟合函数不满足预设条件时,确定实际的位置偏移量与计算得到的位置偏移量之间偏差值大于预设阈值的多个数据记录;
建立包含多个数据记录的字段值及实际的位置偏移量之间的对应关系跳转表,以便根据所述跳转表,查询到位于所述实际的位置偏移量处的数据记录。
7.根据权利要求1所述的数据索引方法,其特征在于,所述对所述各个字段值所对应的位置偏移量分布进行曲线拟合,得到拟合函数,包括:
在多个字段值中选择第一预设数量个字段值进行曲线拟合,得到拟合函数,其中,每两个相邻的字段值之间间隔第二预设数量个字段值。
8.一种数据查询方法,其特征在于,包括:
获取至少一个待查询的数据记录预设字段的字段值;
根据所述字段值及预设的拟合函数计算得到待查询的数据记录在数据文件中的位置偏移量,所述拟合函数根据对各个字段值所对应的位置偏移量分布进行曲线拟合得到;根据所述拟合函数,计算得到各个数据记录的位置偏移量;在多个所述数据记录对应的实际的位置偏移量与计算得到的位置偏移量之间的偏差值均小于预设阈值时,确定所述拟合函数满足预设条件,保留所述拟合函数;当所述拟合函数不满足预设条件时,将多个字段值划分为两个字段值集合;针对每个所述字段值集合,分别对多个字段值所对应的位置偏移量分布进行曲线拟合,得到拟合函数;
根据所述位置偏移量在所述数据文件中查询所述待查询的数据记录。
9.根据权利要求8所述的数据查询方法,其特征在于,所述根据所述位置偏移量在所述数据文件中查询所述待查询的数据记录,包括:
将位置偏移量及预设阈值确定偏移量范围;
在所述偏移量范围内查询数据记录。
10.根据权利要求9所述的数据查询方法,其特征在于,当存在多个待查询的数据记录,且多个待查询的数据记录的字段值及位置偏移量单调递增时,所述方法还包括:
多个待查询的数据记录中最大的上界字段值,多个待查询的数据记录中最小的下界字段值;
利用所述拟合函数、所述上界字段值及所述下界字段值分别计算下界位置偏移量和上界位置偏移量;
根据所述拟合函数及所述下界位置偏移量计算参考字段值;
当所述参考字段值大于所述下界字段值时,确定小于所述下界字段值且与所述下界字段值相邻的候选字段值以及所述候选字段值对应的候选位置偏移量;
在从所述候选位置偏移量至所述上界位置偏移量之间查询,得到多个待查询的数据记录。
11.一种数据索引装置,其特征在于,包括:创建模块、绘制模块和拟合模块;
所述创建模块,用于按照数据文件对应的多个数据记录中预设字段的字段值的顺序,创建所述数据文件的聚集索引,各个所述数据记录在所述数据文件中的位置偏移量不同;
所述绘制模块,用于为数据文件中的多个数据记录绘制字段值所对应的位置偏移量分布;
所述拟合模块,用于对各个字段值所对应的位置偏移量分布进行曲线拟合,得到拟合函数,以便于根据待查询数据记录中预设字段的字段值确定位置偏移量,进而根据确定的位置偏移量获取数据记录;
所述拟合模块,还用于:对多个字段值所对应的位置偏移量分布进行曲线拟合,得到拟合函数;根据所述拟合函数,计算得到各个数据记录的位置偏移量;在多个所述数据记录对应的实际的位置偏移量与计算得到的位置偏移量之间的偏差值均小于预设阈值时,确定所述拟合函数满足预设条件,保留所述拟合函数;当所述拟合函数不满足预设条件时,将多个字段值划分为两个字段值集合;针对每个所述字段值集合,分别对多个字段值所对应的位置偏移量分布进行曲线拟合,得到拟合函数。
12.一种数据查询装置,其特征在于,包括:获取模块、计算模块和查询模块;
所述获取模块,用于获取至少一个待查询的数据记录预设字段的字段值;
所述计算模块,用于根据所述字段值及预设的拟合函数计算得到待查询的数据记录在数据文件中的位置偏移量,所述拟合函数根据对各个字段值所对应的位置偏移量分布进行曲线拟合得到;根据所述拟合函数,计算得到各个数据记录的位置偏移量;在多个所述数据记录对应的实际的位置偏移量与计算得到的位置偏移量之间的偏差值均小于预设阈值时,确定所述拟合函数满足预设条件,保留所述拟合函数;当所述拟合函数不满足预设条件时,将多个字段值划分为两个字段值集合;针对每个所述字段值集合,分别对多个字段值所对应的位置偏移量分布进行曲线拟合,得到拟合函数;
所述查询模块,用于根据所述位置偏移量在所述数据文件中查询所述待查询的数据记录。
13.一种电子设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1至7中任一项或者权利要求8至10中任一项所述的方法的步骤。
14.一种具有处理器可执行的非易失的程序代码的计算机可读介质,其特征在于,所述程序代码使所述处理器执行所述权利要求1至7中任一项或者权利要求8至10中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710824712.9A CN107644070B (zh) | 2017-09-13 | 2017-09-13 | 数据索引方法、数据查询方法及电子设备 |
US15/823,642 US10846309B2 (en) | 2017-09-13 | 2017-11-28 | Data indexing method, data querying method and electronic device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710824712.9A CN107644070B (zh) | 2017-09-13 | 2017-09-13 | 数据索引方法、数据查询方法及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107644070A CN107644070A (zh) | 2018-01-30 |
CN107644070B true CN107644070B (zh) | 2020-09-15 |
Family
ID=61111497
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710824712.9A Active CN107644070B (zh) | 2017-09-13 | 2017-09-13 | 数据索引方法、数据查询方法及电子设备 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10846309B2 (zh) |
CN (1) | CN107644070B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112419538B (zh) * | 2019-08-22 | 2022-12-13 | 联合汽车电子有限公司 | 一种dcdc变换器数据分布的采集方法及装置 |
US11120031B2 (en) * | 2019-10-31 | 2021-09-14 | EMC IP Holding Company LLC | Automatic indexing of relevant domains in a data lake for data discovery and integration |
US11514016B2 (en) * | 2020-01-15 | 2022-11-29 | International Business Machines Corporation | Paging row-based data stored as objects |
CN114124340A (zh) * | 2020-08-28 | 2022-03-01 | 京东方科技集团股份有限公司 | 物联网节点的时间同步方法、装置、存储介质及电子设备 |
US11461301B2 (en) | 2020-09-13 | 2022-10-04 | International Business Machines Corporation | Database index optimization |
US11204931B1 (en) | 2020-11-19 | 2021-12-21 | International Business Machines Corporation | Query continuous data based on batch fitting |
CN113343043B (zh) * | 2021-06-29 | 2023-06-23 | 北京奇艺世纪科技有限公司 | 索引的构建方法、检索方法及相应的装置、终端、介质 |
CN114817651B (zh) * | 2022-06-24 | 2022-09-13 | 北京百度网讯科技有限公司 | 数据存储方法、数据查询方法、装置和设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103870456A (zh) * | 2012-12-07 | 2014-06-18 | 华东师范大学 | 一种面向大规模数据的索引方法及其系统 |
CN105701096A (zh) * | 2014-11-25 | 2016-06-22 | 腾讯科技(深圳)有限公司 | 索引生成方法、数据查询方法、装置及系统 |
CN102929936B (zh) * | 2012-09-26 | 2016-08-24 | 东软集团股份有限公司 | 日志记录方法、日志查询方法及系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8650179B2 (en) * | 2005-08-18 | 2014-02-11 | International Business Machines Corporation | Generating statistics for temporary tables during query optimization |
US9846567B2 (en) * | 2014-06-16 | 2017-12-19 | International Business Machines Corporation | Flash optimized columnar data layout and data access algorithms for big data query engines |
CN105528344B (zh) * | 2014-09-28 | 2018-12-21 | 阿里巴巴集团控股有限公司 | 确定存储设备中被读取数据所属媒体信息的方法及装置 |
-
2017
- 2017-09-13 CN CN201710824712.9A patent/CN107644070B/zh active Active
- 2017-11-28 US US15/823,642 patent/US10846309B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102929936B (zh) * | 2012-09-26 | 2016-08-24 | 东软集团股份有限公司 | 日志记录方法、日志查询方法及系统 |
CN103870456A (zh) * | 2012-12-07 | 2014-06-18 | 华东师范大学 | 一种面向大规模数据的索引方法及其系统 |
CN105701096A (zh) * | 2014-11-25 | 2016-06-22 | 腾讯科技(深圳)有限公司 | 索引生成方法、数据查询方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN107644070A (zh) | 2018-01-30 |
US20200210531A9 (en) | 2020-07-02 |
US10846309B2 (en) | 2020-11-24 |
US20190079991A1 (en) | 2019-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107644070B (zh) | 数据索引方法、数据查询方法及电子设备 | |
KR101467589B1 (ko) | 데이터 구조를 가지는 하나 이상의 장치 판독가능 매체, 및장치 실행가능 명령어를 구비한 하나 이상의 장치 판독가능 매체 | |
CN101826107B (zh) | 哈希数据处理方法和装置 | |
CN112148928B (zh) | 一种基于指纹家族的布谷鸟过滤器 | |
CN110147204B (zh) | 一种元数据落盘方法、装置、系统及计算机可读存储介质 | |
CN107015985B (zh) | 一种数据存储与获取方法及装置 | |
US9292554B2 (en) | Thin database indexing | |
CN111814664B (zh) | 识别图纸中标注的方法、装置、计算机设备及存储介质 | |
JP6065844B2 (ja) | インデックス走査装置及びインデックス走査方法 | |
CN110888837B (zh) | 对象存储小文件归并方法及装置 | |
CN108563743A (zh) | 一种文件读写方法、系统及设备和存储介质 | |
CN114691721A (zh) | 图数据的查询方法、装置、电子设备及存储介质 | |
US20090070354A1 (en) | Minimal perfect hash functions using double hashing | |
CN115495462A (zh) | 批量数据更新方法、装置、电子设备和可读存储介质 | |
CN107463676B (zh) | 文本数据存储方法及装置 | |
US20150058351A1 (en) | Queries for thin database indexing | |
CN114416741A (zh) | 基于多级索引的kv数据写入读取方法、装置及存储介质 | |
CN108984780B (zh) | 基于支持重复键值树数据结构管理磁盘数据的方法和装置 | |
CN112800067A (zh) | 范围查询方法、装置、计算机可读存储介质及电子设备 | |
CN111475535A (zh) | 数据存储、访问方法及装置 | |
US20140081986A1 (en) | Computing device and method for generating sequence indexes for data files | |
CN111752909A (zh) | 一种多版本文件的操作方法、系统及装置 | |
CN112711627B (zh) | 一种Greenplum数据库的数据导入方法、装置及设备 | |
CN111045608B (zh) | 一种有效性代码的查找方法、装置、设备及可读存储介质 | |
CN112632087B (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 |