用于高速搜索或过滤大数据集的系统、方法和数据结构技术方案

技术编号:21487301 阅读:37 留言:0更新日期:2019-06-29 07:11
一种内联树数据结构和一个或多个辅助数据结构编码数据集的多条数据记录;数据集的数据字段限定树分层结构。内联树包括用于每条数据记录的一个二进制字符串,这些二进制字符串具有相同的长度、按照对应于树分层结构的顺序布置;以及包括指示字符串,该指示符字符串指示每条数据记录相对于紧邻的数据记录在树分层结构中的位置。通过询问内联树数据结构中的每个指示符字符串来引导搜索程序通过数据集,以减少对数据字段值的不必要的询问。

【技术实现步骤摘要】
【国外来华专利技术】用于高速搜索或过滤大数据集的系统、方法和数据结构优先权声明本申请要求专利技术人Roy.W.Ward于2016年8月10日提交的名称为“用于高速搜索或过滤大数据集的系统、方法和数据结构(Systems,methods,anddatastructuresforhigh-speedsearchingorfilteringoflargedatasets)”的美国非临时申请No.15/233,047的优先权,所述非临时申请通过引用如在本文中完全阐明的那样并入本文中。
本专利技术的领域涉及电子数据存储、搜索、过滤、列表、枚举或检索。具体地,本文中公开了用于高速搜索或过滤大数据集的系统、方法和数据结构。
技术介绍
本申请涉及以下申请中所公开的主题:(i)由RoyW.Ward于2011年12月15日提交的美国非临时申请No.13/326,326(现在专利号为9,002,859);(ii)由RoyW.Ward和DavidS.Alavi于2012年1月10日提交的美国非临时申请13/347,646(现在专利号为8,977,656,其被授予Ward);(iii)由RoyW.Ward于2013年1月4日提交的美国非临时申请No.13/733,890(现在专利号为9,171,054)。所述申请和专利中的每一个通过引用如在本文中完全阐明的那样并入本文中,并且所述申请和专利在下文中统称为“内联树专利”。存在着许多生成或采集大量数据(例如,104、106、108或更多条数据记录,每条数据记录包括几个、数十个或数百个或更多的数据字段)的情况。对于数据集中有任何实际用途的数据,根据所排列的数据结构来存储表示数据集的标记,以使得可以搜索、过滤、列表、枚举、定位或检索数据集中的信息。在前数字时代,这种数据结构通常包括在合适的介质上打印的字母数字标记(通常包括附带的打印索引),并且数据搜索和数据检索是由人执行的手动功能。在上个世纪中叶引入电子数据存储和搜索功能彻底改变了存储大数据集的能力,以及在所存储的数据集中搜索、过滤、列表、枚举、定位或检索信息的能力。现如今,表示数据集的字母数字标记通常根据诸如电子表格或电子关系数据库之类的数字电子数据结构进行存储。电子表格(也称为平面文件数据库)可以被认为是具有行和列的单个表格,其中,每行对应于特定数据记录,每列对应于该数据记录的特定数据字段。在简单示例中(将在本说明书中重复使用的示例),每条数据记录可以对应于在所有已登记选民的数据集中在特定州(例如俄勒冈州)的已登记选民。每条数据记录中的数据字段可以包括:例如,姓氏、名字、中间名或姓名、年龄、性别、婚姻状况、种族、种族划分、宗教、其他人口统计信息、街道地址(可能分为街道号码、街道名称等多个数据字段)、城市、州、邮政编码、党派、投票历史、县、美国住宅区、州参议院或住宅区、学区、其他行政区等。关系数据库通常包括多个表,每个表包括:具有多个字段的多条记录;以及在不同表中的各个字段之间限定的关系。在上面给出的已登记选民示例中,“选民”表可以包括在相应字段中的具有姓名和人口统计信息的选民记录,并且“地址”表可以包括在相应字段中的包括街道地址和地区信息的地址记录。选民表中的字段可以包括指向地址表中相应地址的指针,该指针限定了每个地址与一个或多个相应选民之间的一对多关系。可以限定其他表和关系(包括多对多关系和限定这些关系的所谓的数据透视表)。电子表格和电子关系数据库已成为存储数字数据集的标准方法。电子表格和电子关系数据库在排列数据以用于更新数据、添加新数据以及分类、搜索、过滤或检索数据方面提供了几乎不受限制的灵活性。然而,已经发现的是,对于非常大的数据集(例如,>106或更多条记录,或甚至少至>104或>105条记录的数据集),电子表格和数据库往往变得难以存储、访问和搜索。特别地,从这样的大电子数据集中搜索和检索信息可能变得非常慢,以使得该大电子数据集对于某些数据检索应用而言基本上是无用的。上面引用的内联树专利公开了用于高速搜索和过滤大数据集的替代系统和方法。如这些专利中所公开的,并且与传统的电子表格和关系数据库相比,数据集被存储为专用的、高度压缩的二进制数据结构,该二进制数据结构根据更传统的数据结构使用专用的、特别适合的转换程序来生成;使用专用的、特别适合的搜索和过滤程序来搜索和过滤该二进制数据结构。内联树数据结构通常可以存储在二进制文件中,该二进制文件在数字存储介质上每条记录每个字段占用小于约1个字节到2个字节(例如,一百万条记录(每条记录具有100个字段)的数据集可以以小于约100MB至200MB的形式存储)。相对于电子表格或关系数据库容量显著减小(通常大于1/10)通常能够使整个数据集被加载到随机存取存储器中以进行搜索和过滤,从而显著提高这些操作的速度。小容量和连续排列的内联树数据结构还加速了搜索和过滤过程,以便可以以每个处理器核每条记录小于约150纳秒至500纳秒来搜索和过滤大数据集(例如,106、108或更多条数据记录,每条数据记录包括100多个数据字段)。在附加改型(如第二个内联树申请和第三个内联树申请中所公开的)中,可以采用所谓的群集报头表来指示共享大量数据字段值(例如,地理上受限制的诸如国家、城市、国会区、学区之类不能以任意组合出现的字段值)的数据记录组,并且将搜索和过滤程序引导向仅内联树数据结构中群集的数据字段值匹配搜索或过滤准则的部分。在另一改型(如第三个内联树申请中所公开的)中,可以采用辅助的并行数据结构与内联树数据结构来存储附加数据字段值或替换数据字段值。搜索和过滤程序可以适合于并行地询问内联树数据结构和辅助数据结构。辅助数据结构可以用于实现对某些数据字段值的修改而无需重新生成整个内联树数据结构,以使内联树数据结构的不同用户能够添加他们自己的附加数据字段,以有利于聚合某些数据记录用于许可或购买或其他目的。如上所述,内联树专利的内联树数据结构具有高度专用的结构,该高度专用的结构必须由专用的、特别适合的转换程序生成并且必须由专用的、特别适合的搜索和过滤程序搜索和过滤。与电子表格或关系数据库不同的是,内联树数据结构难以修改以包括新数据或更新的数据。对于待插入现有数据字段中的新数据或替换数据,或者对于将完整的新记录添加到数据集的新数据或替换数据,通常执行转换程序以生成全新的内联树结构。对于待添加到数据集的新数据字段,转换程序必须适合于在生成新的内联树结构之前适应这些新字段,并且搜索和过滤程序必须适合于适应新的内联树数据结构。如在内联树专利中所描述的,这种灵活性和可更新性丧失所付出的代价是为了获得小容量和快速搜索的内联树数据结构。
技术实现思路
数据集的电子标记包括内联树数据结构和一个或多个辅助数据结构。数据集包括多条数据记录,并且每条数据记录包括用于多个相应的定义数据字段的字段值字符串。该定义数据字段包括终端节点数据字段和第一级分支节点数据字段,并且可以进一步包括一级或多级的更高级分支节点数据字段;分支节点数据字段限定分支节点数据字段的字段值字符串的子界中的分层树关系,该子界对应于数据集的数据记录的一个或多个级的多个分支节点子集。内联树数据结构仅包括有序排列的终端节点二进制字符串。终端节点二进制字符串与数据集的数据记录之间存在一本文档来自技高网
...

