CN116982035A - 分布式数据系统中索引质量的测量与改进 - Google Patents
分布式数据系统中索引质量的测量与改进 Download PDFInfo
- Publication number
- CN116982035A CN116982035A CN202280019119.6A CN202280019119A CN116982035A CN 116982035 A CN116982035 A CN 116982035A CN 202280019119 A CN202280019119 A CN 202280019119A CN 116982035 A CN116982035 A CN 116982035A
- Authority
- CN
- China
- Prior art keywords
- partition
- quality
- data
- quality metric
- cluster
- 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
- 230000006872 improvement Effects 0.000 title description 2
- 238000005259 measurement Methods 0.000 title description 2
- 238000013442 quality metrics Methods 0.000 claims abstract description 512
- 238000005192 partition Methods 0.000 claims abstract description 408
- 230000009471 action Effects 0.000 claims abstract description 44
- 238000007906 compression Methods 0.000 claims description 103
- 230000006835 compression Effects 0.000 claims description 103
- 238000000034 method Methods 0.000 claims description 54
- 238000012217 deletion Methods 0.000 claims description 46
- 230000037430 deletion Effects 0.000 claims description 46
- 230000004044 response Effects 0.000 claims description 36
- 238000005538 encapsulation Methods 0.000 claims description 35
- 230000008859 change Effects 0.000 claims description 17
- 238000000638 solvent extraction Methods 0.000 claims description 6
- 238000012423 maintenance Methods 0.000 abstract description 3
- 238000007726 management method Methods 0.000 description 97
- 238000010586 diagram Methods 0.000 description 17
- 230000011218 segmentation Effects 0.000 description 13
- 230000003287 optical effect Effects 0.000 description 11
- 238000004590 computer program Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000002776 aggregation Effects 0.000 description 3
- 238000004220 aggregation Methods 0.000 description 3
- 238000013144 data compression Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000005056 compaction Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000003116 impacting effect Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 239000004065 semiconductor Substances 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; 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/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- 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/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- 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
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本文描述的实施例针对测量和改进分布式数据系统的索引质量。例如,在分布式数据系统的每个分区的基础上确定各种质量度量。质量度量中的每个质量度量指示分区的特定属性的质量。质量度量被聚合以生成总体索引质量得分,该得分提供了对索引性能的测量。索引质量得分被用来自动检测索引的低效,并且自动确定应当自动执行某些索引维护动作以改进索引的性能。还可以单独分析每个质量度量,以确定哪个数据库属性对索引的性能影响最大。
Description
背景技术
分布式数据库是分布在一个或多个计算机网络和/或互联网上的互连的数据库的集合。数据库可以包括表、行、列以及这些元素之间的限定关系。数据库索引提供了用于改进数据库中数据库表的搜索的数据结构。可以为表中的列创建索引,并且允许对索引表中的记录进行快速查找和高效排序访问。因此,索引为访问数据库中的数据的应用提供了优势,例如快速访问数据库表中的数据。然而,随着时间的推移数据被修改(例如,通过插入、删除等),如果没有得到适当的维护,该索引的有效性可能会下降。
发明内容
提供本发明内容是为了以简化形式介绍一组概念,这些概念将在下面的详细描述中进一步描述。本发明内容不旨在标识所要求保护的主题的关键特征或基本特征,也不旨在用来限制所要求保护的主题的范围。
本文描述的方法、系统、装置和计算机可读存储介质被配置为测量和改进分布式数据系统的索引质量。例如,在分布式数据系统的每个分区的基础上确定各种质量度量。质量度量中的每个质量度量指示分区的特定属性的质量。例如,质量度量可以测量数据在不同分区之间的分布情况和/或数据在特定分区内的集群、封装、压缩和/或分段情况。质量度量可以被聚合以生成总体索引质量得分,该整体索引质量得分提供对索引性能的测量。索引质量得分可以用于自动检测索引的低效,并且自动确定应当执行某些索引维护动作以改进索引的性能。例如,如果检测到低效,则可以自动执行动作以改变存储分布式数据系统的数据的方式。还可以单独分析每个质量度量,以确定哪个数据库属性对索引的性能影响最大。
下面将参考附图详细描述其他特征和优点以及各种示例实施例的结构和操作。注意,示例实现不限于本文描述的特定实施例。本文呈现这样的示例实施例仅用于说明目的。基于本文包含的教导的附加实现对于(多个)相关领域的技术人员将是清楚的。
附图说明
附图结合于此并构成说明书的部分,其示出了本申请的示例实施例,并且与说明书一起进一步用于解释示例实施例的原理并且使相关领域的技术人员能够制作和使用示例实施例。
图1示出了根据示例实施例的示例基于网络的计算系统的框图,其被配置为测量和改进分布式数据系统的索引质量。
图2描绘了根据示例实施例的用于测量和改进分布式数据系统的索引质量的系统的框图。
图3示出了根据示例实施例的用于检测和改进索引的低效的方法的流程图。
图4描绘了根据示例实施例的用于生成全局分区质量度量的系统的框图。
图5示出了根据示例实施例的用于确定全局分区质量度量的方法的流程图。
图6描绘了根据示例实施例的用于生成全局集群质量度量的系统的框图。
图7示出了根据示例实施例的用于确定全局集群质量度量的方法的流程图。
图8描绘了根据示例实施例的用于生成全局数据封装质量度量的系统的框图。
图9示出了根据示例实施例的用于确定全局数据封装质量度量的方法的流程图。
图10描绘了根据示例实施例的用于生成全局压缩质量度量的系统的框图。
图11示出了根据示例实施例的用于确定全局压缩质量度量的方法的流程图。
图12描绘了根据示例实施例的用于生成全局分段质量度量的系统的框图。
图13示出了根据示例实施例的用于确定全局分段质量度量的方法的流程图。
图14描绘了根据示例实施例的用于生成总体索引质量度量和全局工作单元的系统的框图。
图15是可以用于实现各种实施例的示例基于处理器的计算机系统的框图。
当结合附图时,从下面阐述的详细描述中,本文描述的实现的特征和优点将变得更加明显,其中相同的附图标记从头到尾标识相应的元素。在附图中,相似的附图标记通常表示相同的、功能相似的和/或结构相似的元素。元素首次出现的附图由相应附图标记中的最左边的(多个)数字表示。
具体实施方式
I.导言
本说明书和附图公开了许多示例实现。本申请的范围不限于所公开的实现,还包括所公开的实现的组合以及对所公开的实现的修改。在本说明书中,对“一种实现”、“实现”、“示例实施例”、“示例实现”等的引用表明,所描述的实现可以包括特定的特征、结构或特性,但每个实现不一定包括该特定的特征、结构或特性。此外,这些短语不一定指的是相同的实现。此外,当结合实现描述特定特征、结构或特性时,提出无论是否明确描述,结合其他实现来实现这种特征、结构或特性都在(多个)相关领域的技术人员的知识之内。
在讨论中,除非另有说明,否则修改本公开的实施例的一个或多个特征的条件或关系特性的形容词,诸如“实质上”和“大约”,应当理解为该条件或特性被定义为在其预期的应用的实现的操作可接受的容差内。
此外,应当理解,本文使用的空间描述(例如,“上方”、“下方”、“上”、“左”、“右”、“下”、“顶部”、“底部”、“垂直”、“水平”等)只是为了说明的目的,并且本文描述的结构的实际实现可以以任何方向或方式在空间上布置。
下面描述了许多示例实施例。请注意,本文中提供的任何章节/小节标题都不是限制性的。本文档通篇描述了实现,并且任何类型的实现都可以包含在任何章节/小节中。此外,在任何章节/小节中公开的实现可以以任何方式与在相同章节/小节和/或不同章节/小节中描述的任何其他实现相结合。
II.示例实现
本文描述的实施例针对测量和改进分布式数据系统的索引质量。例如,在分布式数据系统的每个分区的基础上确定各种质量度量。每个质量度量指示分区的特定属性的质量。例如,质量度量可以测量数据在不同分区之间的分布情况和/或数据在特定分区内的集群、封装、压缩和/或分段情况。质量度量可以被聚合以生成总体索引质量得分,该整体索引质量得分提供对索引性能的测量。索引质量得分可以用于自动检测索引的低效,并且自动确定应当执行某些索引维护动作以改进索引的性能。例如,如果检测到低效,则可以自动执行动作以改变存储分布式数据系统的数据的方式。还可以单独分析每个质量度量,以确定哪个数据库属性对索引的性能影响最大。
通过确保以尽可能最有效的方式布局和存储数据,上述技术有利地改进了分布式数据系统的性能。这有利地减少了存储数据所需的存储量并改进了查询性能,因为在查询期间搜索的数据文件的数目减少了。因此,前述技术减少了搜索数据所需的各种计算资源量(例如,处理周期、输入/输出(I/O)事务的数目、功率等)。
此外,以并行方式执行为每个分区确定的质量度量。例如,每个分区可以与相应的元数据目录相关联,该目录存储与特定分区相关联的元数据。来自每个元数据目录的元数据可以由分区局部的节点来取回和分析以确定质量度量。这有利地允许并行地生成不同分区的质量度量(与远程中央实体单独查询每个元数据目录然后确定总体索引得分相反),从而导致快速度量生成。
例如,图1示出了根据示例实施例的示例基于网络的计算系统100的框图,其被配置为测量和改进分布式数据系统的索引质量。如图1所示,系统100包括多个集群102A、102B和102N。集群102A、102B和102N中的每个集群经由网络116通信地彼此耦合。网络116可以包括一个或多个网络,诸如局域网(LAN)、广域网(WAN)、企业网、互联网等,并且可以包括有线和/或无线部分中的一个或多个。
集群102A、102B和102N可以形成网络可访问的服务器集(例如,基于云的环境)。集群102A、102B和102N中的每个集群可以包括一个或多个节点(也称为计算节点)的群组和/或一个或多个存储节点的群组。例如,如图1所示,集群102A包括节点108A至108N和/或一个或多个存储节点110A,集群102B包括节点112A至112N和/或(多个)存储节点110B,并且集群102N包括节点114A至114N和/或(多个)存储节点110N。节点108A至108N、112A至112N和/或114A至114N中的每个节点都可以经由网络116(例如,在基于云的实施例中)被访问以构建、部署和管理应用和服务。(多个)存储节点110A110N中的每个存储节点包括可经由网络116访问的多个物理存储盘,并且被配置为存储与由节点108A至108N、112A至112N和/或114A至114N管理的应用和服务相关联的数据。
如图1所示,(多个)存储节点110A至110N分别包括数据集106A至106N。在各实施例中,数据集106A至106N中的每个数据集包括数据库等,其可以是非常大的数据集,例如用于“大数据”分析和/或数据仓库。本文预期,在实施例中,数据集106A至106N中的一个或多个数据集是拍字节或更多的量级。数据集106A至106N可以在逻辑上表示为结构化的关系数据,其被组织为表格的行,具有用于数据的列。数据集106A至106N的数据可以存储在一个或多个数据文件中。数据集106A至106N中的每个数据集可以基于分区键被分区成多个分区,分区键可以包括确定存储每行的分区的一个或多个列。每个分区可以存储在存储节点110A至110N的不同存储节点上,但是本文描述的实施例不限于此。
根据一个实施例,数据集106A至106N是分布在(多个)存储节点110A至110N之间的同一数据库的部分(即,数据集106A至106N是分布式数据库系统的部分)。根据这样的实施例,数据对象中的每个数据对象可以是不可变的(即,数据对象是不可修改的)。对给定数据对象的任何请求的修改被记录和/或存储为单独的数据对象,其中生成(请求修改的)数据对象的副本并且将修改应用于该副本。
在实施例中,集群102A、102B和102N中的一个或多个集群可以位于同一位置(例如,与诸如备用电源、冗余数据通信、环境控制等相关联的组件一起容纳在一个或多个附近的建筑物中),以形成数据中心,或者可以以其他方式布置。因此,在一个实施例中,集群102A、102B和102N中的一个或多个集群可以是分布式数据中心集合中的数据中心。
(多个)节点108A至108N、112A至112N和114A至114N中的每个节点可以包括一个或多个服务器计算机、服务器系统和/或计算设备。(多个)节点108A至108N、112A至112N和114A至114N中的每个节点可以被配置为执行一个或多个软件应用(或“应用”)和/或服务和/或管理硬件资源(例如,处理器、存储器等),其可以由网络可访问的服务器集合的用户(例如,客户)使用。(多个)节点108A至108N、112A至112N、114A至114N也可以配置为特定用途。例如,如图1所示,(多个)节点108N可以被配置为存储元数据目录104,(多个)节点108B可以被配置为执行质量生成器118,以及(多个)节点108A可以被配置为执行质量聚合器120。
任何(多个)节点108A至108N、112A至112N和/或114A至114N可以被配置为执行数据库服务器应用(未示出)。数据库服务器应用可以在充当传入查询的查询端点的节点上执行,以产生传入查询的分布式计划,并且在计算节点108A至108N、节点112A至112N和/或节点114A至114N中的一个或多个计算节点之间分配用于查询处理的工作。也就是说,根据各实施例,这样的节点被配置为经由节点108A至108N、节点112A至112N和/或节点114A至114N中的一个或多个节点将传入查询转换成针对数据集的每个分布并行运行的查询集合。数据库服务器应用可以是任何数据库服务器应用,包括但不限于由华盛顿州雷蒙德市的公司发布的/>Azure SQL DatabaseTM。数据库服务器应用被配置为例如基于传入查询来执行语句以创建、修改和删除(多个)数据集106A至106N中的数据表、索引和关系的一个或多个数据对象。查询可以由用户发起或由一个或多个后台进程自动生成。这样的查询可以被配置为添加(多个)数据文件、将(多个)数据文件合并成更大的数据文件、在特定数据文件集中重新组织(或重新集群)(多个)数据文件(例如,基于(多个)数据文件的共性)、删除(多个)数据文件(例如,经由周期性删除不需要或过时数据的垃圾收集过程)等。
数据集106A至106N的每个分区可以与元数据目录104的相应实例相关联。元数据目录104存储由相应的(多个)数据集分区106A至106N维护的数据的元数据。元数据可以以机器可读格式存储(例如,以无需人工发明即可由计算机处理的格式)。元数据目录104存储的元数据的示例包括但不限于,每个分区的每个文件中的行数、每个分区中的每个文件中被标记用于删除的行数、每个分区中的每个文件中的未压缩行数、每个分区中的活动数据文件的数目、每个分区的数据文件的数目的指示(其包括具有特定集群键的特定值的行)、每个分区中存储多个集群键的值的数据文件的数目等。存储这样的元数据有利地否定了直接对这种数据的底层数据库表执行复杂查询的任何需要,从而节省宝贵的计算资源(例如,处理周期、输入/输出(I/O)事务的数目、功率等)。元数据目录104可以在对数据集106A至106N的每个查询完成时用这样的元数据来更新。
数据集106A至106N可以与索引相关联,该索引用于基于已对其进行索引的一个或多个属性(例如,特定列、分区键、集群键等)有效地从数据集106A至106N的数据文件中取回记录。索引可以包括一个或多个数据结构,例如(多个)索引表。通过数据集106A至106N的数据文件存储行的方式可能影响索引的质量。例如,如果以低效的方式组织行,则用于从这些行中取回记录的索引的性能可能会受到影响。
可以利用质量生成器118和质量聚合器120来确定是否存在关于该索引的低效。例如,质量生成器118的实例可以在(多个)节点108N的相应的节点上执行。质量生成器118的每个实例可以被配置为基于为特定分区存储的元数据生成针对该分区的各种质量度量。这有利地允许并行地生成质量度量,从而导致快速度量生成。质量生成器118的每个实例可以从对应于特定分区的元数据目录104的实例中获取该分区的元数据。为特定分区生成的每个质量度量(也被称为“局部质量度量”)指示该分区的特定属性的质量。属性的示例包括但不限于分区(或数据分布)属性、集群属性、数据封装属性、压缩属性和/或分段属性。质量生成器118的每个实例将由此生成的质量度量提供给元数据聚合器120。关于各种质量度量的生成的附加细节将在下面的小节A至E中描述。
元数据还可以被用来生成改进属性所需的工作量的估计(本文也被称为“工作单元”)。工作单元可以由质量生成器118和/或质量聚合器120确定。关于各种工作单元的生成的其他细节将在下面的小节A至E中描述。
质量聚合器120被配置为聚合(或组合)从每个质量生成器118接收的每个分区的质量度量,以生成针对特定数据库表的全局质量度量。全局质量度量指示数据库系统的索引的性能,并且在本文中也被称为总体索引质量。全局质量度量可以例如由索引管理系统(未示出)用来检测关于数据库系统的索引的低效。例如,索引管理系统可以确定全局质量度量是否满足关于预定阈值的条件(例如,它可以确定全局质量度量是否低于预定阈值)。响应于确定全局质量度量满足关于预定阈值的条件,索引管理系统可以执行改变数据库表存储数据的方式的动作,以减少或消除低效(即,改进索引)。
例如,索引管理系统可以确定哪个局部质量度量是最低的,并且执行改进该特定局部质量度量的动作。在另一示例中,索引管理系统可以确定工作单元中的哪个工作单元是最低的,并且执行动作以改进相应的局部质量度量。这样,补救低效的开销将相对较低。应当注意,索引管理系统可以利用其他标准来确定是否执行动作来补救归因于特定局部质量度量的特定低效。
可以经由图形用户界面(GUI)将全局质量度量提供给客户端(例如,数据库管理员)。在某些实施例中,可以按分区提供质量度量。在这种情况下,质量聚合器120将不执行任何聚合。质量聚合器120还可以聚合由质量生成器118的每个实例生成的所确定的工作单元,以生成特定数据库表的全局工作单元。备选地,每分区可以提供所确定的工作单元中的每个工作单元,并且质量聚合器120将不执行聚合。
注意,数据库元数据目录104、质量生成器118和/或质量聚合器120的实例可以分别在其他(多个)节点(例如,(多个)节点112A至112N和/或(多个)节点114A至114N)上执行,以代替(多个)节点108A至108N或作为其补充。
图2描绘了根据示例实施例的用于测量和改进分布式数据系统的索引质量的系统200的框图。如图2所示,系统200包括索引管理系统202、元数据目录204A至204N、质量查看器206、质量生成器218A至218N和质量聚合器220。元数据目录204A至204N是元数据目录104的示例,如以上参考图1所描述的。质量生成器218A至218N是质量生成器118的示例,如以上参考图1所描述的。质量聚合器220是质量聚合器120的示例,如以上参考图1所描述的。注意,尽管质量聚合器220、索引管理系统202和/或质量查看器206被示为分开的应用,但本文描述的实施例并不限于此。例如,可以将任何质量聚合器220、索引管理系统202和/或质量查看器206结合到单个应用中。
元数据目录204A至204N中的每个元数据目录存储用于数据库表的相应分区的元数据。例如,元数据目录204A存储针对数据库表的第一分区的元数据,元数据目录204N存储针对数据库的第N分区的元数据。元数据目录204A至204N中的每个元数据目录可以存储在(多个)节点108A至108N、112A至112和/或114A至114N的相应节点上,但是本文描述的实施例不限于此。例如,元数据目录204A至204N可以存储在同一节点上。质量生成器218A至218N、质量聚合器220、索引管理系统202和质量查看器206中的每个可以在(多个)节点108A至108N、112A至112和/或114A至114N的相应节点上执行,但是本文描述的实施例不限于此。例如,质量生成器218A至218N、质量聚合器220、索引管理系统202和质量查看器206中的一些或全部可以在同一节点上执行。
质量生成器218A可以被配置为基于从元数据目录204A取回的元数据为第一分区生成各种局部质量度量(分区(或数据分布)质量度量、集群质量度量、数据封装质量度量、压缩质量度量和/或分段质量度量)。质量生成器218N可以被配置为基于从元数据目录204N取回的元数据为第N分区生成各种局部质量度量。质量生成器218A还可以被配置为,对于为第一分区生成的每个质量度量,生成改进该度量对应的属性所需的工作单元。质量生成器218N还可以被配置为,针对为第N分区生成的每个质量度量,生成改进该度量对应的属性所需的工作单元。质量生成器218A将由此生成的质量度量和工作单元提供给质量聚合器220,而质量生成器218N将由此生成的质量度量和工作单元提供给质量聚合器220。
质量聚合器220被配置为基于从质量生成器218A至218N中的每个质量生成器接收的局部质量度量来为不同的索引属性生成全局质量度量。质量聚合器220还可以基于局部质量度量来生成代表改进特定索引属性的全局工作单元。质量聚合器220可以聚合全局质量度量以生成总体索引质量得分,并且可以集群工作单元以生成改进索引性能所需的总体工作单元。索引质量得分和总体工作单元可以被提供给索引管理系统202和/或质量查看器206。
质量查看器206可以例如经由GUI显示总体索引得分和总体工作单元。GUI的用户(例如,数据库管理员)可以基于总体索引得分和/或总体工作单元来确定是否应当针对数据库表执行动作以改进索引性能。例如,用户可能希望改变存储数据库表的方式以努力改进索引性能。在这样的示例中,用户可以使用GUI向索引管理系统202发出命令,该命令使得索引管理系统202执行改变存储数据库表的方式的动作。在某些实施例中,除了显示总体索引质量得分和/或总体工作单元之外或代替显示总体索引质量得分和/或总体工作单元,质量查看器206可以单独显示特定索引属性的每个所确定的质量度量和/或工作单元。
动作的示例包括但不限于,确定新的分区键并且根据新的分区键使数据库表分区、对特定分区的一个或多个数据文件重新集群、合并特定分区的数据文件、压缩特定分区的数据文件的未压缩行、将特定分区的不同数据文件的活动行合并在一起等。
索引管理系统202可以被配置为基于总体索引质量和/或总体工作单元自动执行改进索引性能的动作。例如,索引管理系统202可以确定总体索引质量得分是否满足关于预定阈值的条件(例如,它可以确定总体索引质量得分是否低于预定阈值)。响应于确定总体索引质量得分满足关于预定阈值的条件,索引管理系统202可以执行改变数据库表存储数据的方式的动作,以减少或消除低效(即,改进索引)。
例如,索引管理系统202可以确定哪个局部质量度量是最低的,并且执行改进该特定局部质量度量的动作。在另一示例中,索引管理系统202可以确定工作单元中的哪一个是最低的,并且执行动作以改进相应的局部质量度量。这样,补救低效的开销将相对较低。应当注意,索引管理系统202可以利用其他标准来确定是否执行动作来补救归因于特定局部质量度量的特定低效。
因此,可以通过许多方式检测并且改进索引的低效。例如,图3示出了根据示例实施例的用于检测和改进索引的低效的方法的流程图300。在一个实施例中,流程图300可以由图2所示的系统200实现,但是该方法不限于该实现。因此,将继续参考图2来描述流程图300。基于关于图2的流程图300和系统200的讨论,其他结构和操作实施例对于(多个)相关领域的技术人员将是清楚的。
流程图300从步骤302开始。在步骤302中,经由网络从第一计算节点接收针对由分布式数据库系统维护的针对数据库表的第一分区的第一质量度量。第一质量度量指示第一分区的第一属性的质量。例如,参考图2,质量聚合器220可以从质量生成器218A接收第一质量度量,该第一质量度量可以在计算节点(例如,如图1所示的(多个)节点108B的节点)上执行。第一质量度量可以经由网络(例如,如图1所示的网络116)来接收,质量生成器218A和质量聚合器220经由该网络通信地耦合。第一质量度量可以指示第一分区的第一属性的质量。
属性的示例包括但不限于分区(或数据分布)属性、集群属性、数据封装属性、压缩属性和/或分段属性。
在步骤304处,经由网络从第二计算节点接收针对数据库表的第二分区的第二质量度量。第二质量度量指示第二分区的第二属性的质量。例如,参考图2,质量聚合器220可以从质量生成器218N接收第二质量度量,该第二质量度量可以在另一计算节点(例如,如图1所示的(多个)节点108B的另一节点)上执行。第二质量度量可以经由网络(例如,如图1所示的网络116)来接收,质量生成器218N和质量聚合器220经由该网络通信地耦合。第二质量度量可以指示第N分区的第二属性的质量。
在步骤306处,至少基于第一质量度量和第二质量度量来生成指示分布式数据库系统的索引的性能的全局质量度量。例如,参考图2,质量聚合器220可以被配置为至少基于第一质量度量和第二质量度量来生成指示分布式数据库系统的索引的性能的全局质量度量。
在步骤308处,基于全局质量度量满足关于预定阈值的条件来检测关于索引的低效。例如,参考图2,索引管理系统202可以基于全局质量度量满足关于预定阈值的条件来检测关于索引的低效。
在步骤310处,响应于检测到低效,执行改变数据库表存储数据的方式的动作。例如,参考图2,响应于检测到低效,索引管理系统202可以执行改变数据库表存储数据的方式的动作。
动作的示例包括但不限于,确定新的分区键并且使数据库表根据新的分区键进行分区、对特定分区的一个或多个数据文件重新集群、合并特定分区的数据文件、压缩特定分区的数据文件的未压缩行、将特定分区的不同数据文件的活动行合并在一起等。关于由质量生成器218A至218N和/或质量聚合器220生成的质量度量和工作单元以及由索引管理系统202执行的动作的附加细节将在下面参考小节A至E描述。
A.分区质量度量
分布式数据系统将大规模数据划分为多个分区。在关系系统中,对表进行分区的一种方法是选择分区键(列),用于将行划分为不同的分区。具有相同分区键的数据位于相同分区中。分区有助于改进可伸缩性和更快的查询性能。当数据被均匀分区并且几乎没有倾斜时,这一优势最大。这允许跨每个分区进行均匀数目的数据处理。当存在倾斜时,与较小分区相比,较大的分区可能需要更长的处理时间。这是在分布式数据系统中测量的重要质量度量,因为它会影响查询性能。测量这一点需要查看数据(行)是如何跨数据分区分布的。当数据均匀分布(偶数行数)时,质量较好,而当数据倾斜时,质量较差。
图4描绘了根据示例实施例的用于生成全局分区质量度量的系统400的框图。如图4所示,系统400包括质量生成器418A至418N、质量聚合器420、索引管理系统402和质量查看器406,它们是以上参考图2描述的质量生成器218A至218N、质量聚合器220、索引管理系统202和质量查看器206的示例。全局分区质量度量生成器401包括元数据接收器404、统计生成器405、分区质量度量生成器408和分区工作单元生成器410。
质量生成器418A至418N各自被配置为将从对应的元数据目录(例如,如图2所示的元数据目录204A至204N)取回的元数据提供给元数据接收器404。例如,质量生成器418A可以提供诸如包括在第一分区中的行数的元数据,并且质量生成器418N可以提供诸如包括在第N分区中的行数的元数据。元数据接收器404将接收到的元数据提供给统计生成器405。
统计生成器405被配置为基于元数据生成与不同分区相关联的各种统计。例如,统计生成器405可以生成跨分区存储的行的标准差、跨分区存储的行的范围(例如,由特定分区存储的最小行数和由特定分区存储的最大行数)、跨分区存储的均值或平均行数等。统计被提供给分区质量度量生成器408。
分区质量度量生成器408被配置为基于由统计生成器405接收的统计和最佳情况分区质量参数412,为由不同分区表示的数据库表生成全局分区质量度量(示为全局分区质量度量414)。例如,分区质量度量生成器408可以生成当前分区质量值(CPQV),其可以根据下面所示的公式1来生成:
CPQV=1–min(sd/mean,1) (公式1)
其中sd等于标准差。如图1所示,通过确定标准差除以平均值和1的值的最小值来生成当前分区质量值。从1中减去结果值。要注意的是,可以使用其他技术来生成当前分区质量。
可以根据公式2生成全局分区质量度量414(或GPQM),如下所示:
GPQM=1-(最佳情况分区Q参数-当前Q) (公式2)
其中最佳情况分区质量参数412是表示可以在数据库系统中实现的最佳/现实分区质量的预定参数。根据实施例,最佳情况分区质量参数是可配置的参数。在本文描述的示例中,最佳情况分区质量参数412被设置为值1,但是本文描述的实施例不限于此。当行在分区上均匀分布时,全局分区质量度量414的值相对较高,而当行在分区上不均匀分布时(即,数据分布是倾斜的),全局分区质量度量414的值相对较低。全局分区质量度量414被提供给分区工作单元生成器410和度量聚合器422。
分区工作单元生成器410被配置为基于全局分区质量度量414来生成分区工作单元416。在该示例中,分区工作单元416表示用于确定新的分区键并相应地对数据库表进行重新分区的成本(例如,数据库事务的数目、处理开销等)。分区工作单元416可以是全局分区质量度量414的函数,其中数据越倾斜,分区工作单元416的值就越大。相反,数据倾斜越小,分区工作单元416的值就越小。分区工作单元416的零值可以指示需要外部(即,人工)干预来确定新的分区键,因为索引管理系统(例如,如图2所示的索引管理系统202)不能执行任何动作来修复数据倾斜。将分区工作单元416提供给工作单元聚合器424。
下表1描述了数据跨五个分区(P1至P5)进行分区的九种不同场景:
P1 | P2 | P3 | P4 | P5 | Mean | ST Dev | CQ | BCQ | 度量 |
1000 | 980 | 960 | 940 | 920 | 960 | 31.62278 | 0.97 | 1 | 0.97 |
1000 | 900 | 800 | 700 | 600 | 800 | 158.1139 | 0.80 | 1 | 0.80 |
1000 | 800 | 650 | 500 | 500 | 690 | 213.3073 | 0.69 | 1 | 0.69 |
1000 | 800 | 600 | 400 | 200 | 600 | 316.2278 | 0.47 | 1 | 0.47 |
1000 | 700 | 400 | 100 | 50 | 450 | 403.1129 | 0.10 | 1 | 0.10 |
1000 | 600 | 200 | 70 | 40 | 382 | 411.3636 | 0.00 | 1 | 0.00 |
90 | 1000 | 700 | 200 | 10 | 400 | 429.5928 | 0.00 | 1 | 0.00 |
600 | 10 | 10 | 200 | 300 | 224 | 244.6017 | 0.00 | 1 | 0.00 |
1000 | 10 | 10 | 10 | 10 | 208 | 442.7415 | 0.00 | 1 | 0.00 |
表1
如表1所示,全局分区质量度量相对较高,因为数据在不同分区上的分布更均匀,而全局分区质量度量相对较低,因为数据在不同分区上的分布较不均匀。
度量聚合器422被配置为聚合为不同属性(例如,全局分区质量度量414、全局集群质量度量、全局数据封装质量度量、全局压缩质量度量、分段质量度量等)生成的质量度量。下面在小节B至E中描述全局集群质量度量、全局数据封装质量度量、全局压缩质量度量、全局分段质量度量。如以上参考图2所述,将聚合质量度量(或总体索引质量得分)提供给索引管理系统202和/或质量查看器206。
工作单元聚合器424被配置为聚合为不同属性(例如,分区工作单元416、集群工作单元、数据封装工作单元、压缩工作单元、分段工作单元等)生成的工作单元。集群工作单元、数据封装工作单元、压缩工作单元和分段工作单元将在下面的小节B至E中描述。如以上参考图2所述,将聚合的工作单元(或总体工作单元)提供给索引管理系统202和/或质量查看器206。
因此,可以以多种方式确定全局分区质量度量。例如,图5示出了根据示例实施例的用于确定全局分区质量度量的方法的流程图500。在一个实施例中,流程图500可以由图4所示的系统400实现,但是该方法不限于该实现。因此,将参考图4来描述流程图500。基于关于图4的流程图500和系统400的讨论,其他结构和操作实施例对于(多个)相关领域的技术人员是清楚的。
流程图500从步骤502开始。在步骤502中,分析至少第一质量度量和第二质量度量,以确定至少第一分区的行和第二分区的行的分布是否满足关于预定阈值的条件。第一质量度量可以包括第一分区的行数,而第二质量度量可以包括第二分区的行数。如果确定该分布满足关于预定阈值的条件,则流程继续到步骤504。否则,流程继续到流程506。例如,参考图4,元数据接收器404可以从质量生成器418A接收第一质量度量并且从质量生成器418N接收第二质量度量。第一质量度量可以是第一分区的行数,而第二质量度量可以是第二分区的行数。统计生成器405可以确定指示行跨至少第一分区和第二分区的分布的各种统计。统计包括(但不限于)跨分区的行的标准差和跨分区的行的平均值。分区质量度量生成器408根据上述公式2基于所生成的统计来生成全局分区质量度量414。全局分区质量度量414表示跨不同分区的行的分布的质量。全局分区质量度量414可以被提供给索引管理系统202,其确定该分布是否满足关于预定阈值的条件。例如,如果分布满足条件(例如,达到或超过阈值),则流程继续到步骤504。否则,流程继续到步骤506。
在步骤504出,维护至少第一分区和第二分区所基于的分区键。例如,参考图4,索引管理系统402可以维护(即,不改变分区键),因为跨分区的行分布是可接受的。
在步骤506,确定针对至少第一分区和第二分区的不同分区键。例如,参考图4,索引管理系统402确定不同分区键。根据一个实施例,可以基于对数据库表的每个列的数据分布的分析来确定分区键。可以选择具有最优分布的列作为新的分区键。
根据一个实施例,在选择新的分区键之后,索引管理系统402根据不同分区键对数据库表进行分区。
B.集群质量度量
集群有助于将相似的数据保存在同一数据文件中。选择集群键,并且将具有相同集群键值的数据一起存储在同一数据文件中,以便更快地访问。这意味着使用一个或多个数据文件来连续存储特定集群键值的数据。这确保在搜索期间只搜索这些文件。如果没有良好的集群,具有特定值的数据/行将以非连续的方式存储,并且可能跨越如此多的文件,甚至系统中的所有文件,从而扫描大量文件,其中每个文件仅具有少量符合条件的行/数据。
当每个数据文件仅具有特定集群键值的数据(单个键文件)时,认为集群质量较好。如果文件包含多个集群键值的数据(多键文件),但针对每个集群键值,最多只有两个多键文件(即,只有两个文件包含多个集群键的值),则质量也被认为是良好的。这是因为,如果针对集群键值的行不足以形成一个单独的键文件,则可能会用针对其他集群键值的行来封装该文件。
例如,如果针对集群键A的行数不足以形成单个键文件,则可以添加针对键B的行以形成多键文件。键B可能有剩余的行,而这些行又不够大,不足以形成单个键文件。这些行将与其他键的行一起封装,以形成另一个多键文件。在此场景中,键A关联一个多键文件,而键B关联两个多键文件。
当两个或更多个多键文件具有针对特定键的某些数据时,该键发生重叠。由于仅具有特定集群键值的数据的文件被认为是良好集群的,因此在测量集群质量时,仅考虑具有多个集群键值的数据的文件。这里的质量目标是测量多键文件之间存在多少重叠。重叠非常大表示集群不好,这会导致在查找特定集群键值的数据时扫描大量文件。
图6描绘了根据示例实施例的用于生成全局集群质量度量的系统600的框图。如图6所示,系统600包括质量生成器618A至618N、质量聚合器620、索引管理系统602和质量查看器606,它们是上面参考图4分别描述的质量生成器418A至418N、质量聚合器420、索引管理系统402和质量查看器406的示例。如图6进一步所示,质量生成器618A包括集群质量确定器610A和集群工作单元确定器612A,并且质量生成器618N包括集群质量确定器610N和集群工作单元确定器612N。质量聚合器620包括全局集群质量度量生成器601、度量聚合器622和工作单元聚合器624。度量聚合器622和工作单元聚合器624是度量聚合器422和工作单元聚合器424的示例,如以上参考图4分别描述的。全局集群质量度量生成器601包括全局集群质量度量确定器604和全局集群工作单元确定器605。
集群质量确定器610A被配置为生成针对第一分区的局部集群度量值626A。集群质量确定器610A可以基于从与第一分区相关联的元数据目录(例如,如图2所示的元数据目录204A)接收的元数据来确定局部集群度量值626A。对于第一分区的每个数据文件,元数据可以包括集群键的总数和/或每个集群键的标识符。类似地,集群质量确定器610N可以基于从与第N分区相关联的元数据目录(例如,如图2所示的元数据目录204N)接收的元数据来确定局部集群度量值626N。对于第N分区中的每个数据文件,元数据可以包括集群键的总数和/或每个集群键的标识符。
集群质量确定器610A可以确定重叠值,该重叠值指示包括具有第一多个集群键中的特定集群键的特定值的行的第一分区的数据文件的最大数目。例如,假设第一分区具有八个数据文件,并且数据文件通过对应于月份的集群键进行聚合。在这种情况下,集群键将有12个可能的值。进一步假设八个数据文件中的三个在这样的数据文件的各行中包括不同的集群键的值。例如,假设第一数据文件包括相应的行来存储值“一月”和“二月”,第二数据文件包括相应的行来存储值“一月”、“二月”和“三月”,并且第三数据文件包括相应的行来存储值“一月”和“三月”。其余五个数据文件中的每个数据文件都存储其中存储的集群键的相应相同的值。也就是说,剩余的五个数据文件中的每个数据文件都不存储集群键的多个值。
对于集群键的每个值,集群质量确定器610A确定八个数据文件中有多少包括多于一个集群键的值。继续上面的示例,集群质量确定器610A确定存在三个这样的数据文件(即,存在三个多键文件)。为了确定重叠值,集群质量确定器610A针对集群键的每个值确定包括该值的多键文件数。在上面的示例中,“一月”的值出现在三个多键文件中,“二月”的值出现在两个多键文件中,“三月”的值出现在两个多键文件中。集群质量确定器610A将这种多键文件的最大数目(即,3)指定为重叠值。
集群质量确定器610A根据下面的公式3,基于重叠值和第一集群中的多键文件的总数来生成当前集群质量(CCQ):
在上面的示例中,当前的集群质量将为零(即1-(3/3))。
集群质量确定器610A可以基于当前集群质量和所确定的最佳情况集群质量来确定集群质量度量626A。可以基于最佳情况最大重叠(例如,不超过两个数据文件包括集群键的特定值)和第一分区中的多键文件的总数来确定最佳情况集群质量。如果所确定的重叠值小于或等于最佳情况最大重叠(即,在多于两个不同的数据文件中没有出现的集群键的值),则最佳情况集群质量、当前质量和集群质量度量都被设置为值1(或指示最佳集群质量的任何其他值)。否则,可以根据下面所示的公式4来确定最佳情况集群质量(BCCQ):
可以根据公式5确定集群质量度量626A(CQM),如下所示:
CQM=1-(BC集群Q–当前集群Q) (公式5)
集群质量确定器610N可以以与集群质量确定器610A类似的方式确定针对第N分区的集群质量度量626N。注意,最佳情况最大重叠参数可以是可配置的并且特定于特定数据库系统。还应注意的是,可以使用其他技术来确定集群质量度量626A。
集群质量确定器610A还可以基于所确定的多键数据文件的总数来生成集群工作单元628A。例如,集群质量确定器610A可以根据公
式6来确定集群工作单元628A,如下所示:
根据公式6,所确定的多键文件数除以每个集群动作参数的文件数。所得到的商的上限被设置为集群工作单元。每个集群动作参数的文件数可以是表示在任何给定时间点可以被重新集群在一起的多键文件数的可配置参数。该参数的值可以特定于其中实现本文描述的实施例的数据库系统。在本文描述的示例中,该参数被设置为值5。
下面的表2描述了为包括十个多键文件的分区确定集群质量度量的十种不同场景:
表2
集群质量确定器610N可以以与集群质量确定器610A类似的方式确定针对第N分区的集群工作单元628N。
集群质量度量626A至626N被提供给全局集群质量度量确定器604,并且集群工作单元628A至628N被提供给全局集群工作单元确定器605。全局集群质量度量确定器604可以确定集群质量度量626A至626N中的最大(或最大值),并且将集群质量度量626A至626N中的最大集群质量度量指定为全局集群质量度量(示为全局集群质量度量614)。全局集群质量度量614被提供给度量聚合器622。最大集群工作单元确定器605可以确定最大(或最大值)集群工作单元628A至628N,并且将集群工作单元628A至628N的最大集群工作单元指定为全局集群工作单元(示为全局集群工作单元616)。全局集群工作单元616被提供给度量聚合器622。
度量聚合器622被配置为聚合为不同属性(例如,全局分区质量度量414(如图4所示)、全局集群质量度量614、全局数据封装质量度量、全局压缩质量度量、全局分段质量度量等)生成的质量度量。全局数据封装质量度量、全局压缩质量度量和全局分段质量度量在下面的小节C至E中描述。如以上参考图2所述,将聚合质量度量提供给索引管理系统602和/或质量查看器606。
工作单元聚合器624被配置为聚合为不同属性(例如,分区工作单元416(如图4所示)、集群工作单元616、数据封装工作单元、压缩工作单元、分段工作单元等)生成的工作单元。数据封装工作单元、压缩工作单元和分段工作单元在下面的小节C至E中描述。如以上参考图2所述,将聚合工作单元提供给索引管理系统602和/或质量查看器606。
因此,可以以多种方式确定全局集群质量度量。例如,图7示出根据示例实施例的用于确定全局集群质量度量的方法的流程图700。在一个实施例中,流程图700可以由图6所示的系统600实现,但是该方法不限于该实现。因此,将参考图6来描述流程图700。基于关于图6的流程图700和系统600的讨论,其他结构和操作实施例对于(多个)相关领域的技术人员是清楚的。
流程图700开始于步骤702。在步骤702中,确定至少第一数据集群质量度量和第二数据集群质量度量中的最大数据集群质量度量。第一数据集群质量度量至少基于第一重叠值,该第一重叠值指示第一分区的数据文件的最大数目,第一分区包括具有多个集群键的第一集合中的特定键的特定值的行。第二数据集群质量度量至少基于第二重叠值,该第二重叠值指示第二分区的数据文件的最大数目,该数据文件包括具有多个集群键的第二集合中的特定键的特定值的行。如上所述,可以根据公式3至公式6来确定第一和第二数据集群质量度量。如果第一数据集群质量度量被确定为最大,则流程继续到步骤704。否则,流程继续到步骤706。
例如,参考图6,全局集群质量度量确定器604确定集群质量度量626A至626N中的哪一个是最大集群质量度量。将所确定的集群质量度量626A至626N的最大集群质量度量提供给度量聚合器622。
在步骤704处,将第一数据集群质量度量指定为全局数据集群质量度量。例如,参考图6,全局集群质量度量确定器604可以将集群质量度量626A指定为全局集群质量度量614。
在步骤706处,将第二数据集群质量度量指定为全局数据集群质量度量。例如,参考图6,全局集群质量度量确定器604可以将集群质量度量626N指定为全局集群质量度量614。
根据实施例,响应于确定特定分区的集群是次优的,索引管理系统602可以重新集群该分区的数据文件。例如,响应于确定第一数据集群质量度量是最大数据集群质量度量,索引管理系统602可以对存储具有针对第一多个集群键的值的行的第一分区的数据文件的至少子集进行重新集群,使得第一分区的数据文件的至少子集存储具有第一多个集群键中的单个集群键的值的行。响应于确定第二数据集群质量度量是最大数据集群质量度量,索引管理系统602可以对存储具有第一多个集群键的值的行的第一分区的数据文件的至少子集进行重新集群,使得第一分区的数据文件的至少子集存储具有第一多个集群键中的单个集群键的值的行。
例如,在这样的示例中,其中,在三个多键文件中出现了“一月”的值,在两个多键文件中出现了“二月”的值,并且在两个多键文件中出现了“三月”的值,这些多键文件可以被重新集群,使得来自三个多键文件的“一月”的值现在出现在第一数据文件中,来自两个多键文件的“二月”的值现在出现在第二数据文件中,并且来自两个多键文件的“三月”的值现在出现在第三数据文件中。
C.数据封装质量度量
在数据系统中,数据/行被封装在一起以形成数据文件。在大数据系统中,可以应用数据压缩来帮助减小数据文件大小和总体数据大小。为了从压缩中获益,文件中应当有大量的数据。文件大小也会影响输入/输出(I/O)成本。因为在大数据系统中,文件可能存储在远程存储设备中,具有足够大的文件可以减少I/O调用的次数,但不应太大,从而严重影响I/O请求的时延。系统通常具有关于每个文件中可以存储的最大行数/理想行数的策略,并且尝试创建满足该策略的文件。但是,在数据加载期间,由于系统资源限制或其他原因,可以创建小文件。
本文描述的数据封装质量度量涉及根据存储在每个文件中的行数来查看系统中的文件的质量。当文件具有理想的行数时,它们具有良好的数据封装质量,从而产生更好的压缩和性能。如果创建的文件行数少于理想行数,则会失去压缩的好处,并且可能导致性能低效。
图8描绘了根据示例实施例的用于生成全局数据封装质量度量的系统800的框图。如图8所示,系统800包括质量生成器818A至818N、质量聚合器820、索引管理系统802和质量查看器806,它们是以上参考图6分别描述的质量生成器618A至618N、质量聚合器620、索引管理系统602和质量查看器606的示例。如图8进一步所示,质量生成器818A包括数据封装质量确定器810A和工作确定器812A的数据封装单元,并且质量生成器818N包括数据封装质量确定器810N和工作确定器812N的数据封装单元。质量聚合器820包括全局数据封装质量度量生成器801、度量聚合器822和工作单元聚合器824。度量聚合器822和工作单元聚合器824是度量聚合器622和工作单元聚合器624的示例,如以上参考图6分别描述的。全局数据封装质量度量生成器801包括全局数据封装质量度量确定器804和全局数据封装工作单元确定器805。
数据封装质量确定器810A被配置为生成针对第一分区的局部数据封装度量值826A。数据封装质量确定器810A可以基于从与第一分区相关联的元数据目录(例如,如图2所示的元数据目录204A)接收的元数据来确定局部数据封装度量值610A。元数据可以包括由第一分区的每个文件存储的行数。类似地,数据封装质量确定器810N可以基于从与第N分区相关联的元数据目录(例如,如图2所示的元数据目录204N)接收的元数据来确定局部数据封装度量值826N。元数据可以包括由第N分区的每个文件存储的行数。
数据封装质量确定器610A可以针对第一分区的每个文件,基于该文件存储的行数和理想行计数参数来确定文件质量值。理想的行数可以是特定于特定数据库系统的可配置参数。理想行计数表示数据文件为获得最佳性能而应具有的理想行计数。根据实施例,特定数据文件的文件质量值可以根据下面所示的公式7来确定:
数据封装质量确定器810A可以确定所确定的文件质量值是否满足关于预定阈值的条件(例如,文件质量值是否大于或等于预定阈值)。如果文件质量值满足条件,则数据封装质量确定器810A可以将数据文件分类为具有相对较高的文件质量。否则,数据封装质量确定器810A将数据文件分类为具有相对低(或差)的文件质量。
数据封装质量确定器610A还可以通过对为第一分区的每个文件生成的文件质量值求和来生成总文件质量。数据封装质量可以基于平均文件质量生成当前文件质量值(CFQV),该平均文件质量可以通过将总文件质量除以第一分区的文件总数来确定,如下公式8所示:
数据封装质量确定器810A可以基于当前文件质量值和所确定的最佳情况文件质量值来确定数据封装质量度量826A。最佳情况文件质量值可以根据下面所示的公式9来确定:
如公式9所示,最佳情况文件质量值可以通过将总文件质量除以总文件质量的上限来确定。
数据封装质量度量626A(DPQM)可以根据下面所示的公式10确定:
DPQM=1-(最佳文件QV-当前文件QV)(公式10)
数据封装质量确定器810A可以以与数据封装质量确定器810A类似的方式来确定第N分区的数据封装质量度量826N。
数据封装质量确定器810A还可以基于所确定的低质量文件的数目和每个文件的文件数目合并动作参数来生成数据封装工作单元828A。例如,数据封装质量确定器810A可以根据公式11确定数据集群工作单元828A,如下所示:
根据公式11,所确定的低质量文件数除以每个合并动作参数的文件数。所得商的上限被设置为数据封装工作单元828A。每个合并动作参数的文件数可以是表示在任何给定时间点可以合并到一起的文件数目的可配置参数。参数值可以特定于其中实现本文描述的实施例的数据库系统。在本文描述的示例中,该参数被设置为值5。
下表3描述了特定分区中的五个数据文件的确定的文件质量值,在该特定分区中,理想行计数被发送到一百万行:
文件 | 行数 | 文件质量 |
F1 | 1M | 1 |
F2 | 500K | 0.5 |
F3 | 300K | 0.3 |
F4 | 200K | 0.2 |
F5 | 100K | 0.1 |
表3
在上面的示例中,总文件质量等于2.1,当前文件质量等于0.42(2.1/5=0.42),最佳情况质量等于0.7(2.1/3=0.7),数据封装质量度量等于0.72(1-(0.7-0.42)=0.72),并且数据封装工作单元是1(ceil(4/5))。
数据封装质量确定器810N可以以与数据封装质量确定器810A类似的方式为第N分区确定数据封装工作单元828N。
数据封装质量度量826A至826N被提供给全局数据集群质量度量确定器804,并且数据封装工作单元828A至828N被提供给全局集群工作单元确定器605。全局集群质量度量确定器804可以对数据集群质量度量626A至626N进行平均,并将所确定的平均值指定为全局数据集群质量度量(示为全局数据封装质量度量814)。数据封装质量度量814被提供给度量聚合器822。全局数据封装工作单元确定器605可以确定平均数据封装工作单元828A至828N,并将所确定的平均值指定为全局数据封装工作单元(示为全局数据封装工作单元816)。全局数据封装工作单元816被提供给度量聚合器822。
度量聚合器822被配置为聚合为不同属性(例如,全局分区质量度量414(如图4所示)、全局集群质量度量614(如图6所示)、全局数据封装质量度量814、全局压缩质量度量、全局分段质量度量等)生成的质量度量。全局数据全局压缩质量度量和全局分段质量度量在下面的小节D至E中描述。如以上参考图2所述,将聚合质量度量提供给索引管理系统802和/或质量查看器806。
工作单元聚合器824被配置为聚合为不同属性(例如,分区工作单元416(如图4所示)、集群工作单元616(如图6所示)、数据封装工作单元816、压缩工作单元和工作分段单元等)生成的工作单元。压缩工作单元和分段工作单元在下面的D至E小节中描述。如以上参考图8所述,将聚合工作单元提供给索引管理系统802和/或质量查看器806。
因此,可以以多种方式确定全局数据封装质量度量。例如,图9示出根据示例实施例的用于确定全局数据封装质量度量的方法的流程图900。在实施例中,流程图900可以由图8所示的系统800实现,但是该方法不限于该实现。因此,将参考图8描述流程图900。基于关于图8的流程图900和系统800的讨论,其他结构和操作实施例对于(多个)相关领域的技术人员是清楚的。
流程图900开始于步骤902。在步骤902中,至少基于第一数据封装度量和第二数据封装度量来生成全局数据封装质量度量。第一数据质量度量基于第一分区的数据文件的第一平均文件质量,第一平均文件质量基于由第一分区的每个数据文件存储的行数和预定的理想行计数参数。第二数据质量度量基于第二分区的数据文件的第二平均文件质量,第二平均文件质量基于由第二分区的每个数据文件存储的行数和预定的理想行计数参数。
例如,参考图8,全局集群质量度量确定器804基于局部数据封装度量值826A至826N来确定全局数据封装质量度量814。
根据实施例,响应于确定特定分区的数据封装是次优的,索引管理系统802可以合并该分区的两个或更多个数据文件。例如,如果全局数据封装质量度量814不满足具有预定阈值的条件,则索引管理系统802可以合并每个具有小于预定的理想行计数参数的行数的第一分区的两个或更多个数据文件和/或合并每个具有小于预定的理想行计数参数的行数的第二分区的两个或更多个数据文件。这样,可以将行数小于理想行计数参数的数据文件合并在一起,以创建包含更接近理想行计数参数的行的较大文件。
D.压缩质量度量
在大数据系统中,可以应用数据压缩/压实来帮助减小文件大小和总体数据大小。这有助于通过减少I/O时延来提供更好的查询性能。在数据加载过程中,未压缩的数据可能会加载到系统中,然后再进行压缩。有时压缩不会立即完成。在此期间,可能会查询未压缩的数据,从而导致性能较慢。在这些系统中,当所有数据都被压缩时,性能通常会更好。
确定压缩质量度量可能涉及分析系统中的未压缩数据/行数。未压缩的行数越多,对性能的影响就越大。系统可以具有压缩阈值,因此一旦达到这个阈值,压缩数据就变得很重要。这是因为较少的未压缩行对系统的影响很小,甚至没有影响。
图10描绘了根据示例实施例的用于生成全局压缩质量度量的系统1000的框图。如图10所示,系统1000包括质量生成器1018A至1018N、质量聚合器1020、索引管理系统1002和质量查看器1006,它们是以上参考图8分别描述的质量生成器818A至818N、质量聚合器820、索引管理系统802和质量查看器806的示例。质量聚合器1020包括全局压缩质量度量生成器1001、度量聚合器1022和工作单元聚合器1024。度量聚合器1022和工作单元聚合器1024是度量聚合器822和工作单元聚合器824的示例,如以上参考图8分别描述的。全局压缩质量度量生成器1001包括全局压缩质量度量确定器1004和全局压缩工作单元确定器1005。
压缩质量确定器1010A被配置为向全局压缩质量度量确定器1004提供第一分区的局部压缩度量1026A。局部压缩度量1026A可以包括第一分区的未压缩行数,压缩质量确定器1010A从与第一分区相关联的元数据目录(例如,如图2所示的元数据目录204A)接收的元数据中获得该数目。类似地,压缩质量确定器1010N被配置为向全局压缩质量度量确定器1004提供第N分区的局部压缩度量1026N。局部压缩度量值1026N可以包括针对第一分区的未压缩行数,压缩质量确定器1010N从与第N分区相关联的元数据目录(例如,如图2所示的元数据目录204N)接收的元数据中获得该数目。
全局压缩质量度量确定器1004可以基于跨所有分区的未压缩行数和压缩阈值参数来确定当前压缩质量值。压缩阈值可以是特定于特定数据库系统的可配置参数。压缩阈值表示系统可以在不严重影响其性能的情况下包括的未压缩行的最大数目。根据一个实施例,当前压缩质量值(CCQV)可以根据下面所示的公式12来确定:
根据公式12,可以通过确定(a)由跨分区的未压缩行数除以压缩阈值参数得到的商和(b)值1之间的最小值来确定当前压缩质量值。然后,从值1中减去所得到的最小值。当前压缩质量值为0意味着已经达到压缩阈值。当前压缩质量值为1表示没有未压缩的行(即,理想情况)。
压缩质量确定器1010A可以基于当前压缩质量值和确定的最佳情况压缩质量值来确定压缩质量度量1026A。最佳情况压缩质量值可以通过将未压缩行数与压缩阈值参数进行比较来确定。如果未压缩行数小于压缩阈值参数,则最佳情况压缩质量值设置为当前压缩质量值的值。否则,最佳情况压缩质量值设置为1。
压缩质量度量1026A可以根据下面所示的公式13来确定:
压缩QM=1-(最佳情况CQV-CCQV)(公式13)
全局压缩工作单元确定器1005还可以基于跨分区的未压缩行数和压缩阈值参数来生成全局压缩工作单元1016。例如,全局压缩工作单元确定器1005可以根据如下所示的公式14来确定全局压缩工作单元1016:
根据公式14,跨分区的未压缩行数除以压缩阈值参数。将得到的商的下限设置为压缩工作单元1016。
下表4提供了13种不同场景下确定的全局压缩质量度量和全局压缩工作单元的示
例。在本示例中,压缩阈值设置为一百万行:
未压缩行数 | CQ | BCQ | 质量 | UW |
0 | 1 | 1 | 1 | 0 |
10,000 | 0.99 | 0.99 | 1 | 0 |
100,000 | 0.9 | 0.9 | 1 | 0 |
200,000 | 0.8 | 0.8 | 1 | 0 |
300,000 | 0.7 | 0.7 | 1 | 0 |
400,000 | 0.6 | 0.6 | 1 | 0 |
500,000 | 0.5 | 0.5 | 1 | 0 |
600,000 | 0.4 | 0.4 | 1 | 0 |
700,000 | 0.3 | 0.3 | 1 | 0 |
800,000 | 0.2 | 0.2 | 1 | 0 |
900,000 | 0.1 | 0.1 | 1 | 0 |
1,000,000 | 0 | 1 | 0 | 1 |
1,200,000 | 0 | 1 | 0 | 1 |
表4
度量聚合器822被配置为聚合为不同属性(例如,全局分区质量度量414(如图4所示)、全局集群质量度量614(如图6所示)、全局数据封装质量度量814(如图8所示)、全局压缩质量度量1014和分段质量度量等)生成的质量度量。全局分段质量度量在下面的小节E中描述,如以上参考图2所述,将聚合质量度量提供给索引管理系统1002和/或质量查看器1006。
工作单元聚合器1024被配置为聚合为不同属性(例如,分区工作单元416(如图4所示)、集群工作单元616(如图6所示)、数据封装工作单元816(如图8所示)、压缩工作单元1016和工作分段单元等)生成的工作单元。分段工作单元在下面的小节E中描述,如上面参考图2所述,将聚合工作单元提供给索引管理系统1002和/或质量查看器1006。
因此,可以以多种方式确定压缩质量度量。例如,图11示出了根据示例实施例的用于确定全局压缩质量度量的方法的流程图1100。在一个实施例中,流程图1100可以由图10所示的系统1000实现,但是该方法不限于该实现。因此,将参考图10描述流程图1100。基于关于图10的流程图1100和系统1000的讨论,其他结构和操作实施例对于(多个)相关领域的技术人员是清楚的。
流程图1100开始于步骤1102。在步骤1102中,至少基于第一压缩质量度量和第二压缩质量度量以及预定压缩阈值参数的组合来生成全局压缩质量度量。第一压缩质量度量包括基于由第一分区的数据文件维护的未压缩行数的值。第二压缩质量度量包括基于由第二分区的数据文件维护的未压缩行数的值。例如,参考图10,全局压缩质量度量确定器1004基于跨所有分区的未压缩行的总数和预定压缩阈值来确定全局压缩质量度量1014。根据实施例,可以根据如上所述的公式13来生成全局压缩质量度量1014。
根据实施例,响应于确定分区的压缩是次优的,索引管理系统1002可以压缩由分区维护的数据文件的未压缩行。例如,如果全局压缩质量度量1014不满足具有预定阈值的条件,则索引管理系统1002可以压缩由第一分区维护的数据文件的未压缩行和/或压缩由第二分区维护的数据文件的未压缩行。
E.分段质量度量
数据系统通常支持删除操作,但在大数据系统中,数据的实际删除不会立即发生。尤其是当数据被压缩时,文件中被删除的行在删除映射中被简单地追踪为已删除,而不是立即删除文件中的那些行。因此,数据文件可以具有已标记为已删除的特定百分比的行。这意味着当扫描此文件时,也必须扫描删除映射以跳过已删除的行。随着文件中已删除行数的增加,删除映射的大小和要跳过的行数也会增加,因此扫描此类数据文件的效率很低,因为它只包含几个符合条件的(未删除的)行。
确定分段质量度量可以涉及计算压缩数据文件中被标记用于删除的行的百分比。文件中已删除的行数越多,需要扫描的删除映射就越大。图12描绘了根据示例实施例的用于生成全局分段质量度量的系统1200的框图。如图12所示,系统1200包括质量生成器1218A至1218N、质量聚合器1220、索引管理系统1202和质量查看器1206,它们是上面参考图10分别描述的质量生成器1018A至1018N、质量聚合器1020、索引管理系统1002和质量查看器1006的示例。质量聚合器1220包括全局分段质量度量生成器1201、度量聚合器1222和工作单元聚合器1224。度量聚合器1222和工作单元聚合器1224是度量聚合器1022和工作单元聚合器1024的示例,如以上参考图10分别描述的。全局分段质量度量生成器1201包括全局分段质量度量确定器1204和全局分段工作单元确定器1205。
分段质量确定器1210A被配置为向全局分段质量度量确定器1204提供第一分区的局部分段度量1226A。局部分段度量值1226A可以包括一个或多个删除映射,其指示第一分区的每个活动数据文件被标记用于删除的所有行以及第一分区中每个活动数据文件的总行数。活动数据文件是包括未被标记用于删除的至少一行(即活动行)的数据文件。分段质量确定器1210A可以从与第一分区相关联的元数据目录(例如,如图2所示的元数据目录204A)接收的元数据获得(多个)删除映射和总行数。类似地,压缩质量确定器1210N被配置为向全局分段质量度量确定器1204提供第N分区的局部分段度量1226N。局部分段度量1226N可以包括(多个)删除映射,其指示针对第N分区的每个活动数据文件标记用于删除的所有行以及针对第N分区中的每个活动数据文件的总行数。分段质量确定器1210N可以从与第N分区相关联的元数据目录(例如,如图2所示的元数据目录204N)接收的元数据获得(多个)删除映射和总行数。
全局分段质量度量确定器1204可以基于所有分区的每个活动数据文件的删除行数和所有分区的每个活动数据文件的总行数来确定当前分段质量。根据实施例,当前分段质量值(CFQV)可以根据下面所示的公式15来确定:
根据公式15,对于每个活动文件,该文件的已删除行数除以该文件的总行数。从值1中减去所得到的商。然后对为每个活动数据文件生成的结果值求平均,以确定当前分段质量值。当前分段质量值为零表示已删除压缩文件中的所有行。当前分段质量值为1表示在任何压缩文件中没有被删除的行(即,理想情况)。
全局分段质量度量确定器1204可以基于当前分段质量值和预定的最佳情况分段质量值来确定全局分段质量度量1214。最佳情况分段质量值可以是可配置的并且特定于特定数据库系统的参数。在本文描述的实施例中,最佳情况分段质量被设置为值1,这意味着在任何活动的压缩文件中最好没有被删除的行。
全局分段质量度量1214(GFQM)可以根据下面所示的公式16来确定:
GFQM=1-(最佳情况FQV-FCQV) (公式16)
全局分段工作单元确定器1205还可以基于全局分段质量度量1214来生成全局分段工作单元1216。例如,全局分段质量度量1214越大,全局分段工作单元1216越低。相反,全局分段质量度量1214越低,全局分段工作单元1216越高。全局分段工作单元1216的值表示删除标记用于删除的行或将标记用于删除的行移入非活动文件(即,仅存储标记用于删除的行的文件)的估计成本。
下面的表5提供了12个不同文件的所确定的质量度量值的示例。在此示例中,每个文件存储一百万行:
/>
表5
根据表5,当前分段质量值等于0.54(即,存储在第三列中的值的平均),并且全局分段质量度量1214等于0.54(根据上述公式16)。
度量聚合器1222被配置为聚合为不同属性(例如,全局分区质量度量414(如图4所示)、全局集群质量度量614(如图6所示)、全局数据封装质量度量814(如图8所示)、全局压缩质量度量1014(如图10所示)和全局分段质量度量1214等)生成的质量度量。如以上参考图2所述,将聚合质量度量提供给索引管理系统1202和/或质量查看器1206。
工作单元聚合器1224被配置为聚合为不同属性(例如,分区工作单元416(如图4所示)、集群工作单元616(如图6所示)、数据封装工作单元816(如图8所示)、压缩工作单元1016(如图10所示)、以及分段工作单元1216等)生成的工作单元。如以上参考图2所述,将聚合工作单元提供给索引管理系统1202和/或质量查看器1206。
因此,可以以多种方式确定分段质量度量。例如,图13示出了根据示例实施例的用于确定全局分段质量度量的方法的流程图1300。在实施例中,流程图1300可以由图12所示的系统1200实现,但是该方法不限于该实现。因此,将参考图12描述流程图1300。基于关于图12的流程图1300和系统1200的讨论,其他结构和操作实施例对于(多个)相关领域的技术人员是清楚的。
流程图1300开始于步骤1302。在步骤1302中,至少基于第一分段质量度量和第二分段质量度量与至少第一分区和第二分区中的总行数的组合来生成全局分段质量度量。第一分段质量度量包括基于在第一分区的数据文件中被标记用于删除的行数的值,并且第二分段质量度量包括基于在第二分区的数据文件中被标记用于删除的行数的值。例如,参考图12,全局分段质量度量确定器1204基于跨所有分区标记用于删除的每个文件的总行数和跨所有分区的每个数据文件的已删除行的总数来确定全局分段质量度量1214。根据实施例,可以根据如上所述的公式16来生成全局分段质量度量1214。
根据实施例,响应于确定分区的分段是次优的,索引管理系统1202可以将活动数据文件中的活动行合并在活动数据文件中和/或将标记用于删除的行一起合并在非活动数据文件中。例如,对于第一分区,索引管理系统1202可以将第一分区的数据文件中还包括被标记用于删除的第一行的第一数据文件的活动行与第一分区的数据文件中还包括被标记用于删除的第二行的第二数据文件的活动行合并为第一新数据文件,并且将第一数据文件的标记用于删除的第一行与第二数据文件的标记用于删除的第二行合并为第二新数据文件。对于第二分区,索引管理系统1202可以将第二分区的数据文件中还包括被标记用于删除的第一行的第一数据文件的活动行与第一分区的数据文件中还包括被标记用于删除的第二行的第二数据文件的活动行合并为第一新数据文件,并且将第一数据文件的标记用于删除的第一行与第二数据文件的标记用于删除的第二行合并为第二新数据文件。
F.全局质量度量和工作单元聚合
图14描绘了根据示例实施例的用于生成总体索引质量度量和全局工作单元的系统1400的框图。如图14所示,系统1400包括质量聚合器1420、索引管理系统1402和质量查看器1406。质量聚合器1420、索引管理系统1402和质量查看器1406是如上参考图12描述的质量聚合器1220、索引管理系统1202和质量查看器1206的示例。质量聚合器1420包括度量聚合器1422和工作单元聚合器1424,它们是度量聚合器1222和工作单元聚合器1224的示例,如以上参考图12所描述的。
度量聚合器1422被配置为聚合由质量聚合器1420生成的各种全局度量。例如,度量聚合器1422被配置为聚合全局分区质量度量414(如上图4中描述的)、全局集群质量度量614(如上图6中描述的)、全局数据封装质量度量814(如上图8中描述的)、全局压缩质量度量1014(如上图10中描述的)和全局分段质量度量1214(如上图12中描述的)以生成总体索引质量1404。根据实施例,度量聚合器1422根据公式15来聚合这些度量,如下所示:
IQ=w1*GDPQM+w2*GCQM+w3*GDPQM+w4*GCQM+w5*GFQM (公式17)
根据公式17,总体索引质量(IQ)是每个单独的全局质量度量(即,全局分区质量度量414(GDPQM)、全局集群质量度量614(GCQM)、全局数据封装质量度量814(GDPQM)、全局压缩质量度量1014(GCQM)和全局分段质量度量1214(GFQM))的加权和。因为不同的系统可以具有不同的实现,所以权重(即,w1、w2、w3、w4和w5)可以根据其中实现本文描述的实施例的特定系统来选择。
工作单元聚合器1424被配置为聚合由质量聚合器1420生成的各种全局度量。例如,工作单元聚合器1424被配置为聚合全局分区工作单元416(如上图4中描述的)、全局集群工作单元616(如上图6中描述的)、全局数据封装工作单元816(如上图8中描述的)、全局压缩工作单元1016(如上图10中描述的)和全局分段工作单元1216(如上图12中描述的),以生成聚合的(或总体的)工作单元1408。根据一个实施例,工作单元聚合器1424根据公式18聚合这些工作单元,如下所示:
AUW=GDPUW+GCUW+GDPUW+GCQUW+GFUW (公式18)
根据公式18,总体的聚合工作单元(AUW)是每个单独的全局工作单元(即,全局分区工作单元416(GDPUW)、全局集群工作单元616(GCUW)、全局数据封装工作单元816(GDPUW)、全局压缩工作单元1016(GCUW)和全局分段工作单元1216(GFUW)的总和。每个工作单元可以以与上面参考公式17描述的类似的方式来加权。总体工作单元表示对索引管理系统1402必须执行以改进索引的总体质量的总工作量的估计。总体索引质量1404和聚合工作单元1408被提供给索引管理系统1402和/或质量查看器1406。
质量查看器1406可以例如经由GUI显示总体索引质量1404和/或聚合工作单元1408。GUI的用户(例如,数据库管理员)可以基于总体索引质量1404和/或聚合工作单元108来确定是否应当针对数据库表执行动作以改进索引性能。例如,用户可能希望改变存储数据库表的方式。在这样的示例中,用户可以使用GUI向索引管理系统1402发出命令,该命令使得索引管理系统1402执行改变存储数据库表的方式的动作。在某些实施例中,除了显示总体索引质量1404和/或聚合工作单元1408之外或代替显示总体索引质量1404和/或聚合工作单元1408,质量查看器1406可以单独显示为其生成的每个局部质量度量和/或工作单元。
动作的示例包括但不限于,确定新的分区键并且根据新的分区键使数据库表被分区、对特定分区的一个或多个数据文件重新集群、合并特定分区的数据文件、压缩特定分区的数据文件的未压缩行、将特定分区的不同数据文件的活动行合并在一起、和/或本文描述的任何其他动作。
索引管理系统1402可以被配置为基于总体索引质量1404和/或聚合工作单元1408自动执行改进索引性能的动作。例如,索引管理系统1402可以确定总体索引质量1404是否满足关于预定阈值的条件(例如,它可以确定全局质量度量是否达到预定阈值)。响应于确定全局质量度量满足关于预定阈值的条件,索引管理系统1402可以执行上述一个或多个动作来改变数据库表存储数据的方式,以便减少或消除低效(即,改进索引)。
例如,索引管理系统1402可以确定哪个局部质量度量是最低的,并执行改进该特定局部质量度量的动作。在另一示例中,索引管理系统1402可以确定工作单元中的哪个是最低的,并且执行动作以改进相应的局部质量度量。这样,补救低效的开销将相对较低。应当注意,索引管理系统1402可以利用其他标准来确定是否执行动作来补救归因于特定局部质量度量的特定低效。
III.示例计算机系统实现
上面参考图1至图14描述的系统和方法可以以硬件或与软件和/或固件中的一个或两者相结合的硬件来实现。例如,图15的系统1500可以用于实现图1的任何节点108A至108N、112A至112N和/或114A至114N、(多个)存储节点110A至110N、质量聚合器120、质量生成器118、和/或元数据目录104,图2的质量查看器206、质量聚合器220、索引管理系统202、质量生成器218A至218N和/或元数据目录204A至204N,图4的质量聚合器420、全局分区质量度量生成器401、全局集群质量度量生成器401、质量生成器418A至418N、索引管理系统402、质量查看器406、元数据接收器404、统计生成器405、分区质量度量生成器408、分区工作单元410、度量聚合器422和/或工作单元聚合器424,图6的质量聚合器620、全局数据封装质量度量生成器801、质量生成器618A至618N、集群质量确定器610A至610N、集群工作单元确定器612A至612N、索引管理系统602、质量查看器606、全局集群质量度量确定器604、全局集群工作单元确定器605、度量聚合器622和/或工作单元聚合器624,图8的质量聚合器820、质量生成器818A至818N、数据封装质量确定器810A至810N、数据封装工作单元确定器812A至812N、索引管理系统802、质量查看器806、全局数据封装质量度量确定器804、全局数据封装工作单元确定器805、度量聚合器822和/或工作单元聚合器824,图10的质量聚合器1020、全局压缩质量度量生成器1001、质量生成器1018A至1018N、索引管理系统1002、质量查看器1006、全局压缩质量度量确定器1004、全局压缩工作单元确定器1005、度量聚合器1022和/或工作单元聚合器1024,图12的质量聚合器1220、全局分段质量度量生成器1201、质量聚合器1218A至1218N、索引管理系统1202、质量查看器1206、全局分段动作质量度量确定器1204、全局分段工作单元确定器1205、度量聚合器1222和/或工作单元聚合器1224,图14的质量聚合器1420、度量聚合器1422、工作单元聚合器1424、索引管理系统1402和/或质量查看器1406和/或其中分别描述的任何组件,以及流程图300、500、700、900、1100和/或1300可以各自实现为被配置为在一个或多个处理器中执行并且存储在计算机可读存储介质中的计算机程序代码/指令。备选地,图1的任何节点108A至108N、112A至112N和/或114A至114N、(多个)存储节点110A至110N、质量聚合器120、质量生成器118、和/或元数据目录104,图2的质量查看器206、质量聚合器220、索引管理系统202、质量生成器218A至218N和/或元数据目录204A至204N,图4的质量聚合器420、全局分区质量度量生成器401、全局集群质量度量生成器401、质量生成器418A至418N、索引管理系统402、质量查看器406、元数据接收器404、统计生成器405、分区质量度量生成器408、分区工作单元410、度量聚合器422和/或工作单元聚合器424,图6的质量聚合器620、全局数据封装质量度量生成器801、质量生成器618A至618N、集群质量确定器610A至610N、集群工作单元确定器612A至612N、索引管理系统602、质量查看器606、全局集群质量度量确定器604、全局集群工作单元确定器605、度量聚合器622和/或工作单元聚合器624,图8的质量聚合器820、质量生成器818A至818N、数据封装质量确定器810A至810N、数据封装工作单元确定器812A至812N、索引管理系统802、质量查看器806、全局数据封装质量度量确定器804、全局数据封装工作单元确定器805、度量聚合器822和/或工作单元聚合器824,图10的质量聚合器1020、全局压缩质量度量生成器1001、质量生成器1018A至1018N、索引管理系统1002、质量查看器1006、全局压缩质量度量确定器1004、全局压缩工作单元确定器1005、度量聚合器1022和/或工作单元聚合器1024,图12的质量聚合器1220、全局分段质量度量生成器1201、质量聚合器1218A至1218N、索引管理系统1202、质量查看器1206、全局分段动作质量度量确定器1204、全局分段工作单元确定器1205、度量聚合器1222和/或工作单元聚合器1224,图14的质量聚合器1420、度量聚合器1422、工作单元聚合器1424、索引管理系统1402和/或质量查看器1406和/或其中分别描述的任何组件,以及流程图300、500、700、900、1100和/或1300可以在一个或多个SoC(片上系统)中实现。SoC可以包括集成电路芯片,该集成电路芯片包括处理器(例如,中央处理单元(CPU)、微控制器、微处理器、数字信号处理器(DSP)等)、存储器、一个或多个通信接口和/或其他电路中的一个或多个,并且可以可选地执行接收到的程序代码和/或包括用于执行功能的嵌入式固件。
图15描绘了计算设备1500的示例性实现,其中可以实现实施例,包括图1的任何节点108A至108N、112A至112N和/或114A至114N、(多个)存储节点110A至110N、质量聚合器120、质量生成器118、和/或元数据目录104,图2的质量查看器206、质量聚合器220、索引管理系统202、质量生成器218A至218N和/或元数据目录204A至204N,图4的质量聚合器420、全局分区质量度量生成器401、全局集群质量度量生成器401、质量生成器418A至418N、索引管理系统402、质量查看器406、元数据接收器404、统计生成器405、分区质量度量生成器408、分区工作单元410、度量聚合器422和/或工作单元聚合器424,图6的质量聚合器620、全局数据封装质量度量生成器801、质量生成器618A至618N、集群质量确定器610A至610N、集群工作单元确定器612A至612N、索引管理系统602、质量查看器606、全局集群质量度量确定器604、全局集群工作单元确定器605、度量聚合器622和/或工作单元聚合器624,图8的质量聚合器820、质量生成器818A至818N、数据封装质量确定器810A至810N、数据封装工作单元确定器812A至812N、索引管理系统802、质量查看器806、全局数据封装质量度量确定器804、全局数据封装工作单元确定器805、度量聚合器822和/或工作单元聚合器824,图10的质量聚合器1020、全局压缩质量度量生成器1001、质量生成器1018A至1018N、索引管理系统1002、质量查看器1006、全局压缩质量度量确定器1004、全局压缩工作单元确定器1005、度量聚合器1022和/或工作单元聚合器1024,图12的质量聚合器1220、全局分段质量度量生成器1201、质量聚合器1218A至1218N、索引管理系统1202、质量查看器1206、全局分段动作质量度量确定器1204、全局分段工作单元确定器1205、度量聚合器1222和/或工作单元聚合器1224,图14的质量聚合器1420、度量聚合器1422、工作单元聚合器1424、索引管理系统1402和/或质量查看器1406和/或其中分别描述的任何组件,以及流程图300、500、700、900、1100和/或1300。本文提供的对计算设备1500的描述是为了说明的目的而提供的,并且不旨在是限制性的。实施例可以在其他类型的计算机系统中实现,如(多个)相关领域的技术人员所了解的。
如图15所示,计算设备1500包括称为处理器电路1502的一个或多个处理器、系统存储器1504、以及将包括系统存储器1504的各种系统组件耦合到处理器电路1502的总线1506。处理器电路1502是在作为中央处理单元(CPU)、微控制器、微处理器和/或其他物理硬件处理器电路的一个或多个物理硬件电路器件元素和/或集成电路器件(半导体材料芯片或芯片)中实现的电和/或光学电路。处理器电路1502可以执行存储在计算机可读介质中的程序代码,诸如操作系统1530、应用程序1532、其他程序1534等的程序代码。总线1506表示几种类型的总线结构中的任何一种或多种,包括存储器总线或存储器控制器、外围总线、加速图形端口、以及使用各种总线架构中的任何一种的处理器或局部总线。系统存储器1504包括只读存储器(ROM)1508和随机存取存储器(RAM)1510。基本输入/输出系统1512(BIOS)存储在ROM 1508中。
计算设备1500还具有以下驱动器中的一个或多个驱动器:硬盘驱动器1514,用于读取和写入硬盘;磁盘驱动器1516,用于读取或写入可移除磁盘1518;以及光盘驱动器1520,用于读取或写入可移除光盘1522,例如CD ROM、DVD ROM或其他光学介质。硬盘驱动器1514、磁盘驱动器1516和光盘驱动器1520分别通过硬盘驱动器接口1524、磁盘驱动器接口1526和光盘驱动器接口1528连接到总线1506。驱动器及其相关联的计算机可读介质为计算机提供计算机可读指令、数据结构、程序模块和其他数据的非易失性存储。虽然描述了硬盘、可移除磁盘和可移除光盘,但也可以使用其他类型的基于硬件的计算机可读存储介质来存储数据,例如闪存卡、数字视频盘、RAM、ROM和其他硬件存储介质。
多个程序模块可以存储在硬盘、磁盘、光盘、ROM或RAM上。这些程序包括操作系统1530、一个或多个应用程序1532、其他程序1534和程序数据1536。应用程序1532或其他程序1534可以包括例如用于实现上述系统的计算机程序逻辑(例如,计算机程序代码或指令),包括以上参考图1至图14描述的实施例。
用户可以通过诸如键盘1538和定点设备1540的输入设备将命令和信息输入到计算设备1500中。其他输入设备(未示出)可以包括麦克风、操纵杆、游戏板、卫星天线、扫描仪、触摸屏和/或触摸板、用于接收语音输入的语音识别系统、用于接收手势输入的手势识别系统等。这些和其他输入设备通常通过耦合到总线1506的串口接口1542连接到处理器电路1502,但也可以通过诸如并行端口、游戏端口或通用串行总线(USB)的其他接口连接。
显示屏1544还通过诸如视频适配器1546的接口连接到总线1506。显示屏1544可以在计算设备1500的外部或并入计算设备1500。显示屏1544可以显示信息,也可以是用于接收用户命令和/或其他信息的用户界面(例如,通过触摸、手指手势、虚拟键盘,通过提供轻触输入(其中用户轻按并且快速释放显示屏1544)、通过提供“触摸并且保持”输入(其中用户在显示屏1544上触摸并且保持其手指(或触摸仪器)一段预定时间段)、通过提供超过预定压力阈值的触摸输入等)。除了显示屏1544之外,计算设备1500还可以包括其他外围输出设备(未示出),诸如扬声器和打印机。
计算设备1500通过适配器或网络接口1550、调制解调器1552或用于在网络上建立通信的其他装置连接到网络1548(例如,互联网)。如图15所示,可以是内置或外置的调制解调器1552可以经由串口接口1542连接到总线1506,或者可以使用包括并行接口的另一种接口类型连接到总线1506。
如本文所使用的,术语“计算机程序介质”、“计算机可读介质”和“计算机可读存储介质”通常用于指代物理硬件介质,诸如与硬盘驱动器1514相关联的硬盘、可移除磁盘1518、可移除光盘1522、其他物理硬件介质,诸如RAM、ROM、闪存卡、数字视频盘、zip盘、MEM、基于纳米技术的存储设备、以及其他类型的物理/有形硬件存储介质(包括图15的系统存储器1504)。这种计算机可读存储介质与通信介质不同且不与其重叠(不包括通信介质)。通信介质通常在诸如载波的调制数据信号中包含计算机可读指令、数据结构、程序模块或其他数据。术语“调制数据信号”是指其一个或多个特性以编码信号中的信息的方式设置或改变的信号。作为示例而非限制,通信介质包括无线介质,诸如声学、RF、红外和其他无线介质,以及有线介质。实施例还涉及这样的通信介质。
如上所述,计算机程序和模块(包括应用程序1532和其他程序1534)可以存储在硬盘、磁盘、光盘、ROM、RAM或其他硬件存储介质上。这样的计算机程序也可以经由网络接口1550、串口接口1552或任何其他接口类型来接收。这样的计算机程序在由应用执行或加载时使计算设备1500能够实现本文讨论的实施例的特征。因此,这样的计算机程序表示计算设备1500的控制器。
实施例还涉及包括存储在任何计算机可读介质上的计算机代码或指令的计算机程序产品。这样的计算机程序产品包括硬盘驱动器、光盘驱动器、存储器设备包、便携式记忆棒、存储卡和其他类型的物理存储硬件。
IV.其他示例实施例
本文描述了一种方法。该方法包括:经由网络从第一计算节点接收由分布式数据库系统维护的针对数据库表的第一分区的第一质量度量,第一质量度量指示第一分区的第一属性的质量;经由网络从第二计算节点接收针对数据库表的第二分区的第二质量度量,第二质量度量指示第二分区的第二属性的质量;至少基于第一质量度量和第二质量度量来生成指示分布式数据库系统的索引的性能的全局质量度量;基于全局质量度量满足关于预定阈值的条件来检测关于索引的低效;以及响应于检测到低效,执行改变数据库表存储数据的方式的动作。
在前述方法的一个实现中,第一质量度量包括第一分区的行数,第二质量度量包括第二分区的行数,并且生成全局质量度量包括:至少分析第一质量度量和第二质量度量,以确定至少第一分区的行和第二分区的行的分布是否满足关于第二预定阈值的条件;响应于确定至少第一分区的行和第二分区的行的分布满足关于第二预定阈值的条件,维护至少第一分区和第二分区所基于的分区键;以及响应于确定至少第一分区的行和第二分区的行的分布不满足关于第二预定阈值的条件,确定至少针对第一分区和第二分区的不同分区键。
在前述方法的一个实现中,所述执行改变数据库表存储数据的方式的动作包括根据不同分区键对数据库表进行分区。
在前述方法的一个实现中,第一质量度量包括至少基于第一重叠值的第一数据集群质量度量,第一重叠值指示包括具有第一多个集群键中的特定集群键的特定值的行的第一分区的数据文件的最大数目,并且第二质量度量包括至少基于第二重叠值的第二数据集群质量度量,第二重叠值指示包括具有第二多个集群键中的特定集群键的特定值的行的第二分区的数据文件的最大数目,并且所述生成全局质量度量包括:从至少第一数据集群质量度量和第二数据集群质量度量中确定最大数据集群质量度量;响应于确定第一数据集群质量度量是最大数据集群质量度量,将第一数据集群质量度量指定为全局数据集群质量度量;以及响应于确定第二数据集群质量度量是最大数据集群质量度量,将第二数据集群质量度量指定为全局数据集群质量度量。
在前述方法的一个实现中,所述执行改变数据库表存储数据的方式的动作包括:响应于确定第一数据集群质量度量是最大数据集群质量度量,对存储具有第一多个集群键的值的行的第一分区的数据文件的至少子集进行重新集群,使得第一分区的数据文件的至少子集存储具有第一多个集群键中的单个集群键的值的行;以及响应于确定第二数据集群质量度量是最大数据集群质量度量,对存储具有第二多个集群键的值的行的第二分区的数据文件的至少子集进行重新集群,使得第二分区的数据文件的至少子集存储具有第二多个集群键中的单个集群键的值的行。
在前述方法的一个实现中,第一质量度量包括第一数据封装质量度量,该第一数据封装质量度量基于第一分区的数据文件的第一平均文件质量,第一平均文件质量基于第一分区的每个数据文件存储的行数和预定的理想行计数参数;第二质量度量包括第二数据封装质量度量,该第二数据封装质量度量基于第二分区的数据文件的第二平均文件质量,第二平均文件质量基于由第二分区的每个数据文件存储的行数和预定的理想行计数参数,并且所述生成全局质量度量包括:至少基于第一数据封装度量和第二数据封装度量来生成全局数据封装质量度量。
在前述方法的一个实现中,所述执行改变数据库表存储数据的方式的动作包括:执行以下中的至少一项:合并第一分区的数据文件中的两个或更多个数据文件,每个数据文件的行数小于预定的理想行计数参数;或者合并第二分区的数据文件的两个或更多个数据文件,每个数据文件的行数小于预定的理想行计数参数。
在前述方法的一个实现中,第一质量度量包括基于由第一分区的数据文件维护的未压缩行数的第一压缩质量度量,并且第二质量度量包括基于由第二分区的数据文件维护的未压缩行数的第二压缩质量度量,并且所述生成全局质量度量包括:至少基于第一压缩质量度量和第二压缩质量度量以及预定压缩阈值参数的组合来生成全局压缩质量度量。
在前述方法的一个实现中,所述执行改变数据库表存储数据的方式的动作包括:执行以下中的至少一项:压缩由第一分区维护的数据文件的未压缩行;或压缩由第二分区维护的数据文件的未压缩行。
在前述方法的一个实现中,第一质量度量包括第一分段质量度量,该第一分段质量度量基于在第一分区的数据文件中被标记用于删除的行数,并且第二质量度量包括第二分段质量度量,该第二分段质量度量基于在第二分区的数据文件中被标记用于删除的行数,并且所述生成全局质量度量包括:至少基于第一分段质量度量和第二分段质量度量与第一分区和第二分区中的总行数的组合来生成全局分段质量度量。
在前述方法的一个实现中,所述执行改变数据库表存储数据的方式的动作包括:执行以下中的至少一项:将第一分区的数据文件中还包括被标记用于删除的第一数据文件的活动行与第一分区的数据文件中还包括被标记用于删除的第二行的第二数据文件的活动行合并为第一新数据文件,并且将第一数据文件中被标记用于删除的第一行与第二数据文件中被标记用于删除的第二行合并为第二新数据文件;或者将第二分区的数据文件中还包括被标记用于删除的第三行的第三数据文件的活动行与第二分区的数据文件中还包括被标记用于删除的第四行的活动行合并为第三新数据文件,并将第三数据文件中被标记用于删除的第三行与第四数据文件中被标记用于删除的第四行合并为第四新数据文件。
还公开了根据本文描述的任何实施例的系统。该系统包括:至少一个处理器电路;以及存储被配置为由至少一个处理器电路执行的程序代码的至少一个存储器,程序代码包括:质量聚合器,被配置为:经由网络从第一计算节点接收由分布式数据库系统维护的数据库表的第一分区的第一质量度量,第一质量度量指示第一分区的第一属性的质量;经由网络从第二计算节点接收针对数据库表的第二分区的第二质量度量,第二质量度量指示第二分区的第二属性的质量;以及至少基于第一质量度量和第二质量度量生成指示分布式数据库系统的索引的性能的全局质量度量;以及索引管理系统,被配置为:基于全局质量度量满足关于预定阈值的条件来检测关于索引的低效;以及响应于检测到低效,执行改变数据库表存储数据的方式的动作。
在前述系统的一个实现中,第一质量度量包括第一分区的行数,其中第二质量度量包括第二分区的行数,并且其中质量聚合器被配置为通过以下方式生成全局质量度量:至少分析第一质量度量和第二质量度量以确定至少第一分区的行和第二分区的行的分布是否满足关于第二预定阈值的条件;响应于确定至少第一分区的行和第二分区的行的分布满足关于第二预定阈值的条件,维护至少第一分区和第二分区所基于的分区键;以及响应于确定至少第一分区的行和第二分区的行的分布不满足关于第二预定阈值的条件,确定针对至少第一分区和第二分区的不同分区键。
在上述系统的一个实现中,索引管理系统还被配置为:根据不同分区键对数据库表进行分区。
在前述系统的一个实现中,第一质量度量包括至少基于第一重叠值的第一数据集群质量度量,第一重叠值指示包括具有第一多个集群键中的特定集群键的特定值的行的第一分区的数据文件的最大数目,并且第二质量度量包括至少基于第二重叠值的第二数据集群质量度量,第二重叠值指示包括具有第二多个集群键中的特定集群键的特定值的行的第二分区的数据文件的最大数目,并且质量聚合器被配置为通过以下方式生成全局质量度量:从第一数据集群质量度量和第二数据集群质量度量中确定最大数据集群质量度量;响应于确定第一数据集群质量度量是最大数据集群质量度量,将第一数据集群质量度量指定为全局数据集群质量度量;以及响应于确定第二数据集群质量度量是最大数据集群质量度量,将第二数据集群质量度量指定为全局数据集群质量度量。
在前述系统的一个实现中,索引管理系统还被配置为:响应于确定第一数据集群质量度量是最大数据集群质量度量,对存储具有第一多个集群键的值的行的第一分区的数据文件的至少子集进行重新集群,使得第一分区的数据文件的至少子集存储具有第一多个集群键中的单个集群键的值的行;以及响应于确定第二数据集群质量度量是最大数据集群质量度量,对存储具有第二多个集群键的值的行的第二分区的数据文件的至少子集进行重新集群,使得第二分区的数据文件的至少子集存储具有第二多个集群键中的单个集群键的值的行。
在前述系统的一个实现中,第一质量度量包括第一数据封装质量度量,该第一数据封装质量度量基于第一分区的数据文件的第一平均文件质量,第一平均文件质量基于第一分区的每个数据文件存储的行数和预定的理想行计数参数;第二质量度量包括第二数据封装质量度量,第二数据封装质量度量基于第二分区的数据文件的第二平均文件质量,所述第二平均文件质量基于第二分区的每个数据文件存储的行数和预定的理想行计数参数,并且质量聚合器被配置为通过以下方式来生成全局质量度量:至少基于第一数据封装度量和第二数据封装度量来生成全局数据封装质量度量。
在前述系统的一个实现中,索引管理系统还被配置为:执行以下中的至少一项:合并第一分区的数据文件的两个或更多个数据文件,每个数据文件的行数小于预定的理想行计数参数;或者合并第二分区的数据文件的两个或更多个数据文件,每个数据文件的行数小于预定的理想行计数参数。
在前述系统的一个实现中,第一质量度量包括基于由第一分区的数据文件维护的未压缩行数的第一压缩质量度量,并且第二质量度量包括基于由第二分区的数据文件维护的未压缩行数的第二压缩质量度量,并且质量聚合器被配置为通过以下方式生成全局质量度量:至少基于第一压缩质量度量和第二压缩质量度量和预定压缩阈值参数的组合来生成全局压缩质量度量。
一种其上记录有程序指令的计算机可读存储介质,程序指令在由至少一个处理器执行时,执行用于表示表的数据对象的一致性检查的方法。该方法包括:经由网络从第一计算节点接收由分布式数据库系统维护的数据库表的第一分区的第一质量度量,第一质量度量指示第一分区的第一属性的质量;经由网络从第二计算节点接收数据库表的第二分区的第二质量度量,第二质量度量指示第二分区的第二属性的质量;至少基于第一质量度量和第二质量度量生成指示分布式数据库系统的索引的性能的全局质量度量;基于全局质量度量满足关于预定阈值的条件来检测关于索引的低效;以及响应于检测到低效,执行改变数据库表存储数据的方式的动作。
V.结论
虽然上面已经描述了各种示例实施例,但是应当理解,它们仅作为示例而不是限制地呈现。(多个)相关领域的技术人员可以理解,可以在形式和细节上进行各种改变而不背离所附权利要求中定义的实施例的精神和范围。因此,本公开的广度和范围不应受上述任何示例实施例的限制,而应仅根据所附权利要求及其等同形式来限定。
Claims (15)
1.一种方法,包括:
经由网络从第一计算节点接收由分布式数据库系统维护的针对数据库表的第一分区的第一质量度量,所述第一质量度量指示所述第一分区的第一属性的质量;
经由所述网络从第二计算节点接收针对所述数据库表的第二分区的第二质量度量,所述第二质量度量指示所述第二分区的第二属性的质量;
至少基于所述第一质量度量和所述第二质量度量来生成指示所述分布式数据库系统的索引的所述性能的全局质量度量;
基于所述全局质量度量满足关于预定阈值的条件来检测关于所述索引的低效;以及
响应于检测到所述低效,执行改变由所述数据库表存储数据的方式的动作。
2.根据权利要求1所述的方法,其中所述第一质量度量包括所述第一分区的行数,其中所述第二质量度量包括所述第二分区的行数,并且其中所述生成所述全局质量度量包括:
至少分析所述第一质量度量和所述第二质量度量以确定至少所述第一分区的所述行和所述第二分区的所述行的分布是否满足关于第二预定阈值的条件;
响应于确定至少所述第一分区的所述行和所述第二分区的所述行的所述分布满足关于所述第二预定阈值的所述条件,维护至少所述第一分区和所述第二分区所基于的分区键;以及
响应于确定至少所述第一分区的所述行和所述第二分区的所述行的所述分布不满足关于所述第二预定阈值的所述条件,确定针对至少所述第一分区和所述第二分区的不同分区键。
3.根据权利要求2所述的方法,其中所述执行改变由所述数据库表存储数据的所述方式的所述动作包括:根据所述不同分区键对所述数据库表进行分区。
4.根据权利要求1所述的方法,其中所述第一质量度量包括至少基于第一重叠值的第一数据集群质量度量,所述第一重叠值指示包括具有第一多个集群键中的特定集群键的特定值的行的所述第一分区的数据文件的最大数目,并且
其中所述第二质量度量包括至少基于第二重叠值的第二数据集群质量度量,所述第二重叠值指示包括具有针对第二多个集群键中的特定集群键的特定值的行的所述第二分区的数据文件的最大数目,并且
其中所述生成所述全局质量度量包括:
从至少所述第一数据集群质量度量和所述第二数据集群质量度量中确定最大数据集群质量度量;
响应于确定所述第一数据集群质量度量是所述最大数据集群质量度量,将所述第一数据集群质量度量指定为全局数据集群质量度量;以及
响应于确定所述第二数据集群质量度量是所述最大数据集群质量度量,将所述第二数据集群质量度量指定为所述全局数据集群质量度量。
5.根据权利要求4所述的方法,其中所述执行改变由所述数据库表存储数据的所述方式的所述动作包括:
响应于确定所述第一数据集群质量度量是所述最大数据集群质量度量,对存储具有针对所述第一多个集群键的值的行的所述第一分区的所述数据文件的至少子集进行重新集群,使得所述第一分区的所述数据文件的至少所述子集存储具有针对所述第一多个集群键中的单个集群键的值的行;以及
响应于确定所述第二数据集群质量度量是所述最大数据集群质量度量,对存储具有针对所述第二多个集群键的值的行的所述第二分区的所述数据文件的至少子集进行重新集群,使得所述第二分区的所述数据文件的至少所述子集存储具有针对所述第二多个集群键中的单个集群键的值的行。
6.根据权利要求1所述的方法,其中所述第一质量度量包括第一数据封装质量度量,所述第一数据封装质量度量基于所述第一分区的数据文件的第一平均文件质量,所述第一平均文件质量基于由所述第一分区的所述数据文件中的每个数据文件存储的行数和预定的理想行计数参数;
其中所述第二质量度量包括第二数据封装质量度量,所述第二数据封装质量度量基于所述第二分区的数据文件的第二平均文件质量,所述第二平均文件质量基于由所述第二分区的所述数据文件中的每个数据文件存储的行数和所述预定的理想行计数参数,并且
其中所述生成所述全局质量度量包括:
至少基于所述第一数据封装度量和所述第二数据封装度量来生成全局数据封装质量度量。
7.根据权利要求6所述的方法,其中所述执行改变由所述数据库表存储数据的所述方式的所述动作包括:
执行以下至少一项:
合并所述第一分区的所述数据文件中的两个或更多个数据文件,所述两个或更多个数据文件各自具有小于所述预定的理想行计数参数的行数;或者
合并所述第二分区的所述数据文件中的两个或更多个数据文件,所述两个或更多个数据文件各自具有小于所述预定的理想行计数参数的行数。
8.根据权利要求1所述的方法,其中所述第一质量度量包括第一压缩质量度量,所述第一压缩质量度量基于由所述第一分区的数据文件维护的未压缩行数,并且
其中所述第二质量度量包括第二压缩质量度量,所述第二压缩质量度量基于由所述第二分区的数据文件维护的未压缩行数,并且
其中所述生成所述全局质量度量包括:
至少基于所述第一压缩质量度量和所述第二压缩质量度量以及预定压缩阈值参数的组合来生成全局压缩质量度量。
9.根据权利要求8所述的方法,其中所述执行改变由所述数据库表存储数据的所述方式的所述动作包括:
执行以下至少一项:
对由所述第一分区维护的所述数据文件的所述未压缩行进行压缩;或者
对由所述第二分区维护的所述数据文件的所述未压缩行进行压缩。
10.根据权利要求1所述的方法,其中所述第一质量度量包括第一分段质量度量,所述第一分段质量度量基于在所述第一分区的数据文件中被标记用于删除的行数,并且
其中所述第二质量度量包括第二分段质量度量,所述第二分段质量度量基于在所述第二分区的数据文件中被标记用于删除的行数,并且
其中所述生成所述全局质量度量包括:
至少基于所述第一分段质量度量和所述第二分段质量度量以及所述第一分区和所述第二分区中的总行数的组合来生成全局分段质量度量。
11.根据权利要求10所述的方法,所述执行改变所述数据库表存储数据的所述方式的所述动作包括:
执行以下至少一项:
将所述第一分区的所述数据文件中的、还包括被标记用于删除的第一行的第一数据文件的活动行与所述第一分区的所述数据文件中的、还包括被标记用于删除的第二行的第二数据文件的活动行合并为第一新数据文件,以及
将所述第一数据文件中的、被标记用于删除的所述第一行与所述第二数据文件中的、被标记用于删除的所述第二行合并为第二新数据文件;或者
将所述第二分区的所述数据文件中的、还包括被标记用于删除的第三行的第三数据文件的活动行与所述第二分区的所述数据文件中的、还包括被标记用于删除的第四行的第四数据文件的活动行合并为第三新数据文件,以及
将所述第三数据文件中的、被标记用于删除的所述第三行与所述第四数据文件中的、被标记用于删除的所述第四行合并为第四新数据文件。
12.一种系统,包括:
至少一个处理器电路;以及
至少一个存储器,所述至少一个存储器存储被配置为由所述至少一个处理器电路执行的程序代码,所述程序代码包括:
质量聚合器,被配置为:
经由网络从第一计算节点接收由分布式数据库系统维护的针对数据库表的第一分区的第一质量度量,所述第一质量度量指示所述第一分区的第一属性的质量;
经由所述网络从第二计算节点接收针对所述数据库表的第二分区的第二质量度量,所述第二质量度量指示所述第二分区的第二属性的质量;以及
至少基于所述第一质量度量和所述第二质量度量来生成指示所述分布式数据库系统的索引的所述性能的全局质量度量;以及
索引管理系统,被配置为:
基于所述全局质量度量满足关于预定阈值的条件来检测关于所述索引的低效;以及
响应于检测到所述低效,执行改变由所述数据库表存储数据的方式的动作。
13.根据权利要求12所述的系统,其中所述第一质量度量包括所述第一分区的行数,其中所述第二质量度量包括所述第二分区的行数,并且其中所述质量聚合器被配置为通过以下方式来生成所述全局质量度量:
至少分析所述第一质量度量和所述第二质量度量以确定至少所述第一分区的所述行和所述第二分区的所述行的分布是否满足关于第二预定阈值的条件;
响应于确定至少所述第一分区的所述行和所述第二分区的所述行的所述分布满足关于所述第二预定阈值的所述条件,维护至少所述第一分区和所述第二分区所基于的分区键;以及
响应于确定至少所述第一分区的所述行和所述第二分区的所述行的所述分布不满足关于所述第二预定阈值的所述条件,确定针对至少所述第一分区和所述第二分区的不同分区键。
14.根据权利要求13所述的系统,其中所述索引管理系统还被配置为:根据所述不同分区键对所述数据库表进行分区。
15.一种计算机可读存储介质,所述计算机可读存储介质上记录有程序指令,所述程序指令在由计算设备的至少一个处理器执行时,执行根据权利要求1至11中的任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/193,694 | 2021-03-05 | ||
US17/193,694 US11704298B2 (en) | 2021-03-05 | 2021-03-05 | Measuring and improving index quality in a distributed data system |
PCT/US2022/017190 WO2022187016A1 (en) | 2021-03-05 | 2022-02-22 | Measuring and improving index quality in a distributed data system |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116982035A true CN116982035A (zh) | 2023-10-31 |
Family
ID=80684977
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280019119.6A Pending CN116982035A (zh) | 2021-03-05 | 2022-02-22 | 分布式数据系统中索引质量的测量与改进 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11704298B2 (zh) |
EP (1) | EP4302200A1 (zh) |
CN (1) | CN116982035A (zh) |
WO (1) | WO2022187016A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11704298B2 (en) * | 2021-03-05 | 2023-07-18 | Microsoft Technology Licensing, Llc | Measuring and improving index quality in a distributed data system |
US20230045103A1 (en) * | 2021-08-04 | 2023-02-09 | Sap Se | Data Re-Encryption For Software Applications |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8983920B2 (en) | 2011-08-30 | 2015-03-17 | Open Text S.A. | System and method of quality assessment of a search index |
US8935257B1 (en) * | 2014-03-17 | 2015-01-13 | Linkedin Corporation | Organizing, joining, and performing statistical calculations on massive sets of data |
US20160171071A1 (en) * | 2014-12-11 | 2016-06-16 | International Business Machines Corporation | Dynamic creation and configuration of partitioned index through analytics based on existing data population |
US10067969B2 (en) | 2015-05-29 | 2018-09-04 | Nuodb, Inc. | Table partitioning within distributed database systems |
US10135703B1 (en) | 2015-09-18 | 2018-11-20 | Amazon Technologies, Inc. | Generating creation performance metrics for a secondary index of a table |
US11176480B2 (en) * | 2016-04-21 | 2021-11-16 | Oracle International Corporation | System and method for partitioning models in a database |
US11423049B2 (en) * | 2020-05-11 | 2022-08-23 | Google Llc | Execution-time dynamic range partitioning transformations |
US11704298B2 (en) * | 2021-03-05 | 2023-07-18 | Microsoft Technology Licensing, Llc | Measuring and improving index quality in a distributed data system |
-
2021
- 2021-03-05 US US17/193,694 patent/US11704298B2/en active Active
-
2022
- 2022-02-22 WO PCT/US2022/017190 patent/WO2022187016A1/en active Application Filing
- 2022-02-22 EP EP22709485.1A patent/EP4302200A1/en active Pending
- 2022-02-22 CN CN202280019119.6A patent/CN116982035A/zh active Pending
-
2023
- 2023-05-30 US US18/325,765 patent/US20230325375A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220284004A1 (en) | 2022-09-08 |
EP4302200A1 (en) | 2024-01-10 |
US11704298B2 (en) | 2023-07-18 |
WO2022187016A1 (en) | 2022-09-09 |
US20230325375A1 (en) | 2023-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11789978B2 (en) | System and method for load, aggregate and batch calculation in one scan in a multidimensional database environment | |
US10019459B1 (en) | Distributed deduplication in a distributed system of hybrid storage and compute nodes | |
US20160350302A1 (en) | Dynamically splitting a range of a node in a distributed hash table | |
JP6025149B2 (ja) | データを管理するシステムおよび方法 | |
US8996478B2 (en) | Migrating deduplicated data | |
US20230325375A1 (en) | Measuring and improving index quality in a distrubuted data system | |
US9213782B2 (en) | Sorting multiple records of data using ranges of key values | |
EP2738665A1 (en) | Similarity analysis method, apparatus, and system | |
US9928276B2 (en) | Processing records in dynamic ranges | |
EP2937794B1 (en) | Method and system for archiving digital data | |
JP2004070403A (ja) | ファイル格納先ボリューム制御方法 | |
Chai et al. | LDC: a lower-level driven compaction method to optimize SSD-oriented key-value stores | |
CN102708183A (zh) | 数据压缩的方法和装置 | |
JP6269140B2 (ja) | アクセス制御プログラム、アクセス制御方法、およびアクセス制御装置 | |
US20180349422A1 (en) | Database management system, database server, and database management method | |
TW201926081A (zh) | 資料轉移系統及方法 | |
CN111949681A (zh) | 数据的聚合处理装置、方法和存储介质 | |
WO2024021488A1 (zh) | 一种基于分布式键值数据库的元数据存储方法及装置 | |
US10303655B1 (en) | Storage array compression based on the structure of the data being compressed | |
US10223008B1 (en) | Storage array sizing for compressed applications | |
WO2021082928A1 (zh) | 数据缩减的方法、装置、计算设备和存储介质 | |
Gao et al. | Compact, popularity-aware and adaptive hybrid data placement schemes for heterogeneous cloud storage | |
CN112764935B (zh) | 大数据处理方法、装置、电子设备及存储介质 | |
US9870152B2 (en) | Management system and management method for managing data units constituting schemas of a database | |
CN111813761A (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 |