数据库 频道

对话StarRocks叶谦:新一代MPP数据库有啥不一样?

  多年前逛论坛的时候,看到一首诗,印象深刻:凡事莫问我,问我也茫然。我若知道路,不站几千年。诗人登山,或许当时有所困惑,忽然见到石人指路的雕像有感而发,颇有哲思,前方的路终究是要靠自己脚踏实地走出来。

  对于一直从事国产数据库的人而言大概会有一种心有戚戚焉的感受,国产数据库的发展之路并不容易,伴随着质疑与争议,如今迎来春天,百花齐放,这条路都是脚踏实地踩坑走出来的。 

鼎石科技COO 叶谦

  在今年,新一代MPP数据库厂商鼎石科技也迎来了自己新的发展阶段,产品由原DorisDB更名为StarRocks,并宣布全面开源,此举引发业内讨论。在日前DTCC2021中国数据库技术大会之际,IT168采访了鼎石科技COO 叶谦,我们聊了聊StarRocks的定位以及数据库技术的发展。

关于StarRocks源码开放

  2021年9月8日,成立一年多的鼎石科技宣布将核心产品DorisDB升级为StarRocks,并全面开源。新名“StarRocks”由星星“Star”和石头“Rocks”组成,被团队寄予了美好的期望,意为仰望星空的同时,脚踏实地走路。此举却引发了业内广泛讨论关注,比如StarRocks与Apache Doris是怎样的关系?StarRocks为什么采用Elastic License 2.0(简称ELv2)许可证?

  在创业之初,StarRocks团队成员几乎都来自Apache Doris,所以在给项目起名时参考了之前PrestoDB的做法,取名DorisDB。并且在中国、美国和日本都注册了商标。然而此举影响了Apache Doris项目毕业,所以后来产品更名为StarRocks。

  叶谦告诉IT168,Apache Doris可以看作是StarRocks的上游项目,StarRocks创始团队曾经深度参与了Apache Doris的项目建设,公司有四位员工是Apache Doris PPMC成员。据悉,鼎石科技公司大概有17位员工之前曾经参与过Apache Doris的开发,贡献了约30万行代码。目前StarRocks代码量大概有80万,其中约33万行代码继承自Apache Doris项目,剩下的47万行都是StarRocks自研。

  关于代码许可证,叶谦强调:“鼎石科技作为一家商业化的公司,肯定是要追求商业上的成功。源代码开放和商业上的成功从表面上看起来是两件相互矛盾的事情,特别是在云厂商已经形成一股强大力量的今天。”他介绍,在鼎石科技之前,已经有不少先行者在源代码开放以及商业化之间的平衡进行了很多探索和尝试。比如说Databricks,他们有完全开源的产品Apache Spark,使用Apache协议,也有闭源的商业化产品Photon,其商业化成功靠的是Photon的性能大幅领先Apache Spark。这种开放模式可以称为“弱内核+宽松协议”。还有一种类型,比如说MongoDB,他们开放源代码的内核就是最好的,普通用户可以免费使用,但为了防止云厂商直接商业化,堵了MongoDB商业化之路,所以MongoDB只能使用SSPL这样比较严格协议,即采用一种“强内核+严格协议”的开放模式。

  “我们在考虑开放和商业化这两件事情的时候,更多在考虑如何让普通用户更容易地具备最强的数据分析能力。当然,我们也需要商业上的成功来持续为客户提供有价值的产品。所以我们最后选择使用ELv2协议来开放我们的源代码。”叶谦指出,StarRocks采用的是类似于MongoDB的“强内核+严格协议”开放模式。

  未来,StarRocks将有两条商业化路径:一是,StarRocks会提供一个具备更多企业级功能的企业版,包括更多的企业级运维工具,安全性和权限控制,资源隔离等功能;此外,StarRocks还会推出一个纯云原生的版本,和公有云厂商一起合作,直接为客户提供全托管的弹性服务。

