公司博客上

Databricks创造官方数据仓库性能记录

通过雷诺鑫而且Mostafa身

2021年11月2日 公司博客上

分享这篇文章

今天,我们自豪地宣布砖的SQL已经设定了新的100TB TPC-DS世界纪录,是数据仓库的黄金标准性能基准。Databricks SQL的表现比之前的记录高出2.2倍.与其他大多数基准新闻不同的是,这一结果经过了TPC委员会的正式审计和审查。

这些结果得到了巴塞罗那超级计算中心的研究的证实,该中心经常在流行的数据仓库上运行TPC-DS衍生的基准测试。他们的最新研究对Databricks和Snowflake进行了基准测试,发现Databricks的速度快2.7倍,在性价比方面好12倍.这个结果验证了这样一个论点:随着生产中数据大小的增加,雪花这样的数据仓库变得非常昂贵。

Databricks一直在数据湖上快速开发全面的数据仓库功能,在一个被称为“数据架构”的数据架构中提供了两个世界的最佳功能数据湖屋.我们在2020年11月宣布了Databricks SQL的全套数据仓库功能。从那时起,一个悬而未决的问题就是基于湖畔小屋的开放架构能否提供经典数据仓库的性能、速度和成本。这一结果毫无疑问地证明了湖屋建筑是可能实现的。

不仅仅是分享结果,我们想借此机会与你们分享我们如何实现这一水平的业绩以及为此付出的努力。但我们将从结果开始:

TPC-DS世界纪录

Databricks SQL交付32,941,245 QphDS @ 100TB.这打破了此前由阿里巴巴定制系统保持的世界纪录14,861,137 QphDS @ 100TB乘以2.2x。(阿里巴巴拥有一个令人印象深刻的系统,支持全球最大的电子商务平台)。bob体育客户端下载Databricks SQL不仅大大打破了之前的记录,还将系统的总成本降低了10%(基于已公布的上市价格,不含任何折扣)。

如果你不知道QphDS是什么意思,这很正常。(如果不看公式,我们也不会。)QphDS是TPC-DS的主要指标,它代表了工作负载组合的性能,包括(1)加载数据集,(2)处理一系列查询(功率测试),(3)处理几个并发查询流(吞吐量测试),以及(4)运行插入和删除数据的数据维护功能。

前面提到的结论得到了巴塞罗那超级计算中心(BSC)的研究团队的进一步支持,他们最近运行了一个来自TPC-DS的不同基准测试,比较了Databricks SQL和Snowflake,发现Databricks SQL比类似大小的Snowflake设置快2.7倍。

图1:巴塞罗那超级计算中心TPC-DS 100TB Power Run测试的运行时间。
图1:巴塞罗那超级计算中心TPC-DS 100TB Power Run测试的运行时间。

图2:巴塞罗那超级计算中心TPC-DS 100TB Power Run测试的价格/性能。
图2:巴塞罗那超级计算中心TPC-DS 100TB Power Run测试的价格/性能。

什么是TPC-DS?

TPC-DS是由事务处理性能委员会(Transaction Processing Performance Council, TPC)定义的数据仓库基准。TPC是一个非营利性组织,由数据库社区在80年代末创立,专注于创建模拟现实场景的基准测试,因此可以客观地用来衡量数据库系统的性能。TPC在数据库领域产生了深远的影响,在Oracle、Microsoft和IBM等老牌供应商之间进行了长达十年的“基准测试战争”,推动了该领域的发展。

TPC-DS中的“DS”代表“决策支持”。它包括99个不同复杂度的查询,从非常简单的聚合到复杂的模式挖掘。这是一个相对较新的基准(始于2000年代中期),以反映分析日益增长的复杂性。在过去十年左右的时间里,TPC-DS已经成为事实上的标准数据仓库基准,几乎被所有供应商采用。

然而,由于其复杂性,许多数据仓库系统,甚至是由最成熟的供应商构建的系统,都对官方基准进行了调整,以便他们自己的系统能够表现良好。(一些常见的调整包括删除某些SQL特性,如rollup或更改数据分布以消除倾斜)。这就是为什么尽管互联网上关于TPC-DS的页面超过400万页,但官方的TPC-DS基准测试却很少提交的原因之一。这些调整表面上也解释了为什么大多数供应商根据自己的基准测试似乎击败了所有其他供应商。

