DataBricks从开源到商业化踩过的坑

81da704778d21e97f68df880f0dcd33d.gif

40dd1b8083aca544c47bf5b7d0e7faa1.png

| 作者:行人

| 编辑:邵佳怡

| 设计:王福政

引言:听到 What'S Next | 科技早知道 播客《S6E06|对话Databricks联合创始人Reynold Xin:380 亿美元估值背后的长期主义》,颇受启发,本文作为一个笔记其中一些内容以及个人的一些思考,对文中内容感兴趣的朋友建议听一下这期节目。

导读:

1、DataBricks早期的3个决定

2、开源软件如何与AWS竞争?

3、数据的未来:湖仓一体

1、DataBricks早期的三个决定

DataBricks是UC Berkeley 人工智能实验室的博士生及教授 于2013年成立的大数据公司,公司雏形诞生于 Apache Spark,通过开源 SaaS 模式服务企业客户,最早提出湖仓一体,并且是唯一提供湖仓一体的云服务公司,提供了一个开放和统一的平台支持大数据和人工智能,同时满足数据仓库和数据湖的应用场景。2021 年 8 月完成 16 亿美元的 H 轮融资,估值 380 亿美元。现在回头看,在公司成立的早期,团队做出的三个决定影响深远。

1# 云服务

团队坚信云计算是未来的方向,其联合创始人Ion Stoica 和 Matei Zaharia 是《A Berkeley View of Cloud Computing》的作者,这篇论文在云计算发展中影响深远,被引用上万次。在公司早期的阶段,不是所有人都深刻理解坚持云服务的理念,每年仍然会被新加入的员工挑战,融资时也会被投资人挑战,同时也不被客户接受。所幸内部坚持云服务,投资人有耐心,客户在2018年后也开始大规模上云。

2# 不做技术支持服务

技术支持服务依赖人员扩张以支持更多客户,不具备大规模扩张的能力,而且利润率也较低,商业模式不如云服务。2015年时,Spark在客户中已经很有名气,很多客户找到团队希望能提供咨询和支持服务,有客户愿意出1000万美元,但会分散团队的注意力,不利于长期发展,我们还是放弃了这块业务;2018年,很多客户已经看到云服务的未来,表示未来会迁移上云,但不确定什么时候会迁移;而到2019年,很多客户已经行动起来,开始迁移上云,云服务已经成为业界的共识。

3# 数据科学(Data Sicence)

参加Netflix的人工智能竞赛时,发现大规模数据集无法在一台服务器上完成模型训练,因此做了Spark项目;公司以Spark为基础,选择数据科学作为业务方向,为数据工程师提供工具,而没有选择竞争更激烈的数据仓库赛道。数据科学作为细分市场是由Facebook、Netflix等公司提出,当时大多数公司还没有相应的职位,没有激烈的竞争,Spark很快被企业接受;而数据仓库则面临老牌的Teradata公司,以及AWS的RedShift的竞争。

虽然DataBricks看好云服务的未来,但也不清楚这个“未来”多久能到来,2年、5年、还是10年,不得不说这个也有运气成分;而另外一家公司成立于2008年的Cloudera就没有那么幸运,从名字就可以看出公司也坚信云服务是未来,但其大多数营收都是来自支持服务,2008-2018长达10年的运营中公司首先要解决活下来的问题,支持服务虽然不能大富大贵,也让公司活到了云服务的黎明,最后被KKR和CD&R 以53亿美元私有化。

2、开源软件如何与AWS竞争?

到2015年Spark在业界就非常有名,很多公司已经在内部落地Spark项目,由于完全基于开源项目运营,公司并没有赚到钱,在DataBricks还在通过开会卖T恤为生时,AWS的EMR大数据平台托管的Spark服务每年应能够获得几个亿美元的营收,开源软件该如何应对AWS的竞争呢?

7e9e4ab3deda18849c86a5ea469ff741.png

1# 低成本

