最近,Databricks盯着Snowflake打也是不遗余力。11月15日,Databricks的创始人们在其公司的blog上发表了一篇文章,文章的主题是Snowflake为了测试结果竟然改了TPC-DS的输入数据。
要理解这个事情的来龙去脉,就要从11月2日的事情说起。2021年11月2日,Databricks官宣了它们取得了TPC-DS的世界新记录。
做数仓和OLAP的都应该知道,TPC-H是这个领域的老标准,TPC-DS是这个领域的新标准。在Databricks宣布了这个新世界记录之前,老记录是阿里巴巴创造的。
我看到这个消息的时候,还专门采访了一下阿里巴巴去年创造了世界纪录的团队领导,对方说,要跑个新记录不难,但是跑了之后也就那样了。我不知道是真的不难,还是说其实不值得。毕竟都是钱。
当然这不重要,重要的是,Databricks官宣的时候特意点名了一下,根据巴塞罗那超级计算中心的第三方测试,在TPC-DS上Databricks既显著的比Snowflake快,也比Snowflake更cost effective。
这个点名意味深长。Databricks为什么盯着Snowflake打,展开说就需要很多篇幅了。最近工作压力大,写这种文章又颇费精力时间,为了聚焦今天的内容我就不展开这个话题了。
Snowflake被打脸之后,过了10天回复了。回复的重点大概有两个,第一是它们的性价比和Databricks差不多。第二是它们的TPC-DS的测试是3760秒,而不是巴塞罗那超算中心测试的8397秒。

Snowflake还说用户可以自己申请一个账号,它们已经准备好了TPC-DS的数据集,然后用户可以自己测试。
Databricks的这篇博文首先简单的打脸了Snowflake,表示这个性价比的比较是拿Snowflake最便宜的offering和Databricks最贵的offering做比较。Databricks最便宜的只要Snowflake最便宜的一半价格。

但这篇博文的重点是为了揭露Snowflake自己的这个3760秒是造假的。Databricks不相信这个结果。
所以databricks的人申请了一个测试账号,然后按照教程跑了,结果发现测试数据大概在4000秒左右,确实是比巴塞罗那超级计算中心的测试结果快的多。
然后他们的检查发现,Snowflake准备的TPC-DS数据集居然是就在前几天的。所以他们很怀疑这个数据集是不是有问题。于是Databricks 上传了官方的数据集,然后用了同样的硬件跑了一下测试,结果发现测试的速度果然慢了一倍,和巴塞罗那超级计算中心的测试速度差不多。

Databricks的博文继续打脸,表示这个结果每个人都可以亲自去检验,只要把Snowflake准备的数据集换成官方的数据集就好了。
为什么用了官方数据集慢了呢,而用了Snowflake自己准备的数据集就可以这么快呢?因为数据upload进系统的时间也是时间啊。
Databricks当然没有具体说Snowflake干了什么,但是春秋笔法的,Databricks说了自己干了什么。简单来说,benchmark很容易就变成“adding configuration knobs, special settings, and very specific optimizations that would improve a benchmark”的游戏。
Databricks是不屑于这样做的,他们只会做“Customer-obsessed benchmarking”,简单来说,只有那些通用的,每个客户都会用到的optimization,才能被用来参加benchmark。那些需要对数据集和查询有深入理解的,比如说Snowflake自己准备的数据集,里面增加了额外的clustering columns,Databricks不屑于也不会去做这样的事情。

Databricks打Snowflake,可谓不遗余力,刺刀见血。Snowflake作弊还被抓,那也真的是只要有人做了坏事,总是会被抓包的。

Databricks目前看起来,是气势汹汹,刀刀见血。Snowflake一时半会估计拿不出什么好办法来解决这个问题。但是是不是在商场上Databricks会因此就得利,而Snowflake就会被抛弃呢?说实话,这个还真不好说。
换个角度看,Databricks为什么需要如此气势汹汹,急的不得了的上战场呢?嗯,留给大家自己去思考吧。
继续阅读
阅读原文