Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >远离硅谷、不靠风投!18人团队逆势搞出超人气数据库,CTO 一人5年多写了15万行代码

远离硅谷、不靠风投!18人团队逆势搞出超人气数据库,CTO 一人5年多写了15万行代码

作者头像
深度学习与Python
发布于 2024-06-17 09:10:52
发布于 2024-06-17 09:10:52
1480
举报
编译 | 核子可乐、褚杏娟

有一个数据库项目,每月下载次数高达数百万,仅扩展的下载流量每天就超过 4 TB 。在 GitHub 和社交媒体平台上,该数据库拥有数以万计的 Stars 和粉丝,还拥有两家以其为业务核心建立的初创公司。

这样的活力与生态发展水平,往往只有规模更大、资历更老的开源列式存储数据库才能做到。然而,这个数据库才诞生 5 年多。而最近,这个极具人气的数据库才迎来了自己的第一个大版本 1.0.0,代号“Snow Duck” (anas nivis)。

不错,这就是分析型关系数据库 DuckDB。

“我们本可以在 2018 年发布 DuckDB 1.0.0,或者再等十年。从来没有一个伟大的时刻,因为软件( TeX 除外)永远没有完成的那一天。”DuckDB 联合开发者兼支持公司 DuckDB Labs 创始人 Hannes Mühleisen 说道。

之所以现在发布是因为,“版本 1.0.0 对于数据管理系统来说意义重大,而不是对像鸡蛋计时器这样的应用程序(无意冒犯)。”

Mühleisen 解释称,数据管理系统(即使是纯分析系统)是任何应用程序的核心组件,因此开发人员和用户之间始终存在着一种隐含的信任契约。用户依赖数据库提供正确的查询结果,并且不会丢失数据。同时,系统开发人员需要意识到自己的责任,不能随意破坏人们的应用程序。

凭借 1.0.0 版本的发布,DuckDB 已经成为一款成熟的数据库方案,并承诺采用新的数据模型与更高的稳定性以增强向下兼容能力。

据悉,团队进行了大量更改,现在已经可以保证向下兼容,而且在存储格式层面实现了一定程度的向上兼容。“如果将数据写入 DuckDB 数据库,那么这种新格式能保证用户在 10 年之后仍可正常读取该文件。这是一项意义重大的变化。”

凭什么在数据库市场“杀”出来

“自 2018 年为这个项目写下了第一段源代码,已经过去了将近六年,期间发生了很多事情:现在有超过 300,000 行 C++ 引擎代码、超过 42,000 次提交,并且有近 4,000 个问题被提出和关闭。”该项目的创建者 Mark Raasveldt 和 Hannes Mühleisen 回忆道。

DuckDB Github Stars 数变化

DuckDB 诞生于阿姆斯特丹的 Centrum Wiskunde & Informatica 数学和理论计算研究中心,Mühleisen 在这里担任教授。2018 年,Mühleisen 和当时的 CWI 博士生 Mark Raasveldt 创建了 DuckDB。

Mühleisen 想要打造一套分析数据库,其性能与 F1 赛车相当,但用户友好度却向丰田卡罗拉看齐。而当他和他的团队做起来创建这样的系统时,DuckDB 应运而生。

该项目被命名为“DuckDB”,因为创建者认为鸭子具有很强的适应能力,可以依靠任何东西生存,这与他们设想的数据库系统运行方式类似。此外,Mühleisen 还养了一只名叫 Wilbur 的宠物鸭,这也是该项目名字的灵感来源。

Vectorwise 创建者 Peter Boncz 虽然未深入参与编写 DuckDB 代码库,但他也为创建者提供了宝贵的建议和见解。

从诸多方面来看,DuckDB 其实代表着典型大数据管理产品的对立面。

DuckDB 的开发者并没有像其他人那样选择以分布式数据存储来处理规模化数据,而是打破了从众心理,“义无反顾”选择了单节点。

作为一位一生都在学术界工作的数据库研究人员,Mühleisen 并不喜欢现代大数据管理系统给数据科学与高级分析带来的复杂性与高难度。

“我们早早就明确了不会使用分布式架构。当时每个人都在讨论将 TB 乃至 PB 级规模的数据集分派给成千上万个节点。但实际上,99% 的用户所使用的数据集其实根本达不到那样的体量。而只要不必选择分布式,那么用户体验就能大大简化。”Mühleisen 表示。

如果客户的业务达到了谷歌那样的规模,那就只能选择分布式架构以及“由此衍生的种种复杂到疯狂的方案”,比如说 MapReduce。但 Mühleisen 强调,“对我们大多数人来说,通常需要关注的数据根本达不到 PB 那个级别。相反,多数情况也就是‘这有个烦人的文件,我想读取它的内容并执行一些聚合操作’。”