我们是怎么做到的?

如前所述,Databricks SQL是否有可能在SQL性能上胜过数据仓库一直是一个悬而未决的问题。大多数挑战可以归结为以下四个问题:

  1. 数据仓库利用了专有的数据格式,因此可以快速地发展它们,而Databricks(基于Lakehouse)依赖于变化不那么快的开放格式(如Apache Parquet和Delta Lake)。因此,edw将具有固有的优势。
  2. 出色的SQL性能需要MPP(大规模并行处理)架构,而Databricks和Apache Spark不是MPP。
  3. 吞吐量和延迟之间的经典权衡表明,系统可以很好地处理大型查询(以吞吐量为中心)或小型查询(以延迟为中心),但不能同时处理两者。由于Databricks专注于大型查询,我们不得不在小型查询中表现不佳。
  4. 即使这是可能的,传统的智慧是,建立一个数据仓库系统需要十年或更长时间。不可能这么快就取得进展。

在接下来的文章中,我们将逐一讨论它们。

私有和开放的数据格式

的关键原则之一Lakehouse架构是开放存储格式。“开放”不仅避免了厂商的锁定,而且使开发工具的生态系统能够独立于厂商。开放格式的主要好处之一是标准化。这种标准化的结果是,大多数企业数据位于开放数据湖中,Apache Parquet已成为存储数据的事实上的标准。通过将数据仓库级性能引入开放格式,我们希望最大限度地减少数据移动,并简化BI和AI工作负载的数据架构。

对“开放”的一个明显攻击是,开放格式很难改变,因此也很难改进。虽然在理论上这个论点是有道理的,但在实践中并不准确。

首先,开放格式的发展是完全有可能的。Parquet是最流行的大型数据存储开放格式改进的多次迭代.这是我们介绍的主要动机之一三角洲湖是引入在Parquet层难以实现的额外功能。Delta Lake为Parquet带来了额外的索引和统计数据。

其次,当将数据从对象存储加载到本地NVMe ssd时,Databricks系统自动将原始Delta Lake和Parquet数据转换为更有效的格式(无需用户干预)。这为进一步优化提供了机会。

也就是说,对于大多数数据仓库工作负载,与数据仓库使用的专有格式相比,Delta Lake和Parquet已经提供了足够的优化。对于这些工作负载,优化机会主要来自更快地处理查询的能力,而不是更快地扫描更多数据。事实上,对于TPC-DS,查询以更优化的内部格式缓存的数据只比查询S3中的冷数据快10%(我们发现对于我们测试的数据仓库和Databricks都是如此)。

MPP架构

一个常见的误解是,数据仓库采用的MPP体系结构对SQL性能很好,而Databricks没有。MPP体系结构指的是利用多个节点处理单个查询的能力。这正是Databricks SQL的架构。它不是基于Apache Spark,而是光子它完全重写了一个引擎,用c++从头构建,适用于现代SIMD硬件,并进行大量并行查询处理。光子因此是一个MPP引擎。

吞吐量和延迟是平衡的

吞吐量与延迟是计算机系统中的经典权衡,这意味着系统不能同时获得高吞吐量和低延迟。如果一个设计倾向于吞吐量(例如通过批处理数据),它将不得不牺牲延迟。在数据系统上下文中,这意味着系统不能同时有效地处理大型查询和小型查询。

我们不否认这种权衡的存在。事实上,我们经常在技术设计文档中讨论它。然而,目前最先进的系统,包括我们自己的和所有流行的仓库,在吞吐量和延迟方面都远远没有达到最佳前沿。

因此,完全有可能提出一种新的设计和实现,同时提高吞吐量和延迟。这正是我们在过去两年中构建几乎所有关键使能技术的方式:Photon、Delta Lake和许多其他前沿技术都提高了大型和小型查询的性能,将前沿技术推向了一个新的性能记录。

时间和注意力

最后,传统观点认为数据库系统至少需要十年左右的时间才能成熟。考虑到Databricks最近对Lakehouse的关注(以支持SQL工作负载),要提高SQL的性能需要付出额外的努力。这是正确的,但让我们解释一下我们是如何比人们预期的更快地做到这一点的。

