列式分析存储格式的半结构化数据的概率文本索引制造技术

技术编号:37412988 阅读:20 留言:0更新日期:2023-04-30 09:37
本文是一种概率加索引技术,用于使用列式输入/输出(I/O)避免来搜索诸如Parquet之类的列式存储格式中的半结构化文本文档,并且需要最小的存储开销。在实施例中,计算机将列与半结构化文档中出现的文本串相关联。检测文本串中出现的文本词。分别为每个文本词生成多个位图中包含用于每一列的相应位的位图。基于位图中的至少一个位图,访问列中的一些列或半结构化文档中的一些半结构化文档。化文档中的一些半结构化文档。化文档中的一些半结构化文档。

【技术实现步骤摘要】
【国外来华专利技术】列式分析存储格式的半结构化数据的概率文本索引
[0001]相关申请的交叉引用
[0002]Hamed Ahmadi等人于2020年3月10日提交的标题为“PERSONAL INFORMATION INDEXING FOR COLUMNAR DATA STORAGE FORMAT”的相关美国专利申请16/814,855整体并入本文。以下非专利文献(NPL)通过引用整体并入本文:
[0003]·
Julien Le Dem的“DREMEL MADE SIMPLE WITHPARQUET”,2013年9月11日发布,网址:
[0004]https://blog.twitter.com/engineering/en_us/a/2013/dremel

made

simple

with

parquet.html
[0005]·
于2017年10月16日发布的“APACHE PARQUET”,网址:
[0006]https://github.com/apache/parquet

format/blob/f1de77d31936f4d50f1286676a0034b6339918ee/README.md


[0007]本专利技术涉及对半结构化文本文档的集合的查询加速。本文介绍了基于位图关键字索引和列式持久化的全文搜索技术。

技术介绍

[0008]半结构化内容广泛用于持久化信息,因为它在形式“结构化”内容和自然“非结构化”内容之间提供了最优折衷。半结构化数据通常具有更好的可读性并且容易被人类消耗。由于促进编码、标记化(tokenize)、解析和/或某种语义分析的定义明确的结构特性,半结构化数据也可以通过编程方式进行处理。例如,由于诸如超文本标记语言(HTML)、JavaScript对象表示法(JSON)或可扩展标记语言(XML)之类的正式标准指定的定义明确的格式,典型的网页内容一般是半结构化的、人类可读的且容易由脚本语言处理的。
[0009]因为半结构化数据是人类可读的,所以用自然的自由格式文本搜索来搜索结构化和非结构化字段非常普遍。这种搜索的重要特征是指定的文本可以出现在半结构化文本的任何部分中。
[0010]在一些领域高效地进行上述搜索是重要的。例如,在欧盟(EU)的《通用数据保护条例》(General Data Protection Regulation,GDPR)中,“被遗忘权”要求找到与指定的个人文本串相关的所有记录并按需删除。这项工作必须在短时间窗口内完成。因此,有必要使用工具来辅助搜索过程以高效地执行这个过程,尤其是当涉及数亿个可用半结构化文档中的未知部分时。
[0011]在应用层面,支持半结构化文本搜索通常涉及倒排索引的构造。这在诸如Lucene等之类的搜索应用中是常见的。倒排索引可以使搜索加速为与文档大小的对数成正比,这通常是几个数量级。但是,这样的文本索引几乎和数据本身一样大。这阻止了将倒排索引包括在内容文件本身中,因为它会使文件的存储占用空间加倍。因此,通常替代地将索引单独保存在归档存储装置或其它更便宜的大容量持久存储装置中。
附图说明
[0012]在图中:
[0013]图1是描绘示例计算机的框图,它加速在数据存储库(诸如半结构化文档的数据库)中搜索文本词;
[0014]图2是描绘示例过程的流程图,该过程加速在数据存储库(诸如半结构化文档的数据库)中搜索文本词;
[0015]图3是描绘基于Parquet文件的水平和垂直可扩展性的示例加速过程的流程图;
[0016]图4是描绘JavaScript对象表示法(JSON)字段到Parquet列的示例映射的框图;
[0017]图5是描绘示例性摄取和索引形成可以如何进行的流程图;
[0018]图6是图示可以在其上实现本专利技术的实施例的计算机系统的框图;
[0019]图7是图示可以用于控制计算系统的操作的基本软件系统的框图。
具体实施方式
[0020]在下面的描述中,出于解释的目的,阐述了许多具体细节以便提供对本专利技术的透彻理解。但是,将明显的是,可以在没有这些具体细节的情况下实践本专利技术。在其它情况下,以框图形式示出了众所周知的结构和设备,以避免不必要地使本专利技术模糊。
[0021]总体概述
[0022]本文是一种概率索引技术,用于使用列式I/O避免搜索诸如Parquet之类的列式存储格式的半结构化文本,并且需要最小的索引存储开销。当半结构化内容被解析为单独的数据列时,可以通过数据库模式或其它描述性元数据来维护结构信息,因此所得到的列式数据差不多等同于原始输入数据。对原始半结构化文本的文本搜索可以映射到对所摄取的列式数据的查询。只要将查询应用于包含结构化数据的少数列,这种方法就可以高效地工作,但是当必须对整个半结构化内容进行搜索时,这种方法就会变得效率低下。
[0023]一个技术问题是文本搜索查询预期感兴趣的数据可能在原始半结构化文本的许多字段中的任何一个中,因此查询执行不应当只查看个别字段。对关键字的所有字段的搜索将与全表扫描一样昂贵,这通常效率低下并且不推荐使用。
[0024]本文的技术通过在原始半结构化数据上创建索引并将索引嵌入到Parquet列式文件格式中来解决这个技术问题。本文的方法将概率文本搜索索引与Parquet列式格式相结合,并通过使用索引过滤Parquet列和行

