博客
2020云数据仓库基准:红移,雪花,presto和bigquery
Fivetran.
博客
2020云数据仓库基准:红移,雪花,presto和bigquery

2020云数据仓库基准:红移,雪花,presto和bigquery

我们最新的基准测试比较BigQuery,Presto,Redshift和Snowflake的价格,性能和差异化功能。

经过 乔治弗雷泽,2020年9月12日

如果您有兴趣下载此报告,则可以这样做这里

在过去的两年里,主要云数据仓库一直是近来的性能。红移和BigQuery都演变了他们的用户体验,更类似于雪花。市场正在融合两个关键原则:计算和存储的分离,以及可以“钉”处理间歇性工作量的平衡定价。

Fivetran是一个数据流水线,它将数据与应用程序,数据库和文件存储中的数据同步到客户的数据仓库中。我们最常被问到的问题是,“我应该选择哪些数据仓库?”为了更好地回答这个问题,我们已经执行了一个基准比较了四个最受欢迎的数据仓库的速度和成本:

  • 亚马逊红移

  • 雪花

  • 普拉斯托

  • 谷歌bigquery.

基准都是关于制作选择的:我将使用什么样的数据?多少?什么样的疑问?如何使这些选择很重要:改变数据的形状或查询的结构,最快的仓库可能成为最慢的仓库。我们试图以代表典型的方式制作这些选择Fivetran.用户,因此结果对使用Fivetran的公司有用。

典型的Fivetran.用户可能将Salesforce,Jira,Marketo,AdWords及其生产Oracle数据库同步到数据仓库中。这些数据源不是很大:典型的源将包含数百至数百个千兆字节。它们很复杂:它们包含普通化模式中的数百个表,我们的客户编写复杂的SQL查询以总结此数据。

此基准测试的源代码可用https://github.com/fivetran/benchmark.

我们查询了哪些数据?

我们在1TB刻度上生成了TPC-DS [1]数据。TPC-DS在雪花架构中有24个桌子;表格表示虚拟零售商的Web,目录和商店销售。最大的事实表有40亿行[2]。

我们跑了什么查询?

我们在2月在99次TPC-DS查询[3]。2020年。这些查询很复杂:他们有很多加入,聚合和子查询。我们只运行一次,只能防止仓库缓存以前的结果。

我们是如何配置仓库的?

我们将每个仓库设置为100GB和1TB秤的小型和大配置:

配置 成本/小时[4]
红移 5x ra3.4xlarge. 16.30美元
雪花[5] 大的 $ 16.00
普拉斯托[6] 4x n2-highmem-32 $ 8.02
beyquery.[7] 平价600插槽 $ 16.44

我们是如何调整仓库​​的?

这些数据仓库每个都提供Sort Keys,群集密钥和日期分区等高级功能。我们选择不使用此基准测试中的任何功能[7]。我们确实在红移中应用了列压缩编码;雪花和bigquery自动应用压缩;presto在hdfs中使用了orc文件,这是一种压缩格式

2020数据仓库基准

比较红移,雪花,presto,bigquery

下载报告

结果

所有仓库都具有出色的执行速度,适用于临时,交互式查询。为了计算成本,我们将运行时间乘以配置的每秒成本[8]。

仓库如何不同?

每个仓库都有一个独特的用户体验和定价模型。我们可以沿着频谱放置它们:

在频谱的“自托管”结束上是presto,用户负责供应服务器和Presto集群的详细配置。Presto是开源的,与此基准中的其他商业系统不同,这对某些用户很重要。

预先ra3 redshift有点完全托管,但仍然要求用户配置具有固定数量的内存,计算和存储的单个计算群集。通过将计算从存储分离,RedShift RA3将较近用户体验更接近雪花的用户体验。

雪花是几乎无服务器的体验:用户只配置计算群集的大小和数量。每个计算群集都看到相同的数据,并且可以在几秒钟内创建和删除计算群集。雪花有几个定价层与不同的特征有关;我们的计算基于最便宜的层,“标准”。如果您希望为工作量使用“企业”或“企业”或“业务关键”,您的成本将高出1.5倍或2倍。

BigQuery平衡速率类似于雪花,除了没有计算群集的概念,只是一个可配置的“计算插槽”。BigQuery按需是一个纯粹的无服务器模型,其中用户一次提交一个查询并每次查询付款。根据您的工作量的性质,按需模式可能更昂贵,或更便宜。使用24/7使用计算容量的“稳定”工作负载将在平衡模式下更便宜。包含长期闲置或较低利用率的周期性大查询的“尖峰”工作负载将在按需模式下更便宜。

为什么我们的结果与以前的基准不同?

Gigaom的云数据仓库性能基准

2019年4月,Gigaom在BigQuery,Redshift,Snowflake和Azure SQL数据仓库(Azure Synapse)上运行了TPC-DS查询的版本。此基准由微软赞助。它们使用30x更多数据(30 TB与1 TB刻度)。他们为不同的系统配置了不同尺寸的集群,并观察到比我们所做的更慢的运行时间:

系统 集群成本 地理时间
Azure SQL DW. $ 181 / hr 15.60
红移 $ 144 / hr 18.45
雪花 $ 128 / hr 28.40
beyquery. 55美元/小时 101.22

考虑到他们的集群更大,而他们的数据比我们的数据大30倍,这很奇怪。

亚马逊的红移与BigQuery基准

