数据库行业的叛逆者大数据已死,MotherDuck当立
大数据已死现今我们最重要的事情不是担心数据大小,而是专注于我们将如何使用它来做出更好的决策。
数据库行业发展至今,在数据层面有很多的加速和变革,尤其是过去几年的云数仓爆炸式增长,带来了行业的很多变化。毫无疑问,云数据仓库已成为企业数据堆栈的基石,各种规模的公司和组织习惯使用数据仓库来分析业务数据。Snowflake的迅速崛起就是这一趋势的典型代表。
但如果我们把大数据的变量拆成速度、数量和多样性三个维度,我们发现大家最关注的维度仍然是速度。当我们重新审视对大数据的定义,并且结合数据资产的要素,我们最重要的需求是从OLTP〔1〕数据库处理的数据资产上的微服务对低延迟消耗的要求。
与此同时,很多大数据部门购买了所有新工具并从遗留系统迁移之后,他们发现仍然无法去理解这些数据,也许数据大小根本不是问题所在。世界的数据量变大了,但硬件也以更快的速度变大了,供应商仍在推动硬件的能力扩展。今天我们就来聊一家有点不一样思路的数据库创业公司MotherDuck,看看他们的产品DuckDB是如何来理解这个世界的。历史沿革:欧美合作的商业化产物
说起MotherDuck的前世今生,首先还是要从产品DuckDB讲起。DuckDB是一个专门构建的进程内在线分析处理数据库管理系统,其旨在实现高效数据分析。从2019年DuckDB第一个开源版本发布,到2021年,短短两年间,DuckDB的周下载量增长迅速。此时,这个原本由荷兰数学和计算机科学研究学会(CWI)创立的项目被分拆出来独立运作,项目研究人员HannesMhleisen和MarkRaasveldt成立了DuckDBLabs。
故事至此,为什么MotherDuck还未出现呢?别急,我们还缺少另一位主角谷歌BigQuery的创始工程师JordanTigani,他也关注着DuckDB,并一直寻求为市场提供轻型数据库产品。在和DuckDBLabs的联合创始人Mhleisen沟通并获得支持后,Tigani开始尝试将开源的DuckDB商业化。新公司MotherDuck就此诞生,并获得了由红点资本(美国)领投的1250万美元天使轮融资和A16Z领投3500万美元A轮融资,公司估值1。75亿美元。
回头来看,作为一家起步时间不长的初创公司,获得这样的资本认可不可谓不成功。由于DuckDB并非MotherDuck的原创开源产品,因此,想要未来长久且稳定地基于开源产品构建服务,得到项目创始团队的支持至关重要。
在双方的合作中DuckDB团队一定程度上参与了MotherDuck,而MotherDuck又是DuckDB基金会的成员,该非营利组织拥有DuckDB的大部分知识产权。DuckDB自己的商业部门DuckDBLabs是MotherDuck的股东。不得不说Tigani与DuckDBLabs合作是聪明之举,通过此举,双方利益得以绑定。定位:OLAP领域的SQLite
要聊DuckDB,我们先来看看SQLite,其可以称得上世界上使用最多的关系型数据库系统,我们几乎在每台手机、每个浏览器和操作系统上都能找到它的身影,它甚至也在飞机上运行。
由于SQLite是嵌入式的,因此其不需要外部服务器管理。同时,他几乎绑定了每种语言,也正是基于这些特点,让其更容易使用,我们必须承认SQLite的伟大。但与此同时,其问题也突出。SQLite是为OLTP而设计的,采用行存储,不能利用内存来加快计算速度,查询优化器非常有限,所以对于分析来说非常不友好。
正是基于此,DuckDB看到了机会。简单来讲,它是用于分析(OLAP领域〔2〕)的SQLite,作为一个进程内数据库,它使开发人员、数据科学家、数据工程师和数据分析师能够使用纯SQL以极快的分析能力为它的代码提供支持。此外,它有能力在可能存在的地方分析数据,例如在笔记本电脑或云端。
DuckDB使用了一个列式矢量化查询引擎,该引擎仍会解释查询,但会在一次操作中处理大量向量,由此减少传统系统(如PostgreSQL、MySQL或SQLite)中按顺序处理每一行的开销,提升查询性能。
SQLite是小型的关系型数据库,可用于进程内的部署。
DuckDB所处象限认知:数据库行业的非共识
与行业大部分公司不同,MotherDuck拥有不一样的行业信仰。
首先,Tigani认为大多数客户和组织的数据存储适中,并不大。同时,客户数据大小服从幂律分布。最大客户的存储量是第二大客户的两倍,第三大客户的存储量是第二大客户的一半,依此类推。因此,虽然有客户拥有数百PB的数据,但大小很快就会下降。
其次,存算分离中存在存储偏差,数据大小增速快于计算。假如业务是静态的,既不增长也不收缩,数据随时间线性增长,但计算需求不会改变太多,因为大多数分析都是针对近期数据进行的。这种存算偏差,让我们可能根本不需要进行分布式处理。而且,很多用户希望他们的问题得到简单快速的答案他们不想等待云。
最后,大多数数据很少被查询。得到处理的数据中,有很大一部分不到24小时。到数据保存一周时,查询的可能性或许比最近一天低20倍。历史数据往往很少被查询,这也就意味着数据工作集大小比我们预期的易于管理。如果有一个包含10年数据的PB表,这些数据最后可能被压缩至不到50GB。所以,很多云厂商专注于100TB的查询性能,这可能不仅与大多用户无关,且会分散他们提供出色用户体验的能力。
因此,MotherDuck提出了自己的观点,大数据是真实存在的,但大多数人可能不需要担心。大数据已死现今我们最重要的事情不是担心数据大小,而是专注于我们将如何使用它来做出更好的决策。我们也会时常问自己,组织真的会生成大量数据吗?如果生成了,真的需要一次使用大量数据吗?如果需要,数据真的太大而无法放在一台机器上吗?也许不同的组织会给出不同的答案。
大数据已死未来:没有银弹,没有万能的选择
我们目前所处的时代高速变化,产生了很多数据库管理系统。正如我们看到的情况,目前这个世界还没有万能的数据库管理系统。大家都会采取不同的权衡取舍,以更好地适应特定的用例,DuckDB也是如此。有时我们需要侧重考虑为多个并发用户提供服务,有时我们也需要一个对单用户工作负载非常快的嵌入式数据库。
DuckDB会成功吗?答案也许并不确定。不过我们确实看到了一个充满活力的开源社区正在形成,虽然还未有任何商业化的信息披露,但我们应有耐心给予这个A轮公司,毕竟故事才刚刚开始。
DuckDB在Github的star数量变化
注释:
〔1〕OLTP:OnLineTransactionProcessing联机事务处理过程,也称为面向交易的处理过程。
〔2〕OLAP:OnlineAnalyticalProcessing联机分析处理。联机分析处理OLAP是一种软件技术,它使分析人员能够迅速、一致、交互地从各个方面观察信息,以达到深入理解数据的目的。
作者简介
郑博,AkaHarbour哈博。崔牛会非著名牛油,人到中年的2B基础架构创业老炮,CnosDB云原生时序数据库开源社区发起人。CnosDB简介
CnosDB是一款高性能、高易用性的开源分布式时序数据库,现已正式发布及全部开源。
欢迎关注我们的社区网站:https:www。cnosdb。com