DuckDB 的另一个特点就是忠于传统 SQL。 虽然 NoSQL 运动仍在蓬勃发展,也有不少人希望使用 Python 和数据帧来查询数据,但 Mühleisen 及其团队意识到 SQL 并没有本质缺陷,所以并不需要被强行替代。

“我们已经无数次听到 SQL 被宣判死刑,多到我都记不清了。但我们还是决定采用 SQL,事实也证明这是个好主意,因为 SQL 的群众基础真的很广。”Mühleisen 说道。

与其他 OLAP 风格的数据库一样,DuckDB 采用列式存储(用于高效聚合)及向量化处理(用于提高性能)功能,旨在以极快的速度执行 SQL 查询。但它跟 Teradata 或者 Redshift 那种强调数据仓库属性的数据库不同,并不适合作为存放所有数据以建立“单一事实来源”的选项。

其他 OLAP 数据库向右,DuckDB 向右。在功能设定上,DuckDB 更像是嵌入式分析类应用,而非大家熟悉的数据仓库。

DuckDB 体量小巧,仅有 50 MB 大,可在各种操作系统(LinuxWindows 等)上运行,并提供多种软件包,包括 Python、R 和 JavaScript 等。

前谷歌 BigQuery 工程师 Jordan Tigani 指出,DuckDB 在设计上逆数据仓库的云扩展潮流而动,而且充分考虑到以高性能笔记本电脑为运行载体。身为 DuckDB 的忠实粉丝,Tigani 与他人共同创立了 MotherDuck 公司,专门为 DuckDB 提供后端扩展。

DuckDB 还有一个独门绝技,就是在有限的资源之下实现高性能分析与文件转换。

DuckDB 在设计上充分考虑分析处理,而非用于事务处理。大家没法像使用 Postgres 数据库那样在 DuckDB 中每秒处理百万行数据,但如果每秒需要读取十亿行数据,那交给它准没错。

DuckDB 在分析效率方面确实大有优势。这套数据库通常可以用单个节点取代以往需要 10 个节点组成的小型 Spark 集群。同样,当人们“将太多数据行塞进”Pandas 时,沉重的运行开销也往往会凸显出 DuckDB 的轻量化特质。

“我们有时候会自称为分析型的 SQLite。本质上讲,我们可能发明了一种新的系统类型……基本思路就是无需单独的数据库服务器,只要将 DuckDB 粘到现有应用程序之上,即可对其进行分析。”Mühleisen 表示。例如在与仪表板对接之后,这款 C++ 数据库就能在仪表板上提供毫秒级的响应时间。

Mühleisen 指出,“对于客户来说,DuckDB 的价值就是能够运行在任何你需要它运行的地方,将查询处理尽可能贴近用户,从而为用户体验提供巨大助益。”

如果用户需要进程内 OLTP 系统,Mühleisen 会建议他们考虑 SQLite。反过来,如果 SQLite 用户需要分析功能,那 Mühleisen 建议大家给 DuckDB 一个机会。

远离硅谷和风投的 18 人团队

DuckDB Labs 数据库背后的工程师团队身处阿姆斯特丹,远离永远忙碌喧嚣的美国硅谷。

但千万别误以为这里技术落后——阿姆斯特丹数学与计算机科学中心正是全球最受欢迎编程语言 Python 的开发团队所在地。而且 Mühleisen 坦言,走自己的路已经成为 DuckDB 的一项独特优势。

“我认为这让我们得以做出一些非常规的选择和成果。如果身在旧金山,那我们将没有自由可言。现在我们可以忽略掉那些商业惯例,做一些我们自己认为正确的事情并真正取得成功。”

另外,该公司一直在拒绝风险投资的介入。

第二家 DuckDB 初创公司、总部位于华盛顿州西雅图的 MotherDuck 开发出了 DuckDB 的无服务器版本,并得到了 Mühleisen 以及 DuckDB Labs 联合创始人兼 CTO Mark Raasveldt 的支持。尽管这家企业已经筹集到 5250 万美元,并将于今年秋季迎来 4 亿美元估值,但 DuckDB Labs 这边却一分钱也没拿。

而雇用了 DuckDB 核心贡献者的公司 DuckDB Labs 从未获得任何外部投资,因此该公司完全由团队所有。这种做法也收到了社区的欢迎,“这似乎是长期保护开源项目的绝佳结构。”有网友说道。

