数据库表的增量群集制造技术

技术编号:27529285 阅读:23 留言:0更新日期:2021-03-03 11:03
公开了一种数据库表的自动群集。一种用于数据库表的自动群集的方法,包括:接收已经对表执行了数据修改任务的指示;以及确定该表是否被充分群集。该方法包括:响应于确定表没有被充分群集,选择表的要被重新群集的一个或更多个微分区。该方法包括:将一个或更多个微分区中的每个微分区分配给执行节点以被重新群集。集。集。

【技术实现步骤摘要】
【国外来华专利技术】数据库表的增量群集
[0001]相关申请的交叉引用
[0002]本申请要求在2018年7月17日提交的题为“SYSTEMS,METHODS,AND DEVICES FOR AUTOMATIC CLUSTERING OF A DATABASE TABLE,设备”的美国临时专利申请序列号62/699,528的优先权,该申请以其整体通过引用并入本文,包括但不限于以下具体出现的那些部分,以下引用除外:如果上述申请的任何部分与本申请不一致,则该申请取代上述申请。


[0003]本公开涉及数据库,并且更具体地涉及数据库的群集维护。
[0004]背景
[0005]数据库被广泛用于计算应用中的数据存储和访问。数据库存储的目标是以有组织的方式提供大量信息,以便可以对其进行访问、管理和更新。在数据库中,数据可以组织成行、列和表。不同的数据库存储系统可以用于存储不同类型的内容,诸如书目、全文、数字和/或图像内容。此外,在计算中,可以根据数据库的组织方法对不同的数据库系统进行分类。有许多不同类型的数据库,包括关系数据库、分布式数据库、云数据库、面向对象的数据库和其他数据库。
[0006]各种实体和公司都使用数据库来存储可能需要访问或分析的信息。在一个示例中,零售公司可以将所有销售交易的清单存储在数据库中。数据库可以包括关于交易何时发生、交易发生在哪里、交易的总成本、在交易中购买的所有物品的标识符和/或描述等信息。同一家零售公司还可能在同一数据库中存储员工信息,例如,该信息可能包括员工姓名、员工联系信息、员工工作历史记录、员工薪酬率等。根据该零售公司的需求,员工信息和交易信息可以存储在同一数据库的不同表中。当零售公司想要得知存储在数据库中的信息时,可能需要“查询”其数据库。该零售公司可能希望查找有关例如在特定商店工作的所有员工的姓名、在特定日期工作的所有员工、在特定时间范围内针对特定产品进行的所有交易等等的数据。
[0007]当零售公司要查询其数据库以从数据库中提取某些组织的信息时,将针对数据库数据执行查询语句。该查询根据一个或更多个查询谓词返回某些数据,这些谓词指示该查询应返回哪些信息。该查询从数据库中提取特定数据,并将该数据格式化为可读形式。可以用数据库理解的语言(诸如结构化查询语言(“SQL”))编写查询,以便数据库系统可以确定应定位哪些数据以及应如何返回数据。该查询可以请求存储在数据库内的任何相关信息。如果可以找到适当的数据来响应查询,则数据库有可能揭示复杂的趋势和活动。只能通过使用成功执行的查询来利用此功能。
[0008]然而,除上述示例外,零售公司可能具有存储大量信息的数据库表。对非常大的表执行查询可能具有挑战性,因为要扫描整个表需要大量的时间和计算资源。因此,可能希望在不扫描整个表的情况下执行查询。在一些实施方式中,可以通过仅扫描表的特定区段来执行查询,该特定区段包括用于响应查询的相关信息。如果表的特定区段井井有条,并且易于标识,则此实施方式最为有效。
[0009]鉴于前述内容,本文公开了用于自动数据库分区和群集的改善的系统、方法和设备。可以利用本公开的系统、方法和设备来提高数据库性能,尤其是提高数据库系统中的表扫描和查询执行性能。
[0010]附图简述
[0011]参考以下附图描述了本公开的非限制性和非穷举性的实施方式,其中,除非另外指明,否则贯穿各个视图,相似的附图标记指代相同或相似的部分。关于以下描述和附图,将更好地理解本公开的优点,其中:
[0012]图1A为根据本公开的实施例的经历排序和群集操作的数据库的示例表的框图;
[0013]图1B为根据本公开的实施例的经历增量群集操作的数据库的示例表的框图;
[0014]图2为根据本公开的实施例的分区选择算法的示例可视化;
[0015]图3为根据本公开的实施例的当表经历重新群集操作时分区选择算法的示例可视化;
[0016]图4为根据本公开实施例的当表经历重新群集操作时表的分区的示例可视化;
[0017]图5为根据本公开的实施例的用于表的自动增量重新群集的处理流程;
[0018]图6为根据本公开的实施例的基于摄取时间被解析成多个分区的示例表;
[0019]图7为根据本公开的实施例的数据库重新群集系统的框图;
[0020]图8为示出根据本公开的实施例的用于分区选择的处理流程的示意性框图;
[0021]图9为示出根据本公开的实施例的用于重新群集数据库表的处理流程的示意性框图;
[0022]图10为示出根据本公开的实施例的用于分区和重新群集数据库表的处理流程的示意性框图;
[0023]图11为示出根据本公开的实施例的群集表信息的示意性框图;
[0024]图12为示出根据本公开的实施例的用于表征数据库表的处理流程的示意性框图;
[0025]图13为根据本公开实施例的用于重新群集数据库表的方法的示意性流程图;
[0026]图14为示出根据本公开的实施例的用于数据库系统的处理平台的框图;
[0027]图15是示出根据本公开的实施例的计算服务管理器的部件的框图;
[0028]图16为根据本公开的实施例的执行平台的框图;
[0029]图17为根据本公开实施例的用于重新群集数据库表的方法的示意性流程图;以及
[0030]图18为根据本公开的实施例的示例计算设备的示意图。
[0031]详细描述
[0032]本文公开了用于数据库数据的自动分区和群集的系统、方法和设备。本文公开的系统、方法和设备通过将数据组织成多个分区并对数据进行群集以提高数据库的查询性能来提高数据库性能。
[0033]本公开的方法包括:接收已经对表执行了数据修改任务的指示;以及基于数据修改任务来确定表是否被充分群集。该方法包括:响应于确定表没有被充分群集,选择表的要被重新群集的一个或更多个微分区。该方法包括将一个或更多个微分区中的每个微分区分配给执行节点以被重新群集。
[0034]数据库被广泛用于计算应用中的数据存储和数据访问。数据库可以包括一个或更多个表,该表包括或引用可以使用查询进行读取、修改或删除的数据。然而,对于某些现代
数据仓库系统,执行查询可能会特别耗费时间和资源,因为现代数据仓库系统通常包括存储PB级数据的表。查询非常大的数据库和/或表可能需要扫描大量的数据。减少为数据库查询而扫描的数据量是数据组织和处理的主要挑战之一。对于如此庞大的数据量,在对表中存储的数据进行分析查询时,避免扫描整个表可能很重要。本公开的系统、方法和设备提供了用于通过对表数据进行自动分区和群集来提高表扫描的性能的装置。
[0035]在本领域中已知用于提高表扫描的性能的不同方法。一些系统在表上创建主索引和辅助索引,以促进对这些维度的有效扫描。这种实施方式的主要问题在于,辅助索引的维护成本可能昂贵,并且这些索引仅对定义它们的维度有利。其他系统创建单独的读取和写入储存器,其中读取储存器针对查询性能进行了优化。该实施方式的缺点在本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种方法,包括:接收已经对表执行了数据修改任务的指示;确定所述表是否被充分群集;响应于确定所述表没有被充分群集,选择所述表的要被重新群集的一个或更多个微分区;以及将所述一个或更多个微分区中的每个微分区分配给执行节点以被重新群集。2.根据权利要求1所述的方法,其中,确定所述表是否被充分群集包括评估所述数据修改任务以确定是否已将足够数量的行添加到所述表中、已从所述表中删除足够数量的行和/或已在所述表中修改足够数量的行以必须重新群集所述表。3.根据权利要求1所述的方法,其中,选择所述表的要被重新群集的一个或更多个微分区包括:标识对于群集关键字列具有相等的最小值和最大值的恒定微分区;以及从考虑中移除所述恒定的微分区,使得所述恒定的微分区不被包括在要被重新群集的所述一个或更多个微分区中。4.根据权利要求1所述的方法,其中,选择所述表的要被重新群集的一个或更多个微分区包括:为所述表构造刺入计数数组;为所述刺入计数数组中的每个微分区提取最小端点和最大端点;计算所述最小端点和最大端点中的每者的统计信息;以及在所述刺入计数数组中标识比预定义阈值高的一个或更多个峰。5.根据权利要求4所述的方法,其中,选择所述表的要被重新群集的一个或更多个微分区还包括:基于高度对所述刺入计数数组中的所述一个或更多个峰中的每个峰进行排序;标识所述一个或更多个峰中的每个峰内的重叠的微分区;以及基于宽度对所述重叠的微分区进行排序。6.根据权利要求5所述的方法,其中,选择所述表的要被重新群集的一个或更多个微分区还包括基于哪些微分区在所述一个或更多个峰的最高峰内并且还基于所述重叠的微分区中的哪个重叠的微分区具有最宽的宽度进行选择。7.根据权利要求1所述的方法,还包括:定义用于分配处理资源以执行重新群集操作的预算,并且其中,所述确定所述表是否被充分群集至少部分地基于所述预算。8.根据权利要求1所述的方法,还包括将所述表的要被重新群集的一个或更多个微分区划分为一个或更多个批,每个批包括一组要被重新群集的微分区。9.根据权利要求1所述的方法,其中,选择所述表的要被重新群集的一个或更多个微分区包括:至少基于所述表的大小来确定所述表的最大级别数;将所述表分成多个级别;选择每个级别内的微分区的宏批,其中,所述宏批以单个峰为中心并且包括定义的边界;以及从所述宏批中选择微分区。
10.根据权利要求1所述的方法,其中,所述数据修改任务包括:将新的微分区摄取到所述表中,并且其中,确定所述表是否被充分地群集包括:检索所述表的级别信息;标识在所述表中处于较低级别的微分区的比例;确定是否有高比例的微分区处于所述较低级别;响应于确定高比例的微分区不处于所述较低级别,进入将不执行重新群集操作的稳定模式;以及响应于确定高比例的微分区处于所述较低级别,进入将执行重新群集操作的追赶模式。11.一种系统,包括:计算服务管理器,所述计算服务管理器用于管理基于云的数据库平台的内部操作;共同存储数据库数据的多个共享存储设备,其中,所述多个共享存储设备独立于所述计算服务管理器;以及包括多个执行节点的执行平台,其中,所述执行平台独立于所述多个共享存储设备和所述计算服务管理器;其中,所述计算服务管理器被配置为:接收所述执行平台的一个或更多个执行节点已经在所述数据库的表上执行了数据修改任务的指示;确定所述表是否被充分群集;响应于确定所述表没有被充分群集,选择所述表的要被重新群集的一个或更多个微分区;以及将所述一个或更多个微分区中的每个微分区分配给执行节点以被重新群集。12.根据权利要求11所述的系统,其中,所述计算服务管理器被配置为通过评估所述数据修改任务以确定是否已添加足够数量的行、已删除足够数量的行和/或已修改足够数量的行以必须重新群集所述表来确定所述表是否已充分群集。13.根据权利要求11所述的系统,其中,所述计算服务管理器被配置为通过以下方式选择所述表的要重新群集的一个或更多个微分区:标识对于群集关键字列具有相等的最小值和最大值的恒定微分区;以及从考虑中移除所述恒定的微分区,...

【专利技术属性】
技术研发人员:闫家奇蒂埃里
申请(专利权)人:斯诺弗雷克公司
类型:发明
国别省市:

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

1