组来实现I/O避免。索引包括每个可搜索词的位图。每个位图指示哪一列包含相应的词。
[0025]在实施例中,计算机将列与半结构化文档中出现的文本串相关联。检测文本串中出现的文本词。分别为每个文本词生成多个位图中包含用于每个列的相应位的位图。基于位图中的至少一个位图,访问列中的一些列或半结构化文档中的一些半结构化文档。
[0026]1.0示例计算机
[0027]图1是描绘实施例中的示例计算机100的框图。计算机100使在诸如半结构化文档的数据库之类的数据存储库中搜索文本词加速。
[0028]计算机100可以是一个或多个计算机,诸如:诸如刀片之类的机架式服务器、个人计算机、大型机、虚拟计算机或其它计算设备。当计算机100具有多个计算机时,这些计算机通过通信网络互连。在计算机100的易失性或非易失性存储装置或远程存储装置中,计算机
100可以访问许多半结构化文本文档,诸如可以驻留在(一个或多个)文件或诸如数据库之类的大容量数据存储库中的文档131

132。
[0029]在这个示例中,文档131包含JavaScript对象表示法(JSON)。文档132包含可扩展标记语言(XML)。在任何情况下,文档131

132都是半结构化的,因为它们的内容可以是以下内容的混合:a)经解析的文本,诸如文档131

132中未加引号的标点符本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种计算机实现的方法,包括:配置数据库的多个列式文件中的多个列;对于所述多个列式文件中的每个列式文件,在该列式文件中的多个列中持久化在数据库中持久化的多个半结构化文档的相应子集中出现的相应的多个文本串;检测出现在所述多个半结构化文档中的所述多个文本串中的多个文本词;分别为所述多个文本词中的每个文本词并且为所述多个列式文件中的每个列式文件生成多个位图中的相应位图,该相应位图包含用于所述多个列中的每一列的相应位,所述相应位指示该文本词是否出现在列式文件的列中;在所述多个列式文件中的每个列式文件中持久化用于该列式文件的位图;通过访问所述多个位图以检测所述多个列式文件中的哪些列式文件包含所述多个文本词中查询所指定的特定词来执行对数据库的查询。2.如权利要求1所述的计算机实现的方法,还包括:测量所述多个文本词中的第一文本词的第一位图与所述多个文本词中的第二文本词的第二位图之间的相似性;在所述多个位图中并且基于测量所述相似性,将第一文本词的第一位图和第二文本词的第二位图替换为单个位图,该单个位图具有用于所述多个列中的每一列的单个相应位。3.如权利要求2所述的计算机实现的方法,其中测量第一位图与第二位图之间的所述相似性包括Jaccard距离。4.如权利要求2所述的计算机实现的方法,其中访问所述多个位图包括:基于用于所述多个列中的特定列的所述单个位图的相应位,检测该特定列的值包含以下当中的至少一个:第一文本词和第二文本词;检测该特定列的所述值包含第一文本词而不包含第二文本词。5.如权利要求2所述的计算机实现的方法,其中:生成所述第一文本词的所述第一位图包括:为所述多个列中的每一列的第一部分生成第一位图的第一实例,以及为所述多个列中的每一列的第二部分生成第一位图的第二实例;所述计算...

【专利技术属性】
技术研发人员:温鉴H
申请(专利权)人:甲骨文国际公司
类型:发明
国别省市:

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

1