风险投资者们当然热情伸出了橄榄枝。Mühleisen 坦言,“我们当然吸引到了不少风险投资公司的关注,各方都希望跟我们聊聊。比如 Andreessen,比如 Sequoia,但最终我们拒绝了所有风险投资方的邀约。”

这当然不是一个简单的过程。他“只是某种技术提供商”的想法并没有引起共鸣,之后 Mühleisen 与其他成熟数据库公司的人交谈后意识到,他想要更加开放、更加灵活,而且不想受某个特定应用领域的限制。

当前,实验室的业务模式是为 DuckDB 提供咨询和支持服务,该团队表示,这种方式目前进展顺利。通过合同收入,DuckDB Labs 为 18 人的团队提供长期和战略性的 DuckDB 开发资金。同时,项目中的知识产权由独立的 DuckDB 基金会持有,这个非营利性基金会确保 DuckDB 将在 MIT 许可下长期存在。

DuckDB Labs 员工

有报道称,DuckDB Labs 公司 CTO Mark 是最主力的程序员,50% 的代码是他一人完成,另外还有 13 个程序员,1 个测试实习生,1 个人负责开发者生态,1 个人负责培训与文档。

结束语

“我最近在 DuckDB 上下了很大的赌注。我已将其添加到免费 SQL 编辑器 qStudio 的核心中。现在在编辑器中,可以将任何数据库的表保存到本地 duckdb 实例,甚至可以在任何服务器之间连接。”有网友说道。

随着 DuckDB 实例遍布全球,这杆独树一帜的大旗也显得愈发鲜明。Mühleisen 表示,项目的普及主要靠那些对 DuckDB 独特设计理念表示赞赏的使用者们的口口相传。

“我认为推动成功的另一个因素,就是这个领域还没有被技术方案挤满和占据。数据库市场并不是特别拥挤,我认为我们最终做出了最明智的权衡——就是毫不妥协,以一种触动人心的全新方式打造产品。”

根据 Mühleisen 介绍,美国宇航局(NASA)正将 DuckDB 引入某些应用场景(但未做明确说明),FiveTran 也将其纳入 Apache Iceberg 项目的开发流程。

DuckDB 的爆红对于 Mühleisen 一说无疑是段有趣的经历。到目前为止,他的整个职业生涯都非常“单调”,就是一位踏踏实实的数据库研究员。“眼前的这一切真是太疯狂了。身为软件开发者,谁能想到自己的成果会获得如此夸张的人气和热度呢?”

参考链接:

https://www.madrona.com/motherduck-jordan-tigani-duckdbs-hannes-muhleisen-partnerships-commercializing-open-source-projects/

https://www.datanami.com/2024/03/05/duckdb-walks-to-the-beat-of-its-own-analytics-drum

https://www.theregister.com/2024/06/05/duckdb_promises_greater_stability_with/

