ESGYNDB(EsgynDB怎么读)

针对MPP数据库数据倾斜问题的技术——Skew Buster

Skew Buster是一种针对MPP数据库运行时数据倾斜引起的性能问题的技术,可以保证在复杂查询的任意阶段,中间数据都可以平均分布,充分利用MPP系统的多节点的并发处理能力。

Skew Buster简介

当今随着信息技术,人工智能,和网络技术的不断发展,企业在生产经营过程中产生的历史数据非常容易就达到上百T,甚至P级别,因此依赖单机的scale up能力已经无法满足。MPP数据库能够线性地横向扩展,因而可以随着数据量的增加而不断扩容(scale out),相对于单机,SMP或者Share Disk方案,MPP是最适用于大数据时代的数据仓库解决构架。大多数的数据库软件厂商都提供基于MPP构架的数据仓库产品,用于为用户建立企业级数据仓库EDW(Enterprise Data Warehouse)。但在实践中, MPP构架的share nothing设计也存在一些其构架自身所带来的独特挑战。其中之一就是运行时数据倾斜问题。

在用户业务实践中,一般是由数据库管理员DBA为每一张表选择合适的分布键,将数据均匀地分布在集群的各个节点上。然而对于复杂的查询,查询过程需要分为多个阶段,比如在JOIN和GROUPBY的执行过程中,需要产生和使用一些较大的中间结果,或者说中间表,这些运行时产生的中间表很可能会出现数据倾斜,最常见的情形比如两表Join时,所使用的JOIN列不是DBA指定的分布键。多数MPP数据库都无法处理这样的查询,性能表现会急剧下降,无法到达用户满意的SLA。

采用专利的skew buster技术,EsgynDB可以保证在复杂查询的任意阶段,中间数据都可以平均分布,充分利用MPP系统的多节点的并发处理能力。因此EsgynDB可以高效地处理很多在其他MPP数据库中因为运行时数据倾斜而引起的性能问题。

Skew Buster的原理介绍

为了充分发挥MPP的优势,处理单个查询时必须并行地使用集群中的每一个节点和每一块磁盘。超大的数据集被平均分区到各个节点和磁盘,大型复杂查询因此可以被分割为成百上千的小查询,每一个小查询负责处理一小部分数据,这些小查询并发执行,从而提供极高的整体执行效率。

业界所有的MPP数据库都可以将表数据哈希平均分布到各个磁盘上。一般情况下,用于哈希分区的数据表列是由DBA精心选择的,以保证数据的平均分布。如果查询非常简单,比如简单的scan,或者按照分区键进行Join时,这种做法已经足够。但对于复杂查询,这并无法避免运行时的数据倾斜。

数据倾斜的原因很多,最常见的是“最常用数据”倾斜,当在某个列中,某一个或者几个值的重复次数特别多时,就会出现这类倾斜。在做表间的Join时,如果Join列不是用于平均分布数据的分区列,则执行计划需要使用join列对数据进行重新哈希分布,此时就产生了运行时倾斜。某些重复性特别高的值都被哈希至同一个节点/磁盘,这些节点成为执行的热点,从而极大地降低了整体查询执行的效率。

下图演示了一个倾斜的实例:

针对MPP数据库数据倾斜问题的技术——Skew Buster

假设参加Join的两张表采用128分区,分区函数采用以下公式表达:

Hash(v) = v mode 128

除了v=2以外的所有其他值均平均分布。节点2则成为热点。

EsgynDB优化器可以利用直方图发现v=2的倾斜情况,并采用如下策略生成一个合适的执行计划:

对于参与JOIN的外表,那些没有倾斜的数据行会被普通的哈希分区函数重新分布数据到所有节点;对于有倾斜的数据行(比如v=2),优化器将采用不同的分区函数来将它们平均分布到集群的所有节点,而不再使用哈希分布,有多种不同的平均分区方法,比如利用random,或者round robin的分区方式来分布这类倾斜的值。

对于内表,根据JOIN列,将那些在外表中存在倾斜的、相应的数据行广播到所有节点;内表的其他数据行则采用普通的哈希分布。这样,上例中的v=2将平均分布于所有的计算节点,消除了运行时倾斜。每个节点执行本地的Hash Join,最终将结果汇总,因为每个节点处理的数据量非常平均,从而得到了最佳的执行效率。

针对MPP数据库数据倾斜问题的技术——Skew Buster

采用Skew Buster技术,在用户的真实案例中,一个原本需要运行80分钟的查询减少到只需运行2分钟。

小结

Skew Buster技术需要一个易于扩展的优化器/执行器,以及精确的直方图作为基础和辅助。这正是EsgynDB SQL内核的特长。

数据库最初发端于1970年代,以处理在线交易为主要目的,其技术特点与后来发展的数据仓库技术有许多不同。EsgynDB拥有超过20年的研发历史,和其他主流数据库一样,都经过了多年的不断探索和发展,在原本最初OLTP技术的基础上不断添加OLAP需要的技术特性,比如本文所描述的Skew Buster技术。这一切都需要长期的技术和经验的积淀,而非简单的将不同产品进行叠加和组合。

此外EsgynDB同最新的Hadoop生态紧密结合,因此EsgynDB是目前业界最先进的、真正能够提供大数据HTAP解决方案的数据库产品。

易鲸捷简介

易鲸捷?是帮助全球企业充分发挥大数据潜力的大数据融合解决方案的领导者。凭借业内首个针对大数据的一体化SQL数据库,该公司正在引领企业努力满足终端和云端不断增长的数据管理需求。

网址:www.esgyn.com和www.esgyn.cn

本站部分内容由互联网用户自发贡献,该文观点仅代表作者本人,本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规等内容,请举报!一经查实,本站将立刻删除。
本站部分内容由互联网用户自发贡献,该文观点仅代表作者本人,本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如发现本站有涉嫌抄袭侵权/违法违规等内容,请<举报!一经查实,本站将立刻删除。