分布式数据库作业数据倾斜检测制造技术

技术编号:18611552 阅读:19 留言:0更新日期:2018-08-04 23:17
一种用于识别数据倾斜是否导致了分布式数据库的查询的映射阶段和/或化简阶段中的延迟的系统和方法。该系统和方法识别与数据库查询有关的各种度量的值。这些度量包括映射阶段和化简阶段持续时间和各种有关的度量。该系统和方法收集多个查询的统计数据以确定度量和映射阶段和化简阶段持续时间之间的相关性水平。基于统计数据,该系统和方法确定查询/响应的映射和化简阶段中的一个或两个是否耗费比期望的时间更长的时间。如果持续时间比期望的更长,则系统将标识延迟是由数据倾斜导致的,并且通知查询的发起者。

【技术实现步骤摘要】
【国外来华专利技术】分布式数据库作业数据倾斜检测
本公开的实施例总体涉及数据处理,并且更具体地但并非限制性地涉及在数据库查询期间延迟来源的确定。
技术介绍
包括某些SQL数据库、Hadoop数据库(例如的数据库)等跨众多计算机分布的数据库接收查询,对于某些此类数据库,针对分布在不同的服务器上的数据集的不同部分并行执行这些查询,然后向查询的发起者和/或一个或多个其他指定的位置返回响应。当被查询的数据均匀地分布在多个服务器中时,对查询的响应通常返回得最快。在所有其他情况相同的情况下,当被查询的数据集完全集中或大部分集中于少数的服务器(或一个服务器)上时,某些分布式数据库耗费较长的时间来响应查询。因此,这种数据的集中(有时称为“数据倾斜”)可能会导致长时间延迟。然而,所有其他的情况并不总是相同。可能存在各种其他的原因导致对查询的响应被长时间延迟,诸如资源拥塞。即,分布式数据库可能同时接收大量的查询。在这种情况下,即使是对分布良好的数据的查询也将耗费很长时间。发生这种情况是因为各种查询是由各种用户和用户组设计和发送到数据库服务器的。在用户中通常很少甚至没有协调来保证系统接收稳定的查询供应,而不是在一些时间段期间(例如,工作日从上午9点到下午5点)接收很多查询,而在其他时间(例如,周末凌晨2点)少有查询。尽管某些数据库系统基于进入的查询重新分配数据,但在某些情况下,这并非必要,即使当用于特定查询的数据是严重倾斜的。例如,某些查询可能相当简单和/或在很少的数据上执行,使得即使当该数据大比例集中在一个服务器上时,只要数据库(或针对该查询的数据所集中的特定服务器)不拥塞,响应就会在可接受的时间量内来到。也就是说,即使在存在严重的数据倾斜和长延迟的情况下,也可能不是严重的数据倾斜导致了长延迟。在本文中,数据库服务器的查询的执行和响应的返回可以被称为“作业”,并且在提交查询和接收响应之间的延迟可以被称为“作业延迟”。目前,很难知道作业延迟是由数据倾斜问题导致的还是由拥塞问题导致的。这对分布式数据库的用户来说是一个问题,因为数据倾斜问题将导致他们的作业运行极其缓慢,这不仅会影响数据库的使用的业务合同,还会由于资源争夺而对整个数据库的性能造成冲击。因此,需要一种用户友好的工具来确定长时间作业延迟的原因。附图说明各种所附附图仅示出了本公开的示例实施例,并且不可以被认为限制其范围。图1是示出根据一些示例实施例的联网系统的框图。图2是数据库查询执行系统的模块图。图3概念性地示出了根据一些实施例的用于收集在识别分布式数据库中的作业延迟的原因中使用的度量值的方法。图4概念性地示出了根据一些实施例的用于确定作业的特定阶段中的数据倾斜的方法。图5是示出根据一些示例实施例的可以安装在机器上的软件架构的示例的框图。图6示出了根据示例实施例的具有计算机系统的形式的机器的示图表示,在所述计算机系统中,可以执行一组指令以使所述机器执行本文讨论的方法中的任意一个或多个方法。本文提供的标题仅为方便起见,而不一定影响所使用的术语的范围或含义。具体实施方式以下描述包括体现本公开的示意性实施例的系统、方法、技术、指令序列和计算机器程序产品。在以下描述中,为了解释的目的,阐述了很多细节以提供对本专利技术主题的各种实施例的理解。然而,本领域技术人员将显而易见的是,本专利技术主题的实施例可以在没有这些具体细节的情况下实施。一般地,不必详细示出众所周知的指令实例、协议、结构和技术。一些实施例提供了一种延迟识别系统和方法,其通过通知用户在分布式数据库的查询和响应期间的延迟(“作业延迟”)的原因来提高数据库检索的效率。基于对与一个或多个作业有关的多个度量中的每个度量的多个统计特征进行分析来确定延迟的原因。一些实施例的测量的度量包括与作业的映射阶段、作业的混洗阶段(shufflephase)和作业的化简阶段(reductionphase)有关的测量。映射阶段将要查询的数据过滤并分类到多个队列中。例如,映射阶段可以按照公司名称将销售订单(对各公司)分类为一个名字一个队列,每个队列包含相对应的公司的订单。混洗阶段(有时称为“混洗和排序”阶段)对来自于映射阶段的数据进行准备,并将数据移动到将执行化简阶段的操作的节点处。当映射阶段完成时,按照在多个数据库服务器当中划分的键值对映射阶段所识别的数据进行排序,然后将数据写入到指定的数据库服务器。在上面的示例中,可以按照订单号对每个队列中的数据进行排序,然后将每个队列的数据(此处,为每个公司的名称)和每个队列发送到它自己的服务器以用于化简阶段。在某些情况下,这是发生数据倾斜的一个契机,因为根据公司盲目划分的查询可能会在少量的公司产生大部分销售订单的情况下造成数据倾斜。化简阶段对作业进行总结。继续上面的示例,化简阶段可以对每个队列中的订单的数量进行计数,识别每个公司做了多少订单。根据一些实施例的系统测量以下度量中的一些或全部,有时称为“计数器”,(在下面做进一步解释):1)映射阶段持续时间;2)化简阶段持续时间;3)映射阶段所读取的记录的计数;4)化简阶段所读取的记录的计数;5)合并器所读取的记录的计数;6)“溢出的”映射记录的计数;7)化简器所读取的混洗记录的计数,8)在映射阶段读取到本地文件系统的字节数的计数;9)在化简阶段读取到本地文件系统的字节数的计数;10)在映射阶段读取到分布式文件系统(例如,分布式文件系统(HDFS))的字节数的计数;和11)在化简阶段读取到分布式文件系统(例如,HDFS)的字节数的计数。根据一些实施例的系统基于对在特定时间段(关于时间段的更多详情,参见下文)中执行的多个作业的测量度量,来(针对每个度量)确定以下统计数据中的一些或全部:1)度量的平均值(例如,均值),2)度量的最大值,3)度量的最小值,和4)特定的百分点值(例如,第50个百分点的值、第95个百分点的值等);5)度量的值的分布;6)度量的最大z分数;7)作业的每个度量的前N个(其中N是所选整数)值;和8)度量与作业的映射持续时间/化简持续时间之间的相关性。这些统计数据可以在与被分析作业的时间段有关的选定时间段中收集。一些实施例允许在被分析作业的时间和正常统计数据之间的一个或多个选定的关系。在一些实施例中,这些关系可以包括:1)在对作业进行统计数据的分析期间中的某个时间开始的时间段;2)以将要分析的作业的开始作为结束的时间段;3)包括被分析的作业之前和之后两者的时间的时间段;4)可比较的时间(例如,对于在星期一的上午9点到上午10点之间运行的作业,可以是对于不同星期的一个或多个星期一的该时段期间运行的作业的汇总统计数据);和5)由用户选定的时间。例如,如果在选定的时间段内,在集群上运行了一百个作业,其映射阶段持续时间平滑地从1秒变化到100秒(即,1、2、3、……98、99、100),则汇总统计数据将具有:1)平均映射阶段持续时间为50.5秒;2)最小映射阶段持续时间为1秒;3)最大映射阶段持续时间为100秒;和4)映射阶段持续时间的第95个百分点的值为95秒。上面所提及的度量的值的分布是度量值在数据库服务器集群上运行的作业上的分布。特定度量的相关性是特定度量和相应的阶段的持续时间之间的相关性。例如,如果增加映射阶段中所读取的记录的数量总是导致映射阶段持续本文档来自技高网...