【技术保护点】
1.一种产品,包括被编码为存储数据集的电子标记的一个或多个有形的非暂时性计算机可读存储介质,所述电子标记包括内联树数据结构和一个或多个辅助数据结构,其中:(a)所述数据集包括多条数据记录,并且每条数据记录包括用于多个相应的定义数据字段的字段值字符串;(b)所述定义数据字段包括终端节点数据字段和第一级分支节点数据字段,并且所述第一级分支节点数据字段限定所述第一级分支节点数据字段的字段值字符串的子界中的分层树关系,其中,所述子界对应于所述数据集的所述数据记录的多个第一级分支节点子集;(c)每个第一级分支节点子集包括所述第一级分支节点数据字段的字段值字符串落在相应的子界内的数据记录;(d)所述内联树数据结构仅包括有序排列的终端节点二进制字符串,其中,(1)所述终端节点二进制字符串与所述数据集的所述数据记录之间存在一对一的对应关系;(2)所述终端节点二进制字符串彼此具有相同的长度;以及(3)每个终端节点二进制字符串包括指示符字符串,针对每个终端节点二进制字符串,所述指示符字符串指示以下:(i)有序排列的所述终端节点二进制字符串和紧邻的终端节点二进制字符串对应于在同一第一级分支节点子集中的相应的数据记录;(ii)所述相应的数据记录在彼此不同的第一级分支节点子集中;或者(iii)所述终端节点二进制字符串是所述内联树数据结构的最后一个终端节点二进制字符串;(e)对于每个第一级分支节点子集,所述相应的终端节点二进制字符串在所述内联树数据结构内形成单个连续的字符串序列;以及(f)所述一个或多个辅助数据结构包括所述数据集的所述数据记录的字段值字符串的电子标记,所述字段值字符串以与在所述内联树数据结构中的有序排列的终端节点二进制字符串相同的顺序被布置、被索引或可访问。...