新一代MPP数据库有啥不一样?

  北京鼎石纵横科技有限公司于2019年开始筹建,公司的成员均来自百度,阿里,微软,美团,京东,小米,字节跳动等互联网头部公司的基础架构和大数据团队,其核心产品StarRocks定位为新一代极速MPP分析型数据库系统。新一代MPP数据库有啥不一样?

  技术的发展离不开需求的推动,在数据驱动时代,OLAP场景下的数据分析和查询扮演着越来越重要的角色,指导企业组织经营决策,传统的分析架构也面临着一些待解的难题。比如数据分析性能不达标、数据分析的灵活性不足、数据架构复杂度太高、数据分析能力弹性不足等。

  以数据分析性能为例,随着数据驱动的深入,业务提出了更多的分析需求,比如多维分析,实时分析,高并发查询和 Adhoc 查询。在很多分析需求场景下,当前系统性能表现不佳。叶谦介绍,近几年实时的分析场景如实时用户画像,做实时推荐,或者风控类实时场景需求更加凸显。而随着数字化转型的不断深入,企业要达到全员数据驱动,数据分析从服务管理人员到服务企业全员发展,需要高并发支持。

  叶谦介绍,传统的MPP数据库数据存储和分析架构存在一些短板,传统MPP架构采用均匀分布的方式来做数据存储,在扩容的时候成本很高,导致无法支撑很大的数据规模,而且数据重新分布时对计算CPU带宽影响很大,几乎都需要停服务。此外,传统的MPP数据库对向量化技术采用比较少,导致其查询速度没有那么快,无法响应现在越来越多的各类场景需求。

  在解决以上问题时,StarRocks做了很多创新工作,这也是新一代MPP数据库的最大特色。StarRocks采用全面向量化技术,整个执行引擎都是按照向量化的方式全部重写,完全按列存储,按列计算,按列传输。全面向量化引擎实现了在OLAP多维分析、实时数据分析、高并发数据分析、探索式数据分析等多场景的极速分析,比上一代同类型产品快3—5倍。 StarRocks采用新一代弹性MPP架构,无外部依赖,充分利用多机多核的能力,分布式关联查询能力强悍。

  另一大创新是StarRocks从零开始实现了一个全新的CBO优化器。优化器对于数据库而言至关重要,执行引擎可以让一个执行计划跑得更快,而好的优化器能够给出执行代价最低,并能充分利用自身执行引擎能力的执行计划。叶谦介绍,StarRocks自研的CBO优化器应用到了如表达式重写,表达式复用,共同谓词提取,谓词下推,聚合下推,列裁剪,分区裁剪,shuffle裁剪,子查询改写,Join顺序调整等等优化方法。使用了全新的CBO优化器后在SSB标准测试上的性能表现提升了3—5倍。在TPC-H测试集上,同样是以外表的方式查询Hive数据,性能比Presto快5倍以上。

  目前,StarRocks已经在多个行业领域落地。贝壳找房的OLAP平台是贝壳找房数字化运营的基石,在数据平台中占据着非常重要的位置。在上线StarRocks之前,为了满足不同数据分析场景的需求,贝壳上线了多套数据分析系统,包括Impala、Presto、Kylin、Druid、ClickHouse、Hive等,不同系统对应不同的数据分析需求。即便花了那么多时间和精力,贝壳在数据分析方面依然存在不少痛点:对历史数据的实时更新支持弱、多表Join支持能力差、无法同时支持明细和聚合查询、整体的运维复杂度很高等。在使用了StarRocks之后,贝壳以上的痛点问题,都得到了解决,据悉贝壳现在正在逐步将OLAP数据分析场景全部统一到StarRocks上来。

  不到两年的时间,StarRocks已经取得了一些不错的成绩,未来,StarRocks在产品方面将不断强化,比如将设计全新的实时和离线融合的原生架构,可以同时高效地管理实时数据和离线数据。设计全新的流批融合向量化引擎,同时具备极速处理批的能力和流的能力等。

  除了强化数据库产品本身之外,数据库生态建设也将是其发展重点。“一个比较成熟、比较好的数据库产品,肯定是要有生态的广泛支持,源代码开放的产品其实对于生态合作伙伴的加入,以及别人给你提供一些生态方面支持会更加容易一些。”叶谦说道,关于StarRocks的更多技术内幕,StarRocks也会在公司10月30日举办的年度峰会上分享。

  创业不易,面对质疑最好的回应是获得更多客户的认可和长足的发展。对于StarRocks而言,希望诚如其名,在国产数据库的春天里,仰望星空,一路走下去。

5
相关文章