2016年10月,亚马逊在BigQuery和Redshift上运行了TPC-DS查询的版本。亚马逊报告说,Redshift是6倍的速度更快,BigQuery执行时间通常大于一分钟。他们的基准和我们的主要差异是:

  • 它们使用了10倍较大的数据集(10TB而不是1TB)和2倍更大的红班群(38.40美元/小时与19.20美元/小时)。

  • 他们使用Sort和Dist键调整仓库,而我们没有。

  • Bigquery Standard-SQL于2016年10月仍处于Beta;当我们运行这个基准时,它可能已经更快地获得了更快的速度。

声称自己产品的供应商的基准是最好的,应该用一粒盐进行。亚马逊博客文章中没有指定有许多细节。例如,他们使用了一个巨大的红移群集 - 他们是否将所有内存分配给单个用户,使得这款基准测试完全超快,即使这不是一个现实的配置?我们不知道。如果AWS将发布重现基准测试所需的代码,那将是伟大的,因此我们可以评估它的现状程度。

潜望镜的红移与雪花与BigQuery基准

此外,2016年10月,潜望镜数据使用每小时聚合查询的三个变体比较红移,雪花和BigQuery,将10亿行事实表加入小维度表。他们发现红移与Bigquery的速度大致相同,但雪花较慢。他们的基准和我们的主要差异是:

  • 它们多次耗尽了相同的查询,这消除了红移的慢编译时间。

  • 他们的查询比我们的TPC-DS查询更简单。

用“简单”查询进行基准测试的问题是,每个仓库都会在此测试中做得很好;如果雪花是一个简单的查询快速和redshift真的,那并不重要,真的很快,真的很快。重要的是你是否能够足够快地完成艰难的疑问。

潜望镜也比较成本,但它们使用了一种不同的方法来计算每查询的成本。像我们一样,他们看着他们的客户的实际使用量数据,而不是使用时间闲置的百分比,他们看每小时查询数量。他们确定了大多数(但不是全部)潜望魄的客户会发现红移更便宜,但这并不是一个巨大的差异。

Mark Litwintschik的11亿出租车乘坐基准

Mark Litwintshik基准Bigquery于2016年4月和Redshift于2016年6月。他跑了四个简单的查询,对阵单一的桌子,带有11亿行。他发现BigQuery与大约2x大的红移集群比我们的速度大约相同(41美元/小时)。两个仓库在1-3秒内完成了他的查询,因此这可能代表“性能楼层”:即使是最简单的查询也有最小的执行时间。

结论

这些仓库都具有优异的价格和性能。我们不应该感到惊讶,他们类似:制作快速柱状数据仓库的基本技术是众所周知的C店纸已于2005年发布。这些数据仓库无疑使用标准性能技巧:柱状存储,基于成本的查询规划,流水线执行和立即编译。我们应该对声称一个数据仓库的任何基准持怀疑态度比另一个数据仓库的基准迅速。

仓库之间最重要的差异是他们的设计选择引起的定性差异:一些仓库强调可调性,其他易于使用。如果您正在评估数据仓库,则应演示多个系统,然后选择为您击中正确平衡的系统。

关于fivetran.:Fivetran是自动数据集成的领导者,提供了使用的连接器,可自动适应模式和API更改,确保一致,可靠地访问数据。Fivetran通过将数据从源应用程序从源应用程序与任何目的部门连续同步,提高数据驱动的决策的准确性,允许分析师使用最新鲜的数据。为了加速分析,Fivetran可以在仓库中转换,并提供特定的源分析模板。了解有关数据集成的更多信息,以便更改www.miaplace.com.或者开始免费试用www.miaplace.com/signup.

2020数据仓库基准

比较红移,雪花,presto,bigquery

下载报告

笔记

[1] TPC-DS是用于数据仓库的行业标准基准。Even though we used TPC-DS data and queries, this benchmark is not an official TPC-DS benchmark, because we only used one scale, we modified the queries slightly, and we didn’t tune the data warehouses or generate alternative versions of the queries.

[2]这是数据仓库标准的小规模,但大多数Fivetran用户都对Salesforce或MySQL等数据来源感兴趣,这些源具有复杂的模式但适度的大小。

[3]我们不得不稍微修改查询,以让它们跨越所有仓库。我们所做的修改很小,大多是更改的类型名称。我们使用buequery标准sql,而不是learacy-sql。

[4]为了计算每个查询的成本,我们假设每个仓库都在使用50%的时间。

[5]雪花成本基于AWS中的“标准”定价。如果您使用更高的层,如“企业”或“业务至关重要”,您的成本将是1.5倍或2倍。

[6] Presto是一个开源查询引擎,因此它与此基准测试中的商业数据仓库并没有真正匹配。但它有可能成为这个空间中的重要开源替代品。我们用了v0。329.Starburst.Presto的分布。成本是基于Google Cloud上的按需成本。

[7] buequery是纯的共享资源查询服务,因此没有等效的“配置”;您只需向BueQuery发送查询,它会向您发送回放结果。

[8]如果您知道仓库上会运行什么样的查询,您可以使用这些功能调整表格并使特定查询更快。但是,典型的Fivetran用户在他们的仓库上运行各种不可预测的查询,因此将永远存在许多从调整中受益的查询。

[9]我们假设现实世界数据仓库空闲50%的时间,因此我们将基本成本乘以两个。

在几分钟内开始分析您的数据,而不是几个月

立即启动任何Fivetran连接器。