作者:郭华,头图来自:视觉中国
数据仓库简称数仓,是数据库的一个子领域,在这个领域里,目前最耀眼的明星是Snowflake。
Snowflake 2012年成立,2014年推出第一代产品,2017年上榜Gartner全球数据仓库魔力象限并于2019年成为领导者,2020年上市,首日暴涨111%,成为有史以来IPO规模最大的软件公司,市值一度超过IBM,并在今年被DBengines评为2021年年度数据库。
Snowflake有着陡峭的成长曲线,而在这背后至少有两个点值得关注,一是它的自我实现,二是它的模范效应,前者是个精彩故事,后者则展示了与某种恐怖力量的相处之道。在这两个点上,它都与令狐冲十分相似,可以说Snowflake之于数据仓库,恰如令狐冲之于笑傲江湖。
一、华山派和思过崖
令狐冲的崛起之路上有两个关键节点,分别是华山派和思过崖。
令狐冲在华山派长大,是华山派大师哥,师父是气宗的岳不群,也跟风清扬学过剑宗的独孤九剑,所以不管他后来怎么闯荡江湖,华山派都是他的起点。
后来他上了思过崖,在魔教长老留下的石刻上看到了华山功夫的破解方法,一招一式详尽之极。这让他大为震惊,开始觉得华山派不过浪得虚名,不仅自己功夫不行,师父的功夫也不行,遇到高手“倘若不肯服输,便只有自杀了”。所以思过崖是他的开悟点,自思过崖后,他对天下的功夫有了更清醒的看法。
和令狐冲一样,Snowflake也有这么两个点,而且这两个点都能在Snowflake的CTO Benoit身上找到。
Benoit是Snowflake的创始人,是数据库领域的顶级工程师。他此前一直在Oracle工作,是Oracle架构师,负责Oracle RAC,他对Oracle的重要性被形容为梅林之于亚瑟王。所以因为他,Snowflake才能在基础技术上从一开始就就处于非常领先的地位。客观的说,Oracle就是Snowflake的起点。
Benoit也碰到过思过崖,只不过这个思过崖不是石壁,而是Oracle的客户。在Oracle的十年里,Benoit反复听到客户讲现在的产品太复杂、价格太贵,反复讲云,讲Hadoop,讲他们对Oracle的挑战。但Oracle对这些东西的表现,哪怕不算无动于衷,也是漫不经心——工程师很少开发新东西,日常工作就是修复Bug,并且公司依然要根据自己按部就班的节奏,每四年进行一次主要的升级……总之,他感觉自己正在坐失良机[1]。
于是他决定要出来自己做一个真正的云数仓。
二、江湖渊源
Benoit出来创立Snowflake的时候是2012年,当时数据仓库市场上存在着三个门派。
这三个门派也代表了数据仓库发展的三代。
第一代是传统派,起源于上世纪八十年代,代表公司是Teradata。
计算机诞生后,应用程序就有了存储和在线处理数据的需求,于是以Oracle、IBM为代表的关系数据库就出现了。它们成功后不久,Teradata敏锐的发现,除了数据存储外企业还有数据分析的需求。于是它瞄准这一点,在1984年推出了第一代数仓产品DBC/1012。得益于其创新性的集群架构(现在称之为MPP架构),DBC/1012可以处理高达1TB的数据,在计算机硬盘只有几MB的当时,这显得异常先进。
Teradata很快占领了数仓市场,然后Oracle、IBM,以及其他一些独立公司也慢慢开始进来,不过就像Benoit负责过的Oracle RAC一样,基本上大家都参考了Teradata的MPP架构。所以这些公司是数仓的传统派,就像笑傲江湖里的武当、少林和五岳剑派一样,历史悠久,影响力大,是数仓市场的名门正派。
第二代是Hadoop派,代表公司Cloudera。
Hadoop派的出现是两股潮流发展的结果:第一个是数据,互联网的爆发产生了海量的非结构化数据,而对这部分数据的分析需求超越了传统数仓的处理能力;第二个是开源,在理查德·斯托曼发起的自由软件运动下,开源越来越成为主流的基础软件开发模式。
在这两个潮流的影响下,2006年美国工程师Doug Cutting参考Google的大数据处理模式,开发了开源软件Hadoop。凭借强大的数据处理能力和开放源码的特性,Hadoop很快席卷全球。2008年,基于Hadoop的开源公司Cloudera成立,一年后,Doug Cutting加入Cloudera任首席架构师。后来在Hadoop之上,出现了以Hive、Impala等为代表的SQL on Hadoop产品,它们弥补了传统数据仓库在海量非结构化处理上的缺位,逐渐在互联网公司里成为主流。
Hadoop系列有点像笑傲江湖里的福威镖局,势力不大,本想偏居于江湖一角,但公开的源代码就像祖传的辟邪剑谱一样,被江湖各派所觊觎,树欲静而风不止,总是血雨腥风。
第三代是云计算派,代表公司AWS。
亚马逊的AWS揭开了万物上云的大浪潮,应用上了云后,就发生了两个自然——数据自然在云上产生,云计算公司自然想提供更多产品。于是环顾四周,它就看到了福威镖局这个软柿子,2009年,AWS基于Hadoop源码,推出了一个托管在自己云上的产品EMR。
开源协议诞生时并没有考虑到云这种形态,所以严格来说AWS的行为并不算违反协议。但开源届普遍感觉受到了伤害,MongoDB的CEO说每当一个开源软件流行时,云厂商就会直接拿过来放到自己的云上,然后从中获得大部分价值,并且从不回馈社区。Redis的CEO则直言自己像个傻子,云拿着自己的东西大赚了一笔。
从这时起,云和开源的矛盾就产生了,云厂商被称为开源吸血鬼。
除了开源软件,云厂商也托管传统数仓。2011年,Amazon投资了ParAccel,2012年,基于ParAceel的技术,AWS推出了自己的云数仓Redshift,从某种意义上来说,Redshift就是一个托管的ParAccel。
所以云计算派的绝技就是托管,简单粗暴但有效,它们和笑傲江湖里的魔教一样,追求的是千秋万载一统江湖,是江湖中的恐怖力量。在它面前,不管是传统数仓还是开源Hadoop,都瑟瑟发抖。
Gartner 数据库2011-2020全球市场格局
三、吸星大法
在这样的格局下,Snowflake开始了其创业之旅,其实这个过程和令狐冲崛起的过程差不多,简单来说就是练武和比武。
先说练武,Snowflake有Oracle的底子,但练的并不全是Oracle的功夫。
和Teradata一样,Oracle用的是MPP架构。形象一点来看,这种架构就是狗拉雪橇,很多狗组成一个狗群,狗群拉着雪橇,如果想拉更多的东西,那就增加更多的狗。狗就是计算机,狗群就是计算机集群,对外提供的产品就是雪橇,数据分析能力就是雪橇的装载量。
但狗拉雪橇是有问题的,因为狗跟狗之间能力不共享,如果某条狗瘸了,整个系统都跑不利索,狗越多出问题的概率就越大,所以MPP架构不能支持特别大的集群,扩展能力有限。
Snowflake看到了云的优势,更进一步的,它大量采用云的技术,通过存储计算分离的方法解决了这个问题。
它把存储从集群中剥离出来,换成了统一的云存储。还以狗拉雪橇为例,Snowflake的思路相当于把狗做了改造,狗腿换成轮子,狗本身变成“狗力”的象征。一辆雪橇想要多少“狗力”就套上多少狗,轮子则全跑在一个无限延伸的轨道上,并由其提供动力。这个轮子和铁轨构成的动力系统就是云。
借助云的能力,Snowflake可以提供近似无限的弹性。
在Teradata DBC/1012 和Snowflake的架构图中,可以清晰看到两者的区别主要在存储层,Snowflake的Data Storage是一个整体,开始是AWS的S3,现在也支持Azure、GCP等其他云平台。
Snowflake产品架构[5]
Teradata产品架构[6]
存储计算分离是一种技术改造,也是一种理念创新,它体现了Snowflake开放包容的心态。在Snowflake之前,没有哪家数仓公司敢把自己的存储整个换成S3。
而随着这种技术改造,Snowflake也改造了自己跟AWS的关系,两者从纯粹的竞争对手,变成对手和客户,甚至是对手跟合作伙伴的关系,因为如果Snowflake卖的好,那自然S3的营收也会增加。
和令狐冲结交魔教的曲洋、圣姑,又学了魔教的吸星大法一样,这种多元化的关系,为将来发展提供了更多可能。
四、少林之战
练武之后是比武,武要偷偷的练,但比武的时候越公开越好,对手越厉害越好。
比如令狐冲的少林之战,在这场天下英雄都在场,并能决定任我行去留的比试中,他打败了自己的师父岳不群,于是一战成名,天下人尽皆知令狐少侠剑法无敌。
Snowflake也遵循了这种模式。2014年,秘密开发了两年后,它向市场公开了自己的产品,此后就开始不停挑战权威。
先是Oracle、AWS Redshift和SQL Server,时间是2015年,地点在旧金山的VMworld大会。
VMworld大会是VMware举办的全球数字化峰会,数万人参加,影响力类似笑傲江湖里刘正风的金盆洗手大会。在这次会议上,时任Snowflake CEO的Bob Muglia试图重新定义江湖秩序,他说只有Snowflake是云数仓,不管Oracle、SQL Server 还是AWS Redshift,都不行。
他批评道,无论任何时候Oracle谈论云,它说的都是托管,用户依然要手动做很多管理工作,而这些工作本该自动完成。他认为Oracle想成为真正的SAAS化云数仓,还有很长的路要走,整个架构都要变,SQL Server也一样。而对于Redshift,他肯定Redshift确实在云上做了不少东西,不过因为其架构还是传统MPP,所以依然仅是一个托管的ParAccel,作为用户你依然要清空它、管理它、决定主键的分布……所有你在上云前要做的,你现在依然要做,你依然需要DBA。[2]
这次大会的宣传语是“ready for any”,怎么看怎么像Snowflake赞助的,有点狂妄。
Snowflake狂妄的底气可能来自团队:Benoit来自Oracle,对Oracle了如指掌。Bob Muglia曾经是微软的高级副总裁,分管过SQL Server,团队里还有Actian创始人——Redshift基于ParAccel,而ParAccel后来卖给了Actian。所以理论上来说,它确实可以对这些对手的问题知道的一清二楚。
然后它又挑战了数据仓库的传统老大Teradata。
它写了一个小册子,用两个极具羞辱性的问题“那个Teradata数仓真的值一千万美金吗?”、“你的业务真的应该依赖来自1979年的技术么?”来引战Teradata。Teradata当然非常愤怒,他们逐条进行了一系列回复,但这正好上了Snowflake的当。
Snowflake碰瓷Teradata[7]
和VWworld大会一样,Snowflake这么嚣张的目的其实是“引流”。不少人顺着Teradata的回复找到了Snowflake,结果在好奇的体验过后,就被其出色的产品体验“留存”了。
所以狂是狂,但实力也是真的有,在引战和争议中,Snowflake快速成长。
数仓领域有个Gartner魔力象限,它从高到低把产品分为利基玩家、远见者、挑战者和领导者四个象限,可以看成数仓的英雄榜。Snowflake2017年首次作为利基玩家进入,2018年成为挑战者,2019年就成为了领导者,一年升一档,很快和Teradata、IBM、Oracle等老前辈坐在了一起。作为对比,华为也是2017年第一次上榜,但还是利基玩家。不过客观说能进入就是突破,华为是国产数据库的第一个,依然国货之光。
Gartner数仓魔力象限2019
到了2020年,Snowflake上市了。
五、笑傲江湖
Snowflake上市首日股价暴涨111%,是有史以来IPO规模最大的软件公司。
对资本市场来说,Snowflake在存储计算分离、云原生等技术概念的基础上,又成功讲了一个更业务化的新概念——数仓SaaS,在它之前,数仓是被定义为PaaS的。
两者有什么区别?PaaS面对开发者,SaaS面对最终用户,或者借用Bob Muglia的话来说,数仓SaaS不需要DBA。
这是颠覆性的,股票市场爱颠覆性。
从营收来看,Snowflake基本和Teradata、Cloudera在同一量级,但从市值来看,一路暴涨的Snowflake已经站到了IBM、Oracle一样的水平线。这说明两件事:第一,有些投资人认为Snowflake代表了数仓的未来,害怕错过它就像害怕错过特斯拉;第二,哪怕挤干泡沫,Snowflake的营收也赶上了前两代数仓课代表的水平,说明数仓SaaS作为一种新模式,已经成为现实。
市值&营收对比
科学史学家科恩说过,科学革命就是旧范式向新范式转移的过程。
范式包括两部分,一部分是该领域所有成员在某一特定时期都能接受的一系列基本的理论假设,另一部分是这些理论所解决了的现实问题。
在数仓的世界里,理论部分是存储计算分离和云原生,现实成果则是爆发性出现的大量云原生数仓创业公司。所以根据科恩的定义,数仓SaaS已经成了一种范式,而Snowflake正在引领着范式转移,直接带动了这两年的云原生数据库创业潮。
所以如果“市场上第一代产品总能自动获得50%市场份额”的达维多定律成立,那么大家对于Snowflake的热情就不能说完全是空穴来风。
而且客观的说,Snowflake确实冒了和这种回报等量的风险。
技术风险自不必说,比技术风险更不确定的,是商业路线上的风险。
它是第一个选择跟云合作的数仓公司,回头看可能觉得很自然,但实际上里边充满了微妙的平衡,很像全球体系下的国家博弈。Snowflake从AWS进口S3和EC2等原材料,向AWS出口成品,而这个成品又和AWS的本地供应商Redshift直接竞争。为了保护Redshift,AWS应该限制Snowflake,但这样又会影响S3和EC2的销售,所以这是一种左右互搏。此外,Snowflake也支持Google Cloud和Azure,AWS还要担心它带着客户转移到竞争对手那里。
这是一种包含了多层次竞争与合作的动态平衡,一点也不自然,不过按照Snowflake的副总裁卡帕斯的说法,这个平衡正在变得稳固,他们和AWS已经从真正的竞争对手,变成了真正的联盟。只不过这个联盟并不像令狐冲娶了任盈盈那么简单,需要更多更长久的利益支撑——在Snowflake招股书,它承诺在接下来的5年内,在云上的消耗将达到12亿美金[3],并且其中大部分会属于AWS。
但总之,Snowflake“跨越鸿沟,创造了这种关系”[4]。它的成功也给其他人树立了一个榜样,一个如何与云巨头相处的榜样,所以如果再分代的话,现在应该从粗暴的第三代云托管时代,进入了和谐共生的第四代云原生时代。
附,关键信息来源:
[1]. Frank Slootman, Steve Hamm. Rise of the Data Cloud https://www.amazon.com/Rise-Data-Cloud-Frank-Slootman/dp/1728363608
[2].Bob Muglia, Snowflake Computing | VMworld 2015 https://www.youtube.com/watch?v=l0hxeVD86Do
[3]. https://www.sec.gov/Archives/edgar/data/1640147/000162828020013010/snowflakes-1.htm
[4].AWS And Snowflake: ‘From True Competitors, To Frenemies To…An Alliance’ https://www.crn.com/news/cloud/aws-and-snowflake-from-true-competitors-to-frenemies-to-an-alliance-
[5].The Snowflake Elastic Data warehouse, 2016 https://event.cwi.nl/lsde/papers/p215-dageville-snowflake.pdf
[6].A Practical Implementation of the Data Base Machine - Teradata DBC/1012, 1992 https://ieeexplore.ieee.org/document/183180
[7].Is That Teradata Data Warehouse Really Worth $10 Million https://www.pacificdataintegrators.com/uploads/resources/244/is-that-teradata-data-warehouse-really-worth-10-million.pdf