客户并不会因为你的原厂服务就选择你,如果服务一样,有什么理由不选择更便宜的AWS服务呢?我们发现多客户在项目开放初期会使用我们的服务,与社区紧密互动获得支持,但当大规模部署时仍然会选择便宜得多的AWS 托管服务。由于AWS很少贡献核心代码,其大多数情况下仅仅是为开源项目提供一个控制台,开发成本很低,因此其服务的价格要便宜得多。

2# 人才密度

由于AWS并不需要对开源项目深入研发,很难招聘到业界最优秀的工程师,可能也不需要非常优秀的工程师,这样导致其在单个项目上人力和资金的投入往往是不如创业公司的。在跟进核心问题改造方面会遇到较大的障碍,这就给商业开源公司提供了打造差异化壁垒的机会。

3# 差异化竞争

我们开始重点考虑商业平台的差异化服务,基于开源的API接口,提供差异化的商业服务,如性能、扩展性、安全等。差异化并不是意味着提供一些非开源功能,必须在用户的核心路径上解决用户的问题,如果差异化的功能不是关键问题,用户可能不需要;如果差异化的功能很简单,AWS很可能会复制;这样都达不到差异化的作用。DataBricks凭借其对Spark及数据科学领域的深刻洞察,为商业化平台提供了强大的差异化能力,这也得益于其早期对开源项目的完全依赖。

4# 销售策略

采取自下而上和自上而下相结合的销售策略。在运营开源项目时,我们没有销售团队,完全通过开发人员社区传播,当我们意识到数据科学家在每个公司都属于少数群体,不可能扩张到很多人时,开始组建销售团队直接与CXO对接,解决其面临的痛点,目前已经相当规模的销售团队专门服务大客户。

5# 多云策略

AWS云服务商只能提供自身云平台的托管服务,而DataBricks则可以同时在多个云服务商中提供服务,目前已经支持主要的三个云服务商AWS、Azure、GCP等;而且与Azure的合作提供Azure DataBricks产品,让Azure云平台从不具备大数据处理能力一跃成为领先的大数据处理平台,对云提供商其他服务的销售也有明显的带动,实现双赢。

DataBricks通打造差异化竞争优势与AWS进行竞争,虽然我们主要产品都是基于开源软件,但我们80%的精力都投入在商业服务上,DataBricks云平台每天运行的虚拟机数量超过1200万台,大规模、可扩展、高可靠的数据平台已经成为我们的竞争壁垒。

此外,MongoDB则选择在2018年修改开源许可证,禁止云服务商托管开源服务,虽然AWS立即启动了DocumentDB以兼容MongoDB,但随着MongoDB的产品持续迭代,已经更新到5.0版本,而DocumentDB则只能停留在兼容的3.6和4.0版本,长期来看客户仍然会站在MongoDB,截止2021年底全球客户数已达33000个。2021年初,Elastic也选择修改开源许可证协议,禁止云服务商托管开源服务,相信经过2-3年的产品迭代及创新,也将达到现在MongoDB现在的阶段。

AWS最大的问题是资源太多,需要关注的产品更多,平均下来每个产品的资源就显得非常有限,但对于大公司下决心要搞好的战略级产品,创业公司要其正面竞争几乎没有机会。

目前,云提供商通过其Marketplace为独立SaaS服务商提供了销售市场,这对双方来说是双赢的结果,2021年Marketplace的市场规模大概40亿美元,Tackle.io预测2025年市场规模将达到500亿美元。

也难怪MongoDB的CEO说,“我们与AWS的关系从没有像现在这么牢固”。

3、数据的未来:湖仓一体

DataBricks从数据处理切入,2018年发现数据处理80%的问题发生在存储领域,而这些是由云厂商提供的,因此他们决定开启Delta Layer项目,为数据湖提供统一的存储层解决方案。

现在常见的数据解决方案是数据湖存储所有数据,再将商业化相关的数据抽取到数据仓库供商业分析师使用,通过权限管理限制不同团队的数据访问权限。