【技术特征摘要】
【国外来华专利技术】2016.08.10 US 15/233,0471.一种产品,包括被编码为存储数据集的电子标记的一个或多个有形的非暂时性计算机可读存储介质,所述电子标记包括内联树数据结构和一个或多个辅助数据结构,其中:(a)所述数据集包括多条数据记录,并且每条数据记录包括用于多个相应的定义数据字段的字段值字符串;(b)所述定义数据字段包括终端节点数据字段和第一级分支节点数据字段,并且所述第一级分支节点数据字段限定所述第一级分支节点数据字段的字段值字符串的子界中的分层树关系,其中,所述子界对应于所述数据集的所述数据记录的多个第一级分支节点子集;(c)每个第一级分支节点子集包括所述第一级分支节点数据字段的字段值字符串落在相应的子界内的数据记录;(d)所述内联树数据结构仅包括有序排列的终端节点二进制字符串,其中,(1)所述终端节点二进制字符串与所述数据集的所述数据记录之间存在一对一的对应关系;(2)所述终端节点二进制字符串彼此具有相同的长度;以及(3)每个终端节点二进制字符串包括指示符字符串,针对每个终端节点二进制字符串,所述指示符字符串指示以下:(i)有序排列的所述终端节点二进制字符串和紧邻的终端节点二进制字符串对应于在同一第一级分支节点子集中的相应的数据记录;(ii)所述相应的数据记录在彼此不同的第一级分支节点子集中;或者(iii)所述终端节点二进制字符串是所述内联树数据结构的最后一个终端节点二进制字符串;(e)对于每个第一级分支节点子集,所述相应的终端节点二进制字符串在所述内联树数据结构内形成单个连续的字符串序列;以及(f)所述一个或多个辅助数据结构包括所述数据集的所述数据记录的字段值字符串的电子标记,所述字段值字符串以与在所述内联树数据结构中的有序排列的终端节点二进制字符串相同的顺序被布置、被索引或可访问。2.一种计算机实现的方法,用于生成根据权利要求1所述的产品,所述方法包括:(A)在计算机系统处接收或从一个或多个计算机可读存储介质读取所述数据集的第一电子标记;(B)使用所述计算机系统的被编程并可操作地耦接到一个或多个存储介质的一个或多个电子处理器,生成所述数据集的第二电子标记,所述第二电子标记包括:(1)所述内联树数据结构;以及(2)所述一个或多个辅助数据结构;以及(C)将所述内联树数据结构和所述一个或多个辅助数据结构存储在可操作地耦接到所述计算机系统的一个或多个电子处理器的所述一个或多个有形的非暂时性计算机可读存储介质上。3.一种计算机实现的方法,用于询问在根据权利要求1所述的产品上编码的所述内联树数据结构和所述一个或多个辅助数据结构,其中,所述方法包括:(A)在计算机系统处接收对所述数据集的数据记录的搜索查询,对于在所述数据集的所述定义数据字段中的一个或多个选定的查询数据字段中的每一个,所述数据记录包括落入相应的查询字段值子界内的相应字段值;(B)利用被编程的计算机处理器按顺序自动询问所述内联树数据结构的有序排列的终端节点二进制字符串,以识别相应的指示符字符串;(C)作为在部分(B)中询问的每个终端节点二进制字符串,在一个或多个辅助数据结构中利用被编程的计算机处理器自动询问仅在所述相应的数据记录的选定的查询数据字段中的字段值字符串,以识别满足部分(A)的所述搜索查询的数据记录,其中,在部分(C)中针对每条数据记录询问的所述字段值字符串部分地由在部分(B)中所识别的所述相应的指示符字符串来确定;(D)对于不满足部分(A)的所述搜索查询的每个第一级分支节点字段值,省略部分(C)的对所述数据记录的相应的第一级分支节点子集的终端节点数据字段的询问;以及(E)使用被编程的计算机处理器自动生成在部分(C)中被识别为满足在部分(A)中所接收的所述搜索查询的数据记录的列表或枚举。4.根据权利要求1所述的产品,其中,对于每个终端节点二进制字符串,所述指示符字符串指示以下:(i)有序排列的所述终端节点二进制字符串和紧邻在后的终端节点二进制字符串对应于均在同一第一级分支节点子集中相应的数据记录;(ii)所述相应的数据记录在彼此不同的第一级分支节点子集中;或者(iii)所述终端节点二进制字符串是所述内联树数据结构的最后一个终端节点二进制字符串。5.根据权利要求1所述的产品,其中,对于每个终端节点二进制字符串,所述指示符字符串指示以下:(i)有序排列的所述终端节点二进制字符串和紧接在前的终端节点二进制字符串对应于均在相同的第一级分支节点子集中相应的数据记录;或(ii)所述相应的数据记录在彼此不同的第一级分支节点子集中,但是不在不同的更高级分支节点子集中。6.根据权利要求1所述的产品,其中,所述内联树数据结构的每个终端节点二进制字符串仅包括所述相应的指示符字符串,并且不包括对所述相应的数据记录的字段值进行编码的任何数据字符串。7.根据权利要求1所述的产品,其中,所述内联树数据结构的每个终端节点二进制字符串仅包括对所述相应的数据记录的一个或多个字段值进行编码的数据字符串。8.根据权利要求7所述的产品,其中,每个数据字符串包括通过字符串驻留编码的一个或多个数据字段值。9.根据权利要求1所述的产品,其中,所述一个或多个辅助数据结构包括通过字符串驻留编码的一个或多个数据字段值。10.根据权利要求1所述的产品,其中,所述一个或多辅助数据结构包括编码一组多个群集的数据字段值的一个或多个集群数据字段值。11.根据权利要求1所述的产品,其中,所述内联树数据结构被存储在计算机随机存取存储器或处理器高速缓存存储器中。12.根据权利要求1所述的产品,其中:(b’)所述定义数据字段进一步包括一个或多个级的更高级分支节点数据字段,...

【专利技术属性】
技术研发人员:罗伊·W·沃德
申请(专利权)人:月影移动有限公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1