声明:本文由 InfoQ 翻译整理,未经许可禁止转载。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-06-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 InfoQ 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
那位用Rust重写数据库的创始人来复盘了:删除27万行C++代码,值吗?
嘉宾 | 吴英骏博士 采访 | 赵钰莹 数据库初创企业 RisingWave Labs 曾经发表了一篇博客文章,宣布完全删除掉了 RisingWave(该公司开发的云原生流式数据库) 的 27 万行 C++ 代码库,并用 Rust 语言从头开始重写了一遍系统。本文,我们采访到了该公司的创始人 &CEO 吴英骏博士,详细探讨了重写前中后期的准备、遇到的问题以及经验复盘。 放弃 Rust,初抉择是 C++ InfoQ:选择哪种编程语言和 RisingWave 的特性有关系吗? 吴英骏:RisingWav
深度学习与Python
2023/03/29
9220
那位用Rust重写数据库的创始人来复盘了:删除27万行C++代码,值吗?
DuckDB:适用于非大数据的进程内Python分析
DuckDB 是一款进程内分析数据库,它可以在无需维护分布式多服务器系统的情况下处理出人意料的大型数据集。最棒的是什么?您可以直接从 Python 应用程序分析数据。
云云众生s
2024/06/03
2.1K0
ClickHouse 撇清与俄罗斯的关系:其是美国公司
ClickHouse起源于俄罗斯的Yandex,其商业化由美国公司Altinity主导。 ClickHouse是一款面向列的数据库管理系统,允许使用SQL查询实时生成分析报告。ClickHouse在2016年开始走红,Apache Spark那时候恰好处于鼎盛时期。TiDB在2020年的活跃代码贡献者也超过200个。CockroachDB、Prometheus、MongoDB和TrinoDB则处于第二竞争梯队,活跃贡献者在150个至170个之间。 Altinity CEO 3月8日发表声明称:ClickH
云头条
2022/04/06
9770
ClickHouse 撇清与俄罗斯的关系:其是美国公司
现场报道 SIGMOD 2019 数据库顶级会议
| 导语ACM SIGMOD/PODS 2019 数据管理国际会议于6月30日到7月5日在荷兰首都阿姆斯特丹召开。腾讯技术团队直击现场第一时间带回大会盛况。 SIGMOD第一天大会Keynote主题为“Responsible Data Science”;第二天的Keynote主题是区块链,更偏应用一些,由IBM Almaden研究中心的著名数据库研究员C. Mohan报告。他自从2016年以来重点研究和推广区块链技术,据统计已经在全世界十几个国家做过相关的报告。区块链技术经过了十年的发展,至今还存在一些争
腾讯数据库技术
2019/07/09
2K0
现场报道 SIGMOD 2019 数据库顶级会议
2025 年 3月 Apache Hudi 社区新闻
欢迎阅读由 Onehouse.ai[1] 为您带来的 2025 年 3 月 Hudi 通讯!本月,我们为您带来新一轮的项目更新、社区焦点和技术深度探讨,这些内容将继续塑造数据仓库的未来。
ApacheHudi
2025/04/05
800
2025 年 3月 Apache Hudi 社区新闻
80 岁 Postgres 创始人、数据库领域“祖师爷”想颠覆数据库设计:不推翻下当前技术,不足以谈人生
刚刚过完 80 岁生日的 Michael Stonebraker 没打算退休,近年来他又开始了新的尝试,希望再一次改变世界。
深度学习与Python
2023/12/28
2460
80 岁 Postgres 创始人、数据库领域“祖师爷”想颠覆数据库设计:不推翻下当前技术,不足以谈人生
分析型数据库之MonetDB
提示:公众号展示代码会自动折行,建议横屏阅读 ---- 1 历史 MonetDB是荷兰阿姆斯特丹大学数学和计算机科学的一个研究所CWI开发的。CWI最有名的是发明了Python(Python之父Guido van Rossum毕业于阿姆斯特丹大学,当时在这里工作),并且还发明了MonetDB、VectorWise(2008年)等产品。 MonetDB起源于二十世纪90年代,一个数据挖掘项目需要一个分析型数据库,CWI开发了一叫Data Distilleries,该产品成为了MonetDB的早期产品。 Mo
腾讯数据库技术
2019/11/08
3.6K0
分析型数据库之MonetDB
KubeCon Europe 上发现的数据库趋势
翻译自 Database Trends Spotted at KubeCon Europe 。
云云众生s
2024/03/27
1430
未来五年,大数据将与云计算更加融合
很多初创公司都引入了云平台上的管理服务,按需部署自己的系统。大数据和云计算的融合往往是互联网公司的首先项,尤其是初创的软件和数据服务供应商。
IT阅读排行榜
2018/08/13
5420
【资讯】甲骨文推出大数据SQL今年秋季上市
企业正在寻求以创新方式管理尽可能多的数据及数据源。尽管Hadoop、NoSQL等技术提供了应对大数据问题的具体方法,但是这些技术却可能引入数据孤岛,导致形成关键洞察力所需的数据访问及数据分析复杂化。为了最大化信息价值,更好的处理大数据,企业需要逐步改变数据管理架构,使之变成大数据管理系统,以无缝整合各种来源、所有类型的数据,包括Hadoop、关系数据库以及NoSQL。大数据管理系统在简化所有数据访问的同时,还应该帮助企业利用人员的现有技能,保持企业级数据安全性及数据治理能力,并且保护敏感信息,满足监管要
小莹莹
2018/04/19
5600
【资讯】甲骨文推出大数据SQL今年秋季上市
译:排名前20位的大数据职位及其职责,你能胜任么?
大数据在全球范围内的IT就业市场占有越来越重要的影响。根据Gartner公司提供的数据,截至到2015年将有440万的IT工作来支持大数据,仅美国就会有190万的IT工作产生。看看我们列出的排名前20位的大数据职位及其职责列表。 首席数据官Chief DataOfficer 职责: a. 与行政人员,数据所有者和数据管理员共同为内部和外部的客户创建数据管理策略并且实现数据的准确性和制定工作流程的需求目标。 b. 引导EIM程序,业务数据管理员和数据服务供应商提供数据管理活动。 c. 建立数据政策,标准,
小莹莹
2018/04/20
6410
译:排名前20位的大数据职位及其职责,你能胜任么?
15 年云数据库老兵:数据库圈应告别“唯性能论”
本文由 Cloudberry Database 社区编译自 MotherDuck 官网博文《PERF IS NOT ENOUGH》,原作者为 Jordan Tigani( MontherDuck 联合创始人兼 CEO),译文较原文稍有调整。
深度学习与Python
2024/03/18
2400
15 年云数据库老兵:数据库圈应告别“唯性能论”
图灵奖得主回顾与展望:数据库发展 60 年,AI 颠覆在即?
文章概要:数据库领域的两位重量级人物 Michael Stonebraker 和 Andrew Pavlo 联合发表论文,以 20 年为周期洞悉数据库产业发展,盘点数据库领域的发展,本文是第二篇(https://db.cs.cmu.edu/papers/2024/whatgoesaround-sigmodrec2024.pdf),第一篇发表于 2004 年(https://books.google.com/books?hl)。文章结合近 2 年来 AI 蓬勃发展,给出了非常具体的辛辣“评论”。两位大神作者,帮助读者拨开迷雾,了解数据库领域发展的脉络,帮助读者看清数据技术的发展路线。Michael Stonebraker 和 Andrew Pavlo 的总结很有洞见,但笔者不完全同意文中对未来的预测观点,同时认为支撑 RDBMS 和 SQL 的核心支柱正在发生动摇:AI 的出现正在撼动数据库领域的“传统”模式。未来的数据架构和模式的演进,有更多可能性等待业界学者和产研专家们发掘。
深度学习与Python
2024/07/24
2690
图灵奖得主回顾与展望:数据库发展 60 年,AI 颠覆在即?
数据库信息速递 MONGODB CTO 看数据库发展趋势 与 不使用MONGODB你就要交“创新税”
MongoDB的首席技术官Mark Porter深入了解数据库市场,并探讨了所谓的"创新税"如何阻碍生产出色科技解决方案的能力。
AustinDatabases
2023/09/06
1650
数据库信息速递  MONGODB CTO 看数据库发展趋势 与  不使用MONGODB你就要交“创新税”
为了让你搞定数据库选型,这些工程师重写了 26 万行代码
作者 | 王一鹏 无论多么有主见的架构师,在做数据库选型的时候,也可能会犯难。 传统 SQL、NoSQL 还是 NewSQL?架构风格是以 久经考验的关系型数据库为主,还是偏向所谓原生的分布式架构?如果提及具体产品,那选择就更多了,TiDB、OceanBase、PolarDB、TDSQL、GaussDB、MongoDB…… 现在还有许多服务于新场景的产品,比如处理时序数据的 TDengine,处理图数据的 Nebula Graph……以及最老派又最完善的 Oracle。 如果从业务场景或即将面临的迁移成
深度学习与Python
2023/04/01
2700
为了让你搞定数据库选型,这些工程师重写了 26 万行代码
「集成架构」2020年最好的15个ETL工具(第二部)
ETL代表提取、转换和加载。它是从任何数据源中提取数据并将其转换为适当格式以供存储和将来参考的过程。
架构师研究会
2021/01/06
2.4K0
「集成架构」2020年最好的15个ETL工具(第二部)
以 Hadoop 和 PostgreSQL 为例,探析数据库拆解的影响
数据库界最近的一个趋势是将数据库拆解成它的组成部分。每个组件都是单独提供的,因此基础设施工程师可以将它们集成到数据库中。
深度学习与Python
2024/03/07
2250
以 Hadoop 和 PostgreSQL 为例,探析数据库拆解的影响
技术译文 | 数据库只追求性能是不够的!
本文和封面来源:https://motherduck.com/,爱可生开源社区翻译。
爱可生开源社区
2024/03/18
2030
技术译文 | 数据库只追求性能是不够的!
巨杉数据库宣布获得1000万美元B轮融资,DCM领投
<数据猿导读> 在当前的资本寒冬之下,国内领先的新一代分布式数据库厂商SequoiaDB巨杉数据库宣布获得世界顶级投资机构DCM领投的B轮融资1000万美元,A轮投资机构启明创投跟投,而此次融资也成为
数据猿
2018/04/20
1.4K0
巨杉数据库宣布获得1000万美元B轮融资,DCM领投
Andy Pavlo:回顾数据库的 2021
本文最初发表于 OtterTune 网站,经原作者 Andy Pavlo 授权,InfoQ 中文站翻译并分享。
深度学习与Python
2022/03/22
9190
Andy Pavlo:回顾数据库的 2021
推荐阅读
相关推荐
那位用Rust重写数据库的创始人来复盘了:删除27万行C++代码,值吗?
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档