这种多层架构的关键问题是数据的分裂,不同决策人员可能看到不同的数据版本,这种不一致性可能导致得出不同的决策,从而影响到数据的权威性。

早在2019年DataBricks就提出LakeHouse的概念,即湖仓一体,使用统一数据平台解决BI + AI的问题,目前DataBricks 比较擅长AI 并积极补齐BI的短板,而Snowflake 擅长BI 正补齐AI的能力,从这个角度看,未来DataBricks 和 Snowflake 可能是主要竞争对手。

74ea4b8a14ab8a2a00d3ee807bc81ffe.gif

此外,不少数据公司押注SQL,对他们来说“SQL is everything”,而DataBricks认为“SQL is not everything”,虽然SQL受众广泛,几乎没有用户教育成本,但SQL本身不是为技术人员设计的,在解决复杂数据问题时容易遇到瓶颈,Python等高级语言对技术人员更友好。有些团队为开发者提供高级语言,然后底层执行时再翻译成SQL,这种方案遇到问题就很难定位。

本文是商业化系列文章,对相关话题感兴趣的同学可以关注后续更新。

相关阅读 | Related Reading

ab9320e2c34c8be3855eacdff3b076f9.png

“源”来是你-Vol.37 | 知名开源企业StreamNative 招募开源社区运营和开源布道师!

df08f1d90479f179caaa459ef7fbdbd7.png