【技术保护点】
1.一种方法,包括:针对所选择的对分布式数据库的多个查询中的每个查询:确定查询的阶段的持续时间;确定与所述阶段的持续时间相关的度量的值;以及确定所述阶段的持续时间与所述多个查询中的每个查询的对应阶段的平均持续时间之间的相对差值;基于所确定的持续时间和所确定的值,计算所述度量和所述阶段的持续时间之间的相关性水平以及所述平均持续时间和所述阶段的持续时间之间的最大相对差值;针对特定查询,当所述相关性水平超出阈值且所述相对差值超出所述最大相对差值的阈值比例时,将所述特定查询分类为在所述分布式数据库中导致数据倾斜;以及显示将所述特定查询标识为在分布式数据库中导致数据倾斜的消息。

【技术特征摘要】
【国外来华专利技术】1.一种方法,包括:针对所选择的对分布式数据库的多个查询中的每个查询:确定查询的阶段的持续时间;确定与所述阶段的持续时间相关的度量的值;以及确定所述阶段的持续时间与所述多个查询中的每个查询的对应阶段的平均持续时间之间的相对差值;基于所确定的持续时间和所确定的值,计算所述度量和所述阶段的持续时间之间的相关性水平以及所述平均持续时间和所述阶段的持续时间之间的最大相对差值;针对特定查询,当所述相关性水平超出阈值且所述相对差值超出所述最大相对差值的阈值比例时,将所述特定查询分类为在所述分布式数据库中导致数据倾斜;以及显示将所述特定查询标识为在分布式数据库中导致数据倾斜的消息。2.根据权利要求1所述的方法,其中,所述阶段为映射阶段。3.根据权利要求2所述的方法,其中,所述查询的度量的值为在所述查询的映射阶段读取了多少条记录的计数。4.根据权利要求1所述的方法,其中,所述阶段为化简阶段。5.根据权利要求4所述的方法,其中,所述查询的度量的值为在所述查询的化简阶段读取了多少字节的计数。6.根据权利要求1所述的方法,其中,确定阶段的相对差值包括:确定所述多个查询中的每个查询的对应阶段的标准偏差,并且用所述阶段的持续时间和所述多个查询中的每个查询的对应阶段的平均持续时间之间的绝对差值除以所述标准偏差。7.根据权利要求1所述的方法,其中,所选择的每个查询是基于所具有的所述度量的值位于所定义的值的范围内而选择的。8.一种系统,包括一组处理单元和非暂时性机器可读介质,所述非暂时性机器可读介质存储有指令集,当所述指令集被至少一个所述处理单元执行时:针对所选择的对分布式数据库的多个查询中的每个查询:确定查询的阶段的持续时间;确定与所述阶段的持续时间相关的度量的值;以及确定所述阶段的持续时间与所述多个查询中的每个查询的对应阶段的平均持续时间之间的相对差值;基于所确定的持续时间和所确定的值,计算所述度量和所述阶段的持续时间之间的相关性水平以及所述平均持续时间和所述阶段的持续时间之间的最大相对差值;针对特定查询,当所述相关性水平超出阈值且所述相对差值超出所述最大相对差值的阈值比例时,将所述特定查询分类为在所述分布式数据库中导致数据倾斜;以及显示将所述特定...

【专利技术属性】
技术研发人员:陈坦陈昊张勇孙立斌李鑫
申请(专利权)人:电子湾有限公司
类型:发明
国别省市:美国,US

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

1