CN116783588A - 用于大元数据管理的列技术 - Google Patents
用于大元数据管理的列技术 Download PDFInfo
- Publication number
- CN116783588A CN116783588A CN202180090563.2A CN202180090563A CN116783588A CN 116783588 A CN116783588 A CN 116783588A CN 202180090563 A CN202180090563 A CN 202180090563A CN 116783588 A CN116783588 A CN 116783588A
- Authority
- CN
- China
- Prior art keywords
- query
- data
- subset
- data blocks
- query request
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 230000015654 memory Effects 0.000 claims description 44
- 238000012545 processing Methods 0.000 claims description 39
- 230000014509 gene expression Effects 0.000 claims description 27
- 238000004891 communication Methods 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 10
- 238000004590 computer program Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 241000533950 Leucojum Species 0.000 description 3
- 238000007405 data analysis Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 230000003442 weekly effect Effects 0.000 description 1
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/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2465—Query processing support for facilitating data mining operations in structured databases
-
- 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/221—Column-oriented storage; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- 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/2237—Vectors, bitmaps or matrices
-
- 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
-
- 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/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/45—Caching of specific data in cache memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种使用列技术来管理大元数据的方法(700)包括接收从数据表(158)请求与查询参数(21)相匹配的数据块(152)的查询请求(20)。数据表与系统表(154)相关联,每个系统表包括对应数据块的元数据。该方法包括基于查询请求生成系统查询(172)以返回与匹配查询参数的数据块相对应的行的子集(210)。该方法还包括基于查询请求和系统查询生成最终查询(186),以从数据表中返回对应于行的子集的数据块的子集。该方法还包括确定数据块的子集中的任何数据块是否与查询参数匹配,并且当一个或多个数据块与查询参数匹配时,返回匹配的数据块。
Description
技术领域
本发明涉及使用列技术来管理大量元数据。
背景技术
随着分布式存储(即,云存储)变得越来越流行,用于非常大的数据集的性能度量也变得越来越重要。例如,当查询非常大的表(例如,大小为数拍字节(petabytes)或更大的表)时,经常扫描数百万或更多条目以成功地响应查询。在这种情况下,查询可能花费大量的时间来完成。使用元数据来定位条目可以加速该过程,但是随着元数据量的增加,性能降低。
发明内容
本公开的一个方面提供了一种用于将列技术用于大元数据(即,大量元数据)管理的方法。该方法包括在数据处理硬件处接收查询请求,该查询请求请求数据表中返回从与查询参数相匹配的任何数据块。数据表被存储在与数据处理硬件通信的存储器硬件上并与一个或多个系统表相关联,其中一个或多个系统表中的每一个都具有行,每一个行都包括用于数据表的相应数据块的元数据。该方法还包括由数据处理硬件基于查询请求生成系统查询。系统查询返回从一个或多个系统表的行中选择的行子集,该行子集包括与查询请求的查询参数相匹配的数据表的相应数据块的元数据。该方法还包括由数据处理硬件基于查询请求和系统查询生成最终查询。最终查询从数据表返回数据块的子集,该数据块的子集对应于行的子集中的行的其中一个。该方法还包括:由数据处理硬件确定数据块的子集中的任何数据块是否与查询请求所指示的查询参数相匹配;以及当数据块的子集中的一个或多个数据块与查询参数相匹配时,由数据处理硬件返回匹配的数据块。
本公开的实现可以包括以下可选特征中的一个或多个。在一些实施方式中,生成最终查询包括生成查询请求和系统查询的半连接。在一些示例中,系统查询包括一个或多个可证伪(falsifiable)表达式。在这些示例中,生成系统查询包括为查询请求的至少一个合取词(conjunct)生成可证伪表达式。
在一些实施方式中,数据表包括事实表(例如,大事实表)和维(dimension)表(例如,小于事实表),其中查询请求过滤维表。在这些实施方式中,该方法还包括由数据处理硬件基于查询请求生成过滤事实表的事实查询。在一些示例中,生成从数据表返回数据块的子集的最终查询和确定数据块的子集中的任何数据块是否与查询参数匹配交织(interleaved)。在一些实施方式中,一个或多个系统表的一部分被高速缓存在易失性存储器中。这些实施方式还可以包括,由数据处理硬件基于访问统计来确定高速缓存在易失性存储器中的一个或多个系统表的部分。在一些示例中,数据表以列主格式存储。
本公开的另一方面提供了一种用于将列技术用于大元数据管理的系统。该系统包括数据处理硬件和与该数据处理硬件通信的存储器硬件。该存储器硬件存储指令,该指令在数据处理硬件上执行时使数据处理硬件执行操作。该操作包括接收查询请求,该查询请求请求数据表中返回从与查询参数相匹配的任何数据块。数据表被存储在存储器硬件上并与一个或多个系统表相关联,其中一个或多个系统表中的每一个都具有行,每一个行都包括用于数据表的相应数据块的元数据。该操作还包括基于查询请求生成系统查询。系统查询返回从一个或多个系统表的行中选择的行子集,该一个或多个系统表包括与查询请求的查询参数相匹配的数据表的相应数据块的元数据。该操作还包括基于查询请求和系统查询生成最终查询。最终查询从数据表返回数据块的子集,该数据块的子集对应于行的子集中的行的其中一个。该操作还包括确定数据块的子集中的任何数据块是否与查询请求所指示的查询参数相匹配,以及当数据块的子集中的一个或多个数据块与查询参数相匹配时,返回匹配的数据块。
该方面可以包括以下可选特征中的一个或多个。在一些实施方式中,生成最终查询包括生成查询请求和系统查询的半连接。在一些示例中,系统查询包括一个或多个可证伪表达式。在这些示例中,生成系统查询包括为查询请求的至少一个合取词生成可证伪表达式。
在一些实施方式中,数据表包括事实表和维表,其中查询请求过滤维表。在这些实施方式中,操作可以进一步包括基于查询请求生成过滤事实表的事实查询。在一些示例中,生成从数据表返回数据块的子集的最终查询和确定数据块的子集中的任何数据块是否与查询参数匹配交织。在一些实施方式中,一个或多个系统表的一部分被高速缓存在易失性存储器中。这些实施方式还可以包括基于访问统计来确定高速缓存在易失性存储器中的一个或多个系统表的部分。在一些示例中,数据表以列主格式存储。
本公开的一个或多个实施方式的细节在附图和以下描述中阐述。通过说明书、和附图、以及权利要求书,其他方面、特征和优点将变得显而易见。
附图说明
图1是使用列技术管理大元数据的示例系统的示意图。
图2是图1的系统的系统的示例组件的示意图。
图3A和3B是示例性系统表的示意图。
图4A和4B是数据块时间戳的示例性时间线的示意图。
图5是用于高速缓存频繁使用的行的示例系统的示意图。
图6是用于执行处理加入的示例系统的示意图。
图7是用于使用列技术管理大元数据的方法的操作的示例布置的流程图。
图8是可用于实现本文描述的系统和方法的示例计算设备的示意图。
在各个附图中,相同的附图符号表示相同的元件。
具体实施方式
云数据仓库的快速出现正在重新定义数据分析的景观。随着数据量的增长,这种系统在今天和不久的将来必须扩展到越来越大的规模(例如,拍字节(petabytes)或艾字节(exabytes))。已经发展了许多技术以允许数据系统处理这种极端的存储要求。通常,这些技术包括随着数据对象的数量增加而增加存储的元数据的量。大数据系统可以利用关于各个数据块的丰富元数据来执行低等待时间数据分析。因此,似乎存储更多元数据通常应该导致性能的提高和等待时间的减少。然而,传统上,大的数据系统已经尝试减少元数据的量,以便更好地扩缩系统,同时在性能上做出相应的牺牲,因为随着元数据大小的增加,元数据系统的可缩放性、可管理性和性能降低了系统的整体行为。
在一些数据系统中,数据块作为列块的集合(即,以列主格式)存储在数据表中。元数据可以存储在与数据表的数据块相关联的一个或多个系统表中。例如,元数据包括数据表的数据块的表模式和块位置(例如,作为路径)。对数据表的查询往往在表的一列或多列上具有过滤器。此外,星(star)模式和雪花(snowflake)模式是常见的。对这样的表(例如,具有星模式或雪花模式的数据表)的查询已经隐含了数据系统在处理数据表的维表之后生成的过滤器谓词。
显然,减少数据表中必须扫描的行数对于数据表查询的效率和等待时间是关键。存储关于每个块的丰富元数据显着地提高了查询性能,但是随着数据表大小的增加,元数据的量可以显着地增加。尽管大的数据系统传统上试图减少元数据的量以便扩缩,但是减少元数据的量牺牲了丰富元数据可以以其他方式提供的性能。
本文中的实现针对一种系统,该系统使用列技术来管理大元数据,而不尝试减少元数据的量,而是允许元数据与数据表进行扩缩。大元数据被定义为大量或巨大数量的元数据(例如,兆兆字节(terabytes)或拍字节或更多)。系统接收对数据表的查询,以在一个或多个系统表上生成系统查询。每个系统表包括具有与数据表的数据块相关联的元数据的行。系统表的系统查询产生一个结果,该结果从数据表中极大过滤了必须被扫描以响应查询的数据块的数量。
参考图1,在一些实施方式中,示例系统100包括与相应用户12相关联的用户设备10,该用户设备10经由网络112与远程系统140通信。用户设备10可以对应于任何计算设备,例如台式工作站、膝上型工作站或移动设备(即,智能电话)。用户设备10包括计算资源18(例如,数据处理硬件)和/或存储资源16(例如,存储器硬件)。
远程系统140可以是具有可扩展/弹性计算资源144(例如,数据处理硬件)和/或存储资源142(例如,存储硬件)的单个计算机、多个计算机或分布式系统(例如,云环境)。数据存储146(即,远程存储设备146)可以覆盖在存储资源142上,以允许客户端或计算资源144中的一个或多个可扩展地使用存储资源142。数据存储146包括数据块数据存储150,其经配置以存储存储在与用户12相关联的数据结构158(例如,数据表)内的多个数据块152,152a-n。数据块数据存储150可存储任何数目的数据表158,158a-n。在一些实施方式中,数据块152以列主格式存储在数据表158中。远程系统140还包括被配置为存储一个或多个系统表154,154a-n的系统表数据存储184。每个系统表154与数据表158相关联,并且每个系统表的每行210(图2)包括与数据表158的特定数据块152相对应的元数据。每个系统表使用列存储(即,元数据按列而不是按行存储)。
远程系统140被配置为经由网络112从用户设备10上的用户12接收查询请求20。例如,查询请求20包括返回与查询请求20内包括的查询参数21相匹配的任何数据块152R的请求(例如,包含某一关键字的数据块152)。通常,为了完成查询请求20,必须扫描或读取数据表158中的每个数据块152,以确定相应的数据块152是否与查询请求20的查询参数21相匹配。远程系统140执行元数据管理器160,元数据管理器160接收具有查询参数21的查询请求20。在一些实施方式中,元数据管理器160包括系统查询生成器170。系统查询生成器170基于接收到的查询请求20生成系统查询172。例如,系统查询生成器170基于查询请求20的查询参数21生成系统查询172。如以下将更详细讨论的,系统查询生成器170生成系统查询172以从一个或多个系统表154返回行210,210a-n(图2)的子集的一部分或全部。每个行对应于数据表158中的数据块152中的一个。也就是说,每行包含与数据表158的数据块152中的一个相关联的元数据。
元数据管理器160还包括查询组合器180。在生成系统查询172之后,系统查询生成器170将系统查询172和查询请求20发送到查询组合器180。查询组合器180被配置为接收查询请求20和系统查询172,并基于查询请求20和系统查询172生成最终查询186。为此,查询请求20和系统查询172是最终查询186的子查询。在一些实施方式中,最终查询186是查询请求20和系统查询172的半连接(semi-join)。连接(join)是用于组合来自一个或多个表的列的表运算符。半连接是一个表运算符,其中结果集只包含来自“半连接”表的列。换句话说,如果在另一个连接输入上存在至少一个匹配行,则半连接从一个连接输入返回一个行。在一些示例中,查询组合器180通过寻址列(例如BLOCK_LOCATOR列)上的一个或多个系统表154来评估查询请求20的半连接。寻址列为数据表158中的每个数据块152提供地址(即,位置)。
查询组合器180使用由系统查询生成器170生成的系统查询172查询系统表数据存储184中的一个或多个系统表154。系统查询172扫描相应的系统表154并返回系统表154的行210(图2)的子集的部分或全部。例如,查询组合器180从一个或多个系统表154检索用于行210的子集的数据块ID 182,182a-n。因为系统查询172基于查询请求20,所以这些数据块152对应于与查询请求20的查询参数21相匹配的数据块152的超集。查询组合器180使用由最终查询186中的系统查询172生成的输出数据块ID 182(或数据块152的任何其它可识别方面)来过滤扫描查询请求20的数据块152。换句话说,只有由系统查询172返回的数据块152(即,由数据块ID 182标识)被最终查询186处理。因此,最终查询186不是扫描数据表158的每个数据块152,而是只扫描由系统查询172指示或标识的数据块152,从而减少了扫描的数据块152的总数,从而减少了处理时间和等待时间。对于某些查询请求20,由系统查询172产生的数据块152的数量比数据表158的数据块152的总数少几个数量级。
现在参考图2,示意图200包括识别存储在系统表数据存储184中的一个或多个系统表154中的行210的子集的系统查询172。每行210对应于数据表158的数据块152,行210的子集包括与查询请求20的查询参数21相匹配的所有数据块152。也就是说,每行210包括与数据表158的一个数据块152相关联的元数据。
这里,系统查询172将行210a-g的子集标识为包括查询请求20寻找的数据块152的行210。因此,行210a-g的子集中的每个行210包括将行210与对应的数据块152a-g相关联的对应的数据块ID 182a-g。具体地,数据块ID 182a标识数据块152a,并将行210a与数据块152a相关联。类似地,数据块ID 182b标识数据块152b,并将行210b与数据块152b相关联。这对于每一行210继续。在该示例中,最后一行210g包括具有标识数据块152g的数据块ID182g,并且将行210g与数据块152g相关联。系统表154可以包括任何数量的行210,并且该数量可以替代地基于数据表158中的数据块152的数量。在一些示例中,行210的数量为百万。因此,元数据管理器160使用表示与查询请求20的查询参数21匹配的数据块152的超集的数据块ID 182来最小化确定哪个数据块152与查询请求20的查询参数21匹配所需的处理量(即,要扫描的数据块152的数量)。
回到图1,元数据管理器160包括查询确定器190,其接收包括查询参数21的最终查询186,并包括或标识由系统查询172确定的数据块ID 182。查询确定器190用最终查询186查询数据块数据存储器150以读取或扫描或返回与系统查询172返回的数据块ID 182相对应的数据块152的子集。查询确定器190从由系统查询172标识的与查询请求20所指示的查询参数21相匹配的数据块152的子集来确定数据块152R。例如,查询确定器190扫描与系统查询172生成的数据块ID 182相对应的每个数据块152。查询确定器190将与查询请求20的查询参数21(例如,包含匹配的关键字)匹配的任何数据块152R返回给用户设备10。
在一些实施方式中,查询请求20的查询参数21是非选择性的(例如,不包括快照时间戳或其它过滤器)。在这些实施方式中,系统查询172返回由数据块ID 182表示的大量行210。为了加速处理,生成从数据表158返回数据块152的子集的最终查询186可以与确定数据块152的子集中的哪些数据块152与查询请求20的查询参数21相匹配交织。换句话说,当系统查询172返回具有数据块ID 182的行210时,查询确定器190并行地执行包括查询请求20的最终查询186,以确定数据块152子集中的任何数据块152是否与查询请求20的查询参数21匹配。也就是说,查询组合器180可以成批地将数据块ID 182返回到查询确定器190,这允许查询确定器190在查询组合器180完成所有相应数据块ID 182的检索之前开始处理最终查询186。例如,当系统查询172(基于查询请求20)导致来自系统表154的大量行210时,诸如交织执行的分布式处理技术提高了查询请求20的性能。
图3A和3B包括示例系统表154a,154b,其各自包括元数据的行210a-n和相关联的列310,310a-n的子集。由图3A和3B中的系统表154a,154b描绘的行210和列310的数目是示例性的,并且系统表154a,154b可以包括任何数目的行210和任何数目的列310。系统表154的每个“单元格”(cell)(即,行210和列310的每个交叉点)包括与相应数据块152相关联的元数据300。每个列310的元数据300可以包括任何类型的元数据300。可以根据与系统表154相关联的数据块152来定制用于每个系统表154的元数据300的类型。例如,用于表示销售数据(例如,用于零售商店)的系统表154的元数据300的类型与用于表示因特网协议(IP)地址的系统表154的元数据300的类型不同。每一列310可包括特定数据类型。例如,一个列310与“字符串”数据类型相关联,而另一个列310与“时间戳”数据类型相关联,而另一个列310与“整数”数据类型相关联。
与每个数据块152相关联的元数据可以被划分(例如,由元数据管理器160,由远程系统140,由用户12等)成任意数量的系统表154。这可通过允许元数据管理器160为了查询请求20仅扫描元数据300的一部分(即,仅扫描系统表154的一部分)来减少系统查询172的处理时间。例如,当查询请求20包括与时间戳相关联的查询参数21时,元数据管理器160查询与时间戳相关联的系统表154,同时拒绝查询不包括时间戳元数据的其它系统表154。系统表154可以将关联元数据300的列310分组到相同的系统表154中。
现在参考图3A,系统表154a包括对应于数据块ID 310a、数据块创建310b和数据块死亡310c的列310。如参考图2所论述,行210a-n的子集中的每一行210包括对应的数据块ID182(位于数据块ID列310a内),其提供用于数据表158的多个数据块152中的相关联的数据块152的地址。这里,系统表154a的每一行210反映数据块152变得可见(即,被创建)具有数据块创建列310b的时间,以及数据块152停止存活(即,被删除)具有数据块死亡列310c的时间。
现在参考图3B,系统表154b包括对应于数据块ID 310a,总行310d和总丢失行310e的列310。这里,数据块ID列310a在两个系统表154a,154b上都是公共的,以将数据块152a与每个系统表154a,154b的对应行210相关联。系统表154b的每一行210还反映数据块152中的值的数目(具有总行列310d)和数据块152中没有值的行的数目(具有总丢失行列310e)。
现在参考图4A的示意图400a,在一些实施方式中,元数据管理器160通过基于系统查询172生成可证伪表达式来确定数据块152的子集中的任何数据块152是否与查询请求20的查询参数21匹配。可证伪表达式是基于查询请求20的过滤器表达式导出的表达式,其包括以下属性:对于可证伪评估为真的数据块,可证伪表达式保证数据块与查询请求的查询参数21不匹配,并且随后不需要扫描(即,可以被修剪(pruned))。通常,每个数据块152包括表示一个或多个时间戳的元数据300。例如,元数据300包括指示何时创建,删除,最后修改和最后访问等数据块152的时间戳。在该示例中,查询请求20的查询参数21包括查询时间戳范围410,其指示远程系统140应当评估数据表158中的数据块152的时间范围。也就是说,查询时间戳范围410指示当前时间和创建数据表158以供远程系统140在执行查询请求20时评估每个数据块152时使用的时间点之间的较早的时间点和较晚的时间点。在该示例中,查询包括“SELECT SUM(LENGTH)from T WHERE timestamp_field BETWEEN'2019-05-2112:30:00'AND'2019-05-2221:30:00'”;其中“2019-05-2112:30:00”是较早的时间点,而“2019-05-2221:30:00”是timestamp_field列的查询过滤器范围的较晚的时间点。
继续该示例,元数据管理器160基于较早的时间点生成查询时间戳最小值420,并且基于较晚的时间点生成查询时间戳最大值430。查询时间戳最小值420等于要被评估用于查询的数据块152的最旧时间戳,并且查询时间戳最大值430等于要被评估的数据块152的最新时间戳(例如,最近)。图4A的数据块152a-k以基于示例查询所引用的时间戳的顺序示出,其中数据块152a与最旧的时间戳相关联并且数据块152k是最近的。在该示例中,元数据管理器160必须读取或扫描落在查询时间戳最小值420和查询时间戳最大值430之间的每个数据块152。用于处理示例查询的原始实现包括扫描数据表158的每个数据块152(在该示例中是数据块152a-k),并且确定(例如,基于存储在数据块152的头部内的元数据)数据块152是否应当被进一步处理。然而,因为每个数据块152必须被访问和至少部分地扫描,并且因为数据表158可以包括数百万或更多数据块152,所以这种原始方法是低效的。
现在参考图4B的示意图400b,在一些实施方式中,系统查询172包括一个或多个可证伪表达式。在这些实施方式中,元数据管理器160通过为查询请求20的至少一个合取词生成可证伪表达式来生成系统查询172。通过生成可证伪表达式,评估为真(通过可证伪表达式)的数据块152不需要由数据表158中的查询请求20扫描。任选地,元数据管理器160使用查询请求20的过滤器表达式的合取范式(conjunctive normal form,CNF)来为每个合取词生成可证伪表达式。即,元数据管理器160通过用数据块152的列的相应属性替换列来生成可证伪表达式。因此,对于给定的数据块152,当可证伪表达式评估为真时,每个可证伪表达式具有数据块152不需要由查询请求20扫描的属性(property)(即,数据块152可以被修剪)。
继续前面的示例,图4B示出了基于示例查询的可证伪表达式的执行。具体地,元数据管理器160使用来自示例查询的过滤器“timestamp_field BETWEEN‘2019-05-21 12:30:00’AND‘2019-05-22 21:30:00’”,可证伪表达式“timestamp_field.min_value>=‘2019-05-22 21:30:00’OR timestamp_field.max_value<=‘2019-05-21 12:30:00’.”在一些示例中,元数据管理器160通过否定过滤器来转换可证伪表达式:“timestamp_field.min_value<=‘2019-05-22 21:30:00’AND timestamp_field.max_value>=‘2019-05-21 12:30:00’.”
这里,代替扫描所有数据块154a-k,使用可证伪表达式来修剪数据块152的一部分。如图所示,数据块152a-d和152i-k被评估为真,并且被修剪(即,不被元数据管理器160扫描)。通过消除这些数据块152,只有数据块152e-h被查询请求20扫描,这大大减少了返回与查询请求20的查询参数21相匹配的数据块152R所需的处理时间。
在一些实施方式中,元数据管理器160使用过滤器的功能的属性来确定可证伪谓词。例如,具有过滤器“DATE(TIMESTAMP_TRUNC(timestamp_field,MONTH))BETWEEN‘2017-05’01’AND‘2017-07’01’,”的元数据管理器160使用DATE和TIMESTAMP_TRUNC函数的属性来确定可证伪谓词。具体地,对于给定的timestamp_field的值[X,Y]的间隔,当过滤器对值X和值Y都求值为真时,过滤器必须对X和Y之间的所有值求值为真。换句话说,当过滤器表达式在间隔[X,Y]中是单调时,则过滤器可以在timestamp_field的最小和最大值上被转换为可伪表达式。
继续这个相同的例子,元数据管理器160产生可证伪表达式“DATE(TIMESTAMP_TRUNC(timestamp_field.min_value,MONTH))>=‘2017-05-01’
OR DATE(TIMESTAMP_TRUNC(timestamp_field.max_value,MONTH))<=‘2017-07-01’.”同样,元数据管理器160可以否定过滤器以生成系统查询172。该技术可以用数据块152的许多其它特性来推广。例如,元数据管理器160从过滤器表达式“DATE(timestamp_field)IS NOT NULL.”生成可证伪表达式。例如,可证伪表达式是“timestamp_field.total_values==timestamp_field.total_missing_values.”
参照图5,在一些实施方式中,一个或多个系统表154被高速缓存在高速缓存510中(例如,高速易失性共享存储器中)。在这些实施方式中,一个或多个系统表154的最频繁访问的行210被存储在高速缓存510中,以相对于存储在系统表数据存储器184(例如,较慢的非易失性存储器)中的行210大大增加对这些行210的访问速度。为此,元数据管理器160维护访问统计520的日志,该日志指示查询请求20在预定时间段内访问相应系统表154的相应行210的频率。例如,访问统计520指示某些行210从不被查询请求20访问或很少被查询请求20访问(例如,每周或每月),而其他行210被查询请求20频繁访问(例如,每小时或每天)。
查询组合器180在仍然执行一个或多个查询请求20的同时,基于访问统计520实时调整缓存在缓存510中的行210。换句话说,当系统查询172返回行210的子集中的关联行210的数据块ID 182时,查询组合器180更新访问统计520以标识访问了哪些行210。查询组合器180然后可以用一个或多个系统表154的最频繁访问的行210来更新高速缓存510。也就是说,查询组合器180调整高速缓存510,使得频繁访问的行210存在于高速缓存510中,而较不频繁访问的行210不存在于高速缓存510中。在一些实施方式中,更新访问统计520和高速缓存510并行发生。在其它示例中,查询组合器180在更新高速缓存510之前更新访问统计520。
现在参考图6,在一些示例中,数据块数据存储150将数据块152划分成多个数据表158a-n,以减少访问多个数据表158中的一个数据表158中的数据块152所需的处理时间。例如,存储在数据块数据存储器150中的数据表158包括事实数据表158a(例如,测量,度量或事实的表)和相关联的维数据表158b(例如,分类事实和测量的表),诸如通常用于雪花模式的那些。通常,维表158b具有比事实数据表158a更少量的数据块152(例如,数据对象)。由于规模的原因,规模数据表158b通常不需要平行扫描。在这些实施方式中,元数据管理器160通过首先查询维数据表158b并使用结果查询事实数据表158a来改进处理。在执行查询请求20期间,系统查询生成器170接收查询请求20并使用查询请求20查询维数据表158b。在这些实施方式中,查询请求20从元数据管理器160用于为事实数据表158a生成事实查询620的维数据表158b返回值的范围。
一旦生成了事实查询620,系统查询生成器170就基于生成的事实查询620生成系统查询172,就好像事实查询620被明确地包括在查询请求20的查询参数21中一样。这样,查询组合器180从系统查询生成器170接收系统查询172和事实查询620,并生成包括系统查询172和事实查询620的最终查询186。查询组合器然后将由系统查询172返回的数据块ID 182和最终查询186输出到查询确定器190。
查询确定器190使用最终查询186(其包括事实查询620)查询事实数据表158a,以返回与行210的子集中的关联行210的数据块ID 182相对应的数据块152的子集。查询确定器190通过扫描与系统查询172生成的数据块ID 182相对应的每个数据块152来确定任何数据块152R是否与查询请求20所指示的查询参数21相匹配。在扫描与数据块ID 182相关联的数据块152之后,查询确定器190将与查询参数21查询请求20相匹配的任何数据块152R返回给用户设备10。
图7是使用用于大元数据管理的列技术的方法700的操作的示例性布置的流程图。方法700包括,在操作702,在数据处理硬件144处,接收请求从数据表158返回与查询参数21匹配的任何数据块152的查询请求20。数据表158存储在与数据处理硬件144通信的存储器硬件146上,并与包含行210的一个或多个系统表154相关联,该行210包括用于相应数据块152的元数据。具有行210的一个或多个系统表154中的每一个系统表都包括数据表158的相应数据块152的元数据。在操作704,方法700包括由数据处理硬件144基于查询请求20生成用于返回从一个或多个系统表154的行210中选择的行的子集210的系统查询172。行210的子集包括与查询请求20的查询参数21相匹配的数据表158的相应数据块152的元数据。
在操作706,方法700包括由数据处理硬件144基于查询请求20和系统查询172生成从数据表158返回数据块152的子集的最终查询186。数据块152的子集中的每个数据块152对应于行210的子集中的一个行210。在操作708,方法700包括由数据处理硬件144确定数据块152的子集中的任何数据块152是否与查询请求20所指示的查询参数21相匹配。在操作710,方法700包括当数据块152的子集中的一个或多个数据块152与查询参数21匹配时,由数据处理硬件144返回匹配的数据块152R。
图8是可用于实现本文档描述的系统和方法的示例计算设备800的示意图。计算设备800旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作站、个人数字助理、服务器、刀片式服务器、大型计算机、和其它合适的计算机。本文所示的部件、它们的连接和关系、以及它们的功能仅仅旨在作为示例,并且不旨在限制本文档中描述的和/或者要求保护的本发明的实施。
计算设备800包括:处理器810(例如,数据处理硬件)、存储器820、存储设备830、连接至存储器820和高速扩展端口850的高速接口/控制器840、和连接至低速总线870和存储设备830的低速接口/控制器860。通过使用不同的总线将每个部件810、820、830、840、850、和860互相连接,并且可以将上述每个部件安装在公共主板上、或者根据需要以其它的方式安装上述每个部件。处理器810可以对在计算设备800内执行的指令进行处理,指令包括存储在存储器820中或者存储设备830上以在外部输入/输出设备上显示图形用户界面(GUI)的图形信息的指令,外部输入/输出设备诸如为耦合至高速接口840的显示器880。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多种存储器一起使用。同样,可以连接多个计算设备800,每个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。
存储器820将信息非暂时性地存储在计算设备800内。存储器820可以是计算机可读介质、(多个)易失性存储器单元、或者(多个)非易失性存储器单元。非易失性存储器820可以是用于在暂时或者持久基础上存储供计算设备800使用的程序(例如,指令序列)或者数据(程序状态信息)的物理设备。非易失性存储器的示例包括,但不限于:闪存和只读存储器(ROM)/可编程只读存储器(PROM)/可擦除编程只读存储器(EPROM)/电可擦除编程只读存储器(EEPROM)(例如,通常用于诸如为引导程序的固件)。易失性存储器的示例包括:但不限于,随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、相变存储器(PCM)、以及光盘或者磁带。
存储设备830能够为计算设备800提供海量存储。在一些实施方式中,存储设备830是计算机可读介质。在各种不同的实施方式中,存储设备830可以是软盘设备、硬盘设备、光盘设备、或者磁带设备、闪存或者其它相似的固态存储器设备、或者设备阵列,包括:在存储区域网络或者其它配置中的设备。在附加实施方式中,计算机程序产品有形地体现为信息载体。计算机程序产品包含指令,该指令在被执行时执行一种或者多种方法,诸如,上文描述的方法。信息载体是计算机可读介质或者机器可读介质,诸如,存储器820、存储设备830、或者在处理器810上的存储器。
高速控制器840管理计算设备800的带宽密集型操作,而低速控制器860管理较低带宽的密集型操作。这种功能分配仅仅是示例性的。在一些实施方式中,高速控制器840耦合至存储器820、显示器880(例如,通过图形处理器或者加速器)耦合至高速扩展端口850,该高速扩展端口1150可以接受各种扩展卡(未示出)。在一些实施方式中,低速控制器860耦合至存储设备830和低速扩展端口890。低速扩展端口890可以包括各种通信端口(例如,USB、蓝牙、以太网,和无线以太网),可以,例如通过网络适配器,耦合至一个或者多个输入/输出设备,例如,键盘、指向设备、扫描器、或者诸如交换机或者路由器的网络设备。
如图所示,可以利用多种形式来实施计算设备800。例如,可以将计算设备800实施为标准服务器800a、或者多次实施在一组这种服务器800a中、或者实施为膝上型计算机800b、或者实施为机架式服务器系统800c的一部分。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统和/或光学电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用的,可以从存储系统、至少一个输入设备、和至少一个输出设备接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入设备、和该至少一个输出设备。
软件应用(即,软件资源)可以指使计算设备执行任务的计算机软件。在一些示例中,可以将软件应用称为“应用”、“应用程序”、或者“程序”。示例应用包括:但不限于,系统诊断应用、系统管理应用、系统维护应用、文字处理应用、电子表格应用、消息应用、媒体流应用、社交网络应用、和游戏应用。
这些计算机程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、非暂时性计算机可读介质、设备、和/或设备(例如,磁盘、光盘、存储器、可编程逻辑设备(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
可以通过一个或者多个可编程处理器来执行本说明书中所描述的过程和逻辑流程,该一个或者多个可编程处理器执行一个或者多个计算机程序以通过操作输入数据并且生成输出来执行功能。也可以通过诸如FPGA(现场可编程门阵列)或者ASIC(专用集成电路)的专用逻辑电路来执行过程和逻辑流程。适合执行计算机程序的处理器包括:例如,通用微处理器、专用微处理器、以及任何种类的数字计算机的任何一个或者多个处理器。一般而言,处理器将接收来自只读存储器或者随机存取存储器或者两者的指令和数据。计算机的必要元件是:用于执行指令的处理器、和用于存储指令和数据的一个或者多个存储器设备。一般而言,计算机还将包括用于存储数据的一个或者多个海量存储设备,或者计算机可以操作地耦合以接收来自该一个或者多个海量存储设备的数据或者将数据传输至该一个或者多个海量存储设备或者进行两者,该海量存储设备例如为磁盘、磁光盘、或者光盘。然而,计算机不必具有这种设备。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储设备,包括,例如,半导体存储设备(例如EPROM,EEPROM和闪存设备)、磁盘(例如内部硬盘或可移动磁盘)、磁光盘、以及CD ROM和DVD-ROM磁盘。处理器和存储器可以由专用逻辑电路系统补充或者可以并入该专用逻辑电路系统中。
为了提供与用户的交互,可以在计算机上实施本公开的一个或者多个方面,该计算机具有:用于向用户显示信息的显示设备,例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器、或者触摸屏、以及可选地包括键盘和指向设备(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向设备来将输入提供给计算机。其它种类的设备可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈,例如,视觉反馈、听觉反馈或者触觉反馈;并且可以用包括声输入、语音输入或者触觉输入的任何形式来接收来自用户的输入。另外,计算机可以通过将文档发送到用户所使用的设备并且接收来自该设备的文档,来与用于交互,例如,通过响应于从网络浏览器接收的请求来将网页发送至在用户的客户端设备上的网络浏览器。
已经描述了多个实施方式。然而,可理解的是,在不脱离本公开的精神和范围的情况下,可以进行各种修改。因此,其他实施方式在所附权利要求的范围内。
Claims (20)
1.一种计算机实施的方法(700),其特征在于,当在数据处理硬件(144)上执行时,使所述数据处理硬件(144)执行操作,所述操作包括:
接收查询请求(20),所述查询请求(20)请求从数据表(158)返回与查询参数(21)匹配的任何数据块(152),所述数据表(158)存储在与所述数据处理硬件(144)通信的存储器硬件(146)上,并与一个或多个系统表(154)相关联,所述一个或多个系统表(154)中的每一个具有行(210),所述行(210)中的每一个包括所述数据表(158)的相应数据块(152)的元数据(300);
基于所述查询请求(20)生成系统查询(172),所述系统查询(172)用于返回从所述一个或多个系统表(154)的行(210)中选择的行(210)的子集,所述行(210)的子集包括与所述查询请求(20)的查询参数(21)相匹配的所述数据表(158)的所述相应数据块(152)的所述元数据(300);
基于所述查询请求(20)和所述系统查询(172)生成最终查询(186),所述最终查询(186)从所述数据表(158)返回数据块(152)的子集,所述数据块(152)的子集中的每个数据块(152)对应于所述行(210)的子集中的其中一行(210);
确定所述数据块(152)的子集(152)中的任何数据块(152)是否与所述查询请求(20)所指示的所述查询参数(21)相匹配;和
当所述数据块(152)的子集中的一个或多个数据块(152)与所述查询参数(21)匹配时,返回匹配的数据块(152)。
2.根据权利要求1所述的方法(700),其特征在于,生成所述最终查询(186)包括生成所述查询请求(20)和所述系统查询(172)的半连接。
3.根据权利要求1或2所述的方法(700),其特征在于,所述系统查询(172)包括一个或多个可证伪表达式。
4.根据权利要求3所述的方法(700),其特征在于,生成所述系统查询(172)包括为所述查询请求(20)的至少一个合取词生成可证伪表达式。
5.根据权利要求1-4中任一项所述的方法(700),其特征在于,所述数据表(158)包括事实表和维表,并且其中所述查询请求(20)过滤所述维表。
6.根据权利要求5所述的方法(700),其特征在于,所述操作还包括基于所述查询请求(20)生成过滤所述事实表的事实查询(620)。
7.根据权利要求1-6中任一项所述的方法(700),其特征在于,生成从所述数据表(158)返回所述数据块(152)的子集的所述最终查询(186)和确定所述数据块(152)的子集中的任何数据块(152)是否与所述查询参数(21)匹配被交织。
8.根据权利要求1所述的方法(700),其特征在于,所述一个或多个系统表(154)的一部分被高速缓存在易失性存储器中。
9.根据权利要求8所述的方法(700),其特征在于,所述操作还包括基于访问统计(520)来确定高速缓存在易失性存储器中的所述一个或多个系统表(154)的所述部分。
10.根据权利要求1-9中任一项所述的方法(700),其特征在于,所述数据表(158)以列主格式存储。
11.一种系统(100),其特征在于,包括:
数据处理硬件(144);和
与所述数据处理硬件(144)通信的存储硬件(146),所述存储硬件(146)存储指令,所述指令在所述数据处理硬件(144)上执行时使所述数据处理硬件(144)执行以下操作:
接收查询请求(20),所述查询请求(20)请求从数据表(158)返回与查询参数(21)匹配的任何数据块(152),所述数据表(158)存储在存储器硬件(146)上并与一个或多个系统表(154)相关联,所述一个或多个系统表(154)中的每一个具有行(210),所述行(210)中的每一个包括所述数据表(158)的相应数据块(152)的元数据(300);
基于所述查询请求(20)生成系统查询(172),所述系统查询(172)用于返回从所述一个或多个系统表(154)的行(210)中选择的行(210)的子集,所述行(210)的子集包括与所述查询请求(20)的查询参数(21)相匹配的所述数据表(158)的所述相应数据块(152)的所述元数据(300);
基于所述查询请求(20)和所述系统查询(172)生成最终查询(186),所述最终查询(186)从所述数据表(158)返回数据块(152)的子集,所述数据块(152)的子集中的每个数据块(152)对应于所述行(210)的子集中的其中一行(210);
确定所述数据块(152)的子集(152)中的任何数据块(152)是否与所述查询请求(20)所指示的所述查询参数(21)相匹配;和
当所述数据块(152)的子集中的一个或多个数据块(152)与所述查询参数(21)匹配时,返回匹配的数据块(152)。
12.根据权利要求11所述的系统(100),其特征在于,生成所述最终查询(186)包括生成所述查询请求(20)和所述系统查询(172)的半连接。
13.根据权利要求11或12所述的系统(100),其特征在于,所述系统查询(172)包括一个或多个可证伪表达式。
14.根据权利要求13所述的系统(100),其特征在于,生成所述系统查询(172)包括为所述查询请求(20)的至少一个合取词生成可证伪表达式。
15.根据权利要求11-14中任一项所述的系统(100),其特征在于,所述数据表(158)包括事实表和维表,并且其中所述查询请求(20)过滤所述维表。
16.根据权利要求15所述的系统(100),其特征在于,所述操作还包括基于所述查询请求(20)生成过滤所述事实表的事实查询(620)。
17.根据权利要求11-16中任一项所述的系统(100),其特征在于,生成从所述数据表(158)返回所述数据块(152)的子集的所述最终查询(186)和确定所述数据块(152)的子集中的任何数据块(152)是否与所述查询参数(21)匹配被交织。
18.根据权利要求11-17中任一项所述的系统(100),其特征在于,所述一个或多个系统表(154)的一部分被高速缓存在易失性存储器中。
19.根据权利要求18所述的系统(100),其特征在于,所述操作还包括基于访问统计(520)来确定高速缓存在易失性存储器中的所述一个或多个系统表(154)的所述部分。
20.根据权利要求11-19中任一项所述的系统(100),其特征在于,所述数据表(158)以列主格式存储。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/098,301 US11580123B2 (en) | 2020-11-13 | 2020-11-13 | Columnar techniques for big metadata management |
US17/098,301 | 2020-11-13 | ||
PCT/US2021/058686 WO2022103777A1 (en) | 2020-11-13 | 2021-11-09 | Columnar techniques for big metadata management |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116783588A true CN116783588A (zh) | 2023-09-19 |
Family
ID=78821382
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180090563.2A Pending CN116783588A (zh) | 2020-11-13 | 2021-11-09 | 用于大元数据管理的列技术 |
Country Status (5)
Country | Link |
---|---|
US (2) | US11580123B2 (zh) |
EP (1) | EP4244729A1 (zh) |
KR (1) | KR20230096107A (zh) |
CN (1) | CN116783588A (zh) |
WO (1) | WO2022103777A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022133981A1 (zh) * | 2020-12-25 | 2022-06-30 | 京东方科技集团股份有限公司 | 数据处理方法、平台、计算机可读存储介质及电子设备 |
US20220382758A1 (en) * | 2021-05-27 | 2022-12-01 | Sap Se | Query processing for disk based hybrid transactional analytical processing system |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102171680A (zh) * | 2008-10-05 | 2011-08-31 | 微软公司 | 用于基于列的数据编码结构的查询的高效大规模过滤和/或排序 |
US20170091315A1 (en) * | 2015-09-29 | 2017-03-30 | International Business Machines Corporation | Expression based synopsis of database tables |
CN110781218A (zh) * | 2019-10-08 | 2020-02-11 | 中国地质大学(北京) | 一种基于车辆的驾驶信息到期自动预警系统及方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10756759B2 (en) * | 2011-09-02 | 2020-08-25 | Oracle International Corporation | Column domain dictionary compression |
US10296462B2 (en) * | 2013-03-15 | 2019-05-21 | Oracle International Corporation | Method to accelerate queries using dynamically generated alternate data formats in flash cache |
US9378232B2 (en) * | 2013-09-21 | 2016-06-28 | Oracle International Corporation | Framework for numa affinitized parallel query on in-memory objects within the RDBMS |
US10678791B2 (en) * | 2015-10-15 | 2020-06-09 | Oracle International Corporation | Using shared dictionaries on join columns to improve performance of joins in relational databases |
US10572475B2 (en) * | 2016-09-23 | 2020-02-25 | Oracle International Corporation | Leveraging columnar encoding for query operations |
US20200081841A1 (en) * | 2018-09-07 | 2020-03-12 | BigStream Solutions, Inc. | Cache architecture for column-oriented database management systems |
US11558446B2 (en) * | 2020-05-22 | 2023-01-17 | Yahoo Assets Llc | Joining and dimensional annotation in a streaming pipeline |
-
2020
- 2020-11-13 US US17/098,301 patent/US11580123B2/en active Active
-
2021
- 2021-11-09 EP EP21819662.4A patent/EP4244729A1/en active Pending
- 2021-11-09 KR KR1020237018577A patent/KR20230096107A/ko unknown
- 2021-11-09 CN CN202180090563.2A patent/CN116783588A/zh active Pending
- 2021-11-09 WO PCT/US2021/058686 patent/WO2022103777A1/en active Application Filing
-
2023
- 2023-02-08 US US18/166,056 patent/US12026168B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102171680A (zh) * | 2008-10-05 | 2011-08-31 | 微软公司 | 用于基于列的数据编码结构的查询的高效大规模过滤和/或排序 |
US20170091315A1 (en) * | 2015-09-29 | 2017-03-30 | International Business Machines Corporation | Expression based synopsis of database tables |
CN110781218A (zh) * | 2019-10-08 | 2020-02-11 | 中国地质大学(北京) | 一种基于车辆的驾驶信息到期自动预警系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
KR20230096107A (ko) | 2023-06-29 |
EP4244729A1 (en) | 2023-09-20 |
US12026168B2 (en) | 2024-07-02 |
WO2022103777A1 (en) | 2022-05-19 |
US20220156260A1 (en) | 2022-05-19 |
US20230185816A1 (en) | 2023-06-15 |
US11580123B2 (en) | 2023-02-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9418101B2 (en) | Query optimization | |
US8725730B2 (en) | Responding to a query in a data processing system | |
US12026168B2 (en) | Columnar techniques for big metadata management | |
US8171228B2 (en) | Garbage collection in a cache with reduced complexity | |
US9235613B2 (en) | Flexible partitioning of data | |
CN111061758B (zh) | 数据存储方法、装置及存储介质 | |
US20170228423A1 (en) | Declarative partitioning for data collection queries | |
US7925617B2 (en) | Efficiency in processing queries directed to static data sets | |
CN108140022A (zh) | 数据查询方法和数据库系统 | |
CN110928900B (zh) | 多表数据的查询方法、装置、终端以及计算机存储介质 | |
CN110765158A (zh) | 分页查询方法、系统和装置 | |
US11030177B1 (en) | Selectively scanning portions of a multidimensional index for processing queries | |
CN117390011A (zh) | 报表数据处理方法、装置、计算机设备和存储介质 | |
US8473496B2 (en) | Utilizing density metadata to process multi-dimensional data | |
US20220171693A1 (en) | Optimizing large scale data analysis | |
US20230169121A1 (en) | Performance Optimizations for Row-Level Security Filters | |
CN113157777B (zh) | 一种分布式实时查询数据的方法、集群、系统及存储介质 | |
US20070074176A1 (en) | Apparatus and method for parallel processing of data profiling information | |
CN112527900A (zh) | 一种数据库读多副本一致性的方法、装置、设备及介质 | |
US11762868B2 (en) | Metadata management for a transactional storage system | |
US11609909B2 (en) | Zero copy optimization for select * queries | |
US20240045845A1 (en) | Unstructured Data Analytics in Traditional Data Warehouses | |
WO2023220973A1 (zh) | 数据处理方法、装置、电子设备和计算机可读存储介质 | |
CN115309770A (zh) | 基于自定义策略的数据分析方法、装置、设备和存储介质 | |
WO2023249756A1 (en) | Multi-model enrichment memory and catalog for better search recall with granular provenance and lineage |
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 |