Open the World:第七届中国开源年会(COSCon'22)正式启动~

02c293ead8e9f253256c8b1b4056482d.png企业实践开源的动机

开源社简介

开源社成立于 2014 年,是由志愿贡献于开源事业的个人成员,依 “贡献、共识、共治” 原则所组成,始终维持厂商中立、公益、非营利的特点,是最早以 “开源治理、国际接轨、社区发展、开源项目” 为使命的开源社区联合体。开源社积极与支持开源的社区、企业以及政府相关单位紧密合作,以 “立足中国、贡献全球” 为愿景,旨在共创健康可持续发展的开源生态,推动中国开源社区成为全球开源体系的积极参与及贡献者。

2017 年,开源社转型为完全由个人成员组成,参照 ASF 等国际顶级开源基金会的治理模式运作。近八年来,链接了数万名开源人,集聚了上千名社区成员及志愿者、海内外数百位讲师,合作了近百家赞助、媒体、社区伙伴。

7847b4ec3b5db993faa67e3811013369.gif

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是辽宁省行政区划的 SQL 语句: ``` -- 创建省份表 CREATE TABLE province ( id INT PRIMARY KEY, name VARCHAR(20) ); -- 插入省份数据 INSERT INTO province (id, name) VALUES (210000, '辽宁省'); -- 创建市级表 CREATE TABLE city ( id INT PRIMARY KEY, name VARCHAR(20), province_id INT, FOREIGN KEY (province_id) REFERENCES province(id) ); -- 插入市级数据 INSERT INTO city (id, name, province_id) VALUES (210100, '沈阳市', 210000), (210200, '大连市', 210000), (210300, '鞍山市', 210000), (210400, '抚顺市', 210000), (210500, '本溪市', 210000), (210600, '丹东市', 210000), (210700, '锦州市', 210000), (210800, '营口市', 210000), (210900, '阜新市', 210000), (211000, '辽阳市', 210000), (211100, '盘锦市', 210000), (211200, '铁岭市', 210000), (211300, '朝阳市', 210000), (211400, '葫芦岛市', 210000); -- 创建县级表 CREATE TABLE county ( id INT PRIMARY KEY, name VARCHAR(20), city_id INT, FOREIGN KEY (city_id) REFERENCES city(id) ); -- 插入县级数据 INSERT INTO county (id, name, city_id) VALUES (210101, '市辖区', 210100), (210102, '和平区', 210100), (210103, '沈河区', 210100), (210104, '大东区', 210100), (210105, '皇姑区', 210100), (210106, '铁西区', 210100), (210111, '苏家屯区', 210100), (210112, '浑南区', 210100), (210113, '沈北新区', 210100), (210114, '于洪区', 210100), (210115, '辽中区', 210100), (210123, '康平县', 210100), (210124, '法库县', 210100), (210181, '新民市', 210100), (210201, '市辖区', 210200), (210202, '中山区', 210200), (210203, '西岗区', 210200), (210204, '沙河口区', 210200), (210211, '甘井子区', 210200), (210212, '旅顺口区', 210200), (210213, '金州区', 210200), (210214, '普兰店区', 210200), (210224, '长海县', 210200), (210281, '瓦房店市', 210200), (210283, '庄河市', 210200), (210301, '市辖区', 210300), (210302, '铁东区', 210300), (210303, '铁西区', 210300), (210304, '立山区', 210300), (210311, '千山区', 210300), (210321, '台安县', 210300), (210323, '岫岩满族自治县', 210300), (210381, '海城市', 210300), (210401, '市辖区', 210400), (210402, '新抚区', 210400), (210403, '东洲区', 210400), (210404, '望花区', 210400), (210411, '顺城区', 210400), (210421, '抚顺县', 210400), (210422, '新宾满族自治县', 210400), (210423, '清原满族自治县', 210400), (210501, '市辖区', 210500), (210502, '平山区', 210500), (210503, '溪湖区', 210500), (210504, '明山区', 210500), (210505, '南芬区', 210500), (210521, '本溪满族自治县', 210500), (210522, '桓仁满族自治县', 210500), (210601, '市辖区', 210600), (210602, '元宝区', 210600), (210603, '振兴区', 210600), (210604, '振安区', 210600), (210624, '宽甸满族自治县', 210600), (210681, '东港市', 210600), (210682, '凤城市', 210600), (210701, '市辖区', 210700), (210702, '古塔区', 210700), (210703, '凌河区', 210700), (210711, '太和区', 210700), (210726, '黑山县', 210700), (210727, '义县', 210700), (210781, '凌海市', 210700), (210782, '北镇市', 210700), (210801, '市辖区', 210800), (210802, '站前区', 210800), (210803, '西市区', 210800), (210804, '鲅鱼圈区', 210800), (210811, '老边区', 210800), (210881, '盖州市', 210800), (210882, '大石桥市', 210800), (210901, '市辖区', 210900), (210902, '海州区', 210900), (210903, '新邱区', 210900), (210904, '太平区', 210900), (210905, '清河门区', 210900), (210911, '细河区', 210900), (210921, '阜新蒙古族自治县', 210900), (210922, '彰武县', 210900), (211001, '市辖区', 211000), (211002, '白塔区', 211000), (211003, '文圣区', 211000), (211004, '宏伟区', 211000), (211005, '弓长岭区', 211000), (211011, '太子河区', 211000), (211021, '辽阳县', 211000), (211081, '灯塔市', 211000), (211101, '市辖区', 211100), (211102, '双台子区', 211100), (211103, '兴隆台区', 211100), (211104, '大洼区', 211100), (211122, '盘山县', 211100), (211201, '市辖区', 211200), (211202, '银州区', 211200), (211204, '清河区', 211200), (211221, '铁岭县', 211200), (211223, '西丰县', 211200), (211224, '昌图县', 211200), (211281, '调兵山市', 211200), (211282, '开原市', 211200), (211301, '市辖区', 211300), (211302, '双塔区', 211300), (211303, '龙城区', 211300), (211321, '朝阳县', 211300), (211322, '建平县', 211300), (211324, '喀喇沁左翼蒙古族自治县', 211300), (211381, '北票市', 211300), (211382, '凌源市', 211300), (211401, '市辖区', 211400), (211402, '连山区', 211400), (211403, '龙港区', 211400), (211404, '南票区', 211400), (211421, '绥中县', 211400), (211422, '建昌县', 211400), (211481, '兴城市', 211400); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值