最近的Spark Summit上,大红大紫的开源项目Spark背后的独角兽公司DataBricks宣布开源了他们的Delta Lake。这可能是大数据圈子里近期最大的事情了。有些老朋友想让我写篇文章聊聊我怎么看这个开源的,但是因为最近一直忙于工作,在中国美国两边跑,倒时差倒的天昏地暗的,也就一直拖了又拖。
从某种程度上来说,大数据这两年已经过气了,不是媒体资本追逐的对象了。很多媒体都开始转行写AI。极客邦下属的InfoQ也把手下的若干大数据微信群都转成了AI前线。飞总也几乎不写大数据了。但是数据的处理分析,还是刚需。这块市场并不以热点为转移。
所以DataBricks在这个点开源Data Lake,是因为他们意识到需求一直都存在,而圈地是很重要的。或者说,如果现在不出来圈地的话,可能接下来会影响他们的赚钱事业了。毕竟,饼大了才能你好我好大家好。这话听起来有点绕口,我们还是一点点来拆解一下。
DataBricks主要是伯克利AMP Lab做Spark的人最先创立的一家集云计算,大数据,AI等诸多概念为一体的公司。它的核心资产和对开源社区的主要贡献是Spark。Spark目前已经取代Hadoop MapReduce成为了大数据默认的计算引擎了。DataBricks估值25亿,最新一轮领投里既有传统VC,也有微软这样的IT公司。
DataBricks这个公司的盈利模式主要还是它自营的Cloud和OEM产品。除去Notebook这种东西以外,DataBricks最核心的资产是它的runtime。这个东西号称可以100%兼容社区Spark,同时提供额外的功能和up to 5x的加速。DataBricks和微软的Azure云进行了深度整合。某种程度上微软对DataBricks下了很大血本。但是两者之间的合作协议到底谁赚谁亏,据说只有等到DataBricks上市那天,协议大白于天下的时候才能知道了。
在接下去写之前,请容我装个逼。从某种程度上说,飞总聊IT是所有写大数据的公众号里最牛逼的自媒体。我想这样说并不为过。因为大数据而关注我的号的不乏中国众多公司做大数据的初中高层人员。DataBricks里也不乏关注我公众号的对象。这种关注度的好处是我可以和很多公司相对比较高层的人有一定程度的私下联系,所以我能更好的判断公司的某些特质。
由于工作的关系,我和DataBricks有更深的接触。这是不是一家伟大的公司,我也说不好。但是起码从股东角度来说,这是一家颇为合格的公司。开源的DataBricks本质不是活雷锋。全心全意为人民服务不是DataBricks的目标。全心全意为人民币服务是DataBricks的目标。当然美刀也可以。
DataBricks给我的印象是一家非常实际的公司。大家合作就是要赚钱,伟大的事情要做,但是钱也要赚。我是挺认同这个理念的。连自己都养不活了又怎么去接济天下呢。所以我们可以看到,尽管Spark是一个很伟大的产品,DataBricks还是有很多保留的。其内部人员分配上据说在做开源的只有1/5。数字从哪里来的,我不会告诉你,数字准确不准确,我也不知道。
但是现在有一个很尴尬的事情。Spark本身作为一个计算引擎是没有什么粘性的东西。当初Spark可以干翻MapReduce,未来XXX是不是也可以干翻Spark,不好说。而Spark的用户们缺乏了一个好的存储,来帮助他们解决一些很重要的问题。
DataBricks显然很早就意识到了这个问题。同样意识到这个问题的还有一些经常和企业打交道的厂商,名字我就不点了。DataBricks的Delta Lake作为runtime的一部分,更是有很长的历史了。我们摘两句官宣里面的话来描述一下Delta Lake是干什么的:“Delta Lake delivers reliability by managing transactions across streaming and batch data and across multiple simultaneous readers and writers. Delta Lakes can be easily plugged into any Apache Spark job as a data source, enabling organizations to gain data reliability with minimal change to their data architectures. ”
管理事务,统一流和批,元数据的检验,多版本管理等。这些东西对一个做数据库的人来说真不是什么新鲜玩意。只有大数据的圈子里才很傻逼这些都不是问题,一直都没什么动静。
但是用户刚需迟早会凸现出来,开源社区已经有一些动静了,尽管这些动静看起来和Delta Lake比起来很幼稚落后。但是我们不难想象,如果说这个方向被一个和DataBricks无关的项目所主导,那会有什么后果?后果就是会影响和威胁到Spark在计算引擎层面的霸主地位。这恐怕是DataBricks不愿意看到的。
所以DataBricks开源了Delta Lake。当然DataBricks是一个商业上非常成熟的公司。开源出来的产品,肯定是比市面上其他的开源,以及某些不开源的解决方案要好。但是和DataBricks自己runtime里面带的那个非开源版本比起来,当然是不如的。这在Spark里已经很好的体现了差异化竞争。
这样下去,无论是刚由苗头的开源项目,还是已经存在一段时间的非开源解决方案,多少都有点尴尬了啊。我们虽然不能说DataBricks过去,寸草不生,但是最低限度,这是个汽车,其他很多的连自行车都看不上。当然,如果你想豪车的话,还得花钱买DataBricks的runtime,才能跑的爽。
所以Delta Lake在这个点开源出来,并且只开源了runtime里面一部分功能,够用就好的开源,是多方面纠缠的结果。开源以后对于巩固Spark的统治地位,扼杀在摇篮里的潜在对手,把饼做大的同时更好的引流到DataBricks runtime上都有长足的意义。
本质来说,开源还是不开源都是商业行为决定的。DataBricks肯定不是活雷锋,但是广大吃瓜群众也肯定会因为这个开源受益。倒霉的是谁,大家可以自己想想。总而言之,社区赚到了,DataBricks也赚到了。全心全意为人民币服务的同时也服务了人民,其实是挺好的一件事情。
也有人拿DataBricks的Apache V2开源协议和最近其他几家开源公司改协议做对比。看起来DataBricks高大上了很多。但是我觉得啊,在商言商,DataBricks比其他公司更会做生意。如果非要往造神方面去扯,就有点远了。但是大家不要误会了,我并没有批评DataBricks的意思。一家公司能够在社区服务和公司赚钱之间兼顾到这个程度,是非常了不起的事情。