首先,这一投资并不是一两年前才开始的。自Databricks成立以来,我们一直在投资各种基础技术,以支持SQL工作负载,这也将有利于Databricks上的AI工作负载。这包括一个完整的基于成本的查询优化器、一个本地向量化执行引擎和各种功能,如窗口函数。由于Spark的DataFrame API可以映射到SQL引擎,Databricks上的绝大多数工作负载都是通过这些组件运行的,因此这些组件已经经过了多年的测试和优化。我们还没有强调SQL工作负载。对Lakehouse的定位变化是最近发生的,这是由于我们的客户希望简化他们的数据架构。

其次,SaaS模式加快了软件开发周期。在过去,大多数供应商每年都有一个发布周期,然后是另一个多年的周期,供客户安装和采用软件。在SaaS中,我们的工程团队可以提出一个新的设计,实现它,并在几天内将其发布给客户的子集。这种缩短的开发周期使团队能够快速获得反馈并更快地创新。

第三,Databricks可以在领导力带宽和资本方面为这个问题带来更多的关注。过去,构建新数据仓库系统的尝试都是由初创公司或大公司内的新团队完成的。从来没有一家数据库初创公司能像Databricks(融资超过35亿美元)那样吸引到所需的人才。在一家大公司里,一项新的努力只是另一项努力,不会得到领导层的充分关注。

我们在这里有一个独特的情况:我们最初专注于建立我们的业务,而不是数据仓库,而是相关领域(数据科学和人工智能),这些领域有许多共同的技术问题。最初的成功使我们能够资助历史上最积极的SQL团队建设;在很短的时间内,我们组建了一个具有广泛数据仓库背景的团队,这一壮举将花费许多其他公司大约十年的时间。他们中有一些最成功的数据系统的首席工程师和设计师,包括亚马逊Redshift;谷歌的BigQuery、F1(谷歌的内部数据仓库系统)、Procella (Youtube的内部数据仓库系统);甲骨文;IBM DB2;和Microsoft SQL Server。

总而言之,构建出色的SQL性能需要多年的时间。我们不仅利用我们独特的环境加速了这一过程,而且我们在几年前就开始了,尽管我们没有使用扩音器来宣传这个计划。

真实的客户工作负载

我们很高兴看到这些基准测试结果得到了客户的验证。超过5000个全球组织已经利用Databricks Lakehouse平台解决了一些世界上最棘手的问题。bob体育客户端下载例如:

  • 面包金融是一个技术驱动的支付平台,拥有大数据用例,如财务报告、欺诈检测、bob体育客户端下载信用风险、损失估计和全漏斗推荐引擎。在Databricks Lakehouse平台上,他们能bob体育客户端下载够从夜间的批处理作业转移到接近实时的输入,并将数据处理时间减少了90%。此外,该数据平台可以以1.5倍的成本扩bob体育客户端下载展到140倍的数据量。
  • 壳牌正在使用我们的lakehouse平台,使数百名bob体育客户端下载数据分析师能够使用标准BI工具对pb级数据集执行快速查询,他们认为这是“游戏规则改变者”。
  • Regeneron正在加速药物靶点识别,通过将整个数据集的查询时间从30分钟缩短到3秒,为计算生物学家提供更快的见解——提高了600倍。

总结

Databricks SQL构建在Lakehouse架构之上,是市场上最快的数据仓库,并提供最佳的价格/性能。现在,只要摄入新数据,就可以以较低的延迟在所有数据上获得出色的性能,而不必将数据导出到不同的系统。

这证明了Lakehouse的愿景,即为数据湖带来世界级的数据仓库性能。当然,我们构建的不仅仅是一个数据仓库。Lakehouse架构提供了覆盖所有数据工作负载的能力,从仓库到数据科学和机器学习。

但我们还没有结束。我们已经组建了市场上最好的团队,他们正在努力实现下一个性能突破。除了性能,我们还致力于在易用性和治理方面的大量改进。期待来年我们有更多消息。

TPC不审核或验证从TPC- ds衍生的基准测试结果,也不认为衍生的基准测试结果与公布的TPC- ds结果具有可比性。

免费试用Databricks

相关的帖子

看到所有公司博客上的帖子