DuckDB 是一个开源的列式关联数据库管理系统RDBMS),最初由 Mark RaasveldtHannes Mühleisen荷兰的 Centrum Wiskunde & Informatica (CWI) 开发,并于2019年首次发布。项目背后的团队表示,每月有数百万次下载。它被设计用于在嵌入式配置中对大型资料库进行复杂查询时提供高性能,例如合并具有数百列和数十亿行的表。与其他嵌入式数据库(例如 SQLite)不同,DuckDB 并不专注于事务处理(OLTP)应用,而是专门用于在线分析处理(OLAP)工作负载。

DuckDB 在其 OLAP 利基市场中不与传统的 DBMS(如 MSSQLPostgreSQLOracle 资料库)竞争。虽然使用 SQL 进行查询,但 DuckDB 针对无服务器应用,并通过使用 Apache Parquet 文件进行存储来提供极快的响应速度。这些特性使其成为交互模式下大数据集分析的热门选择,但不太符合企业数据存储的要求。

DuckDB 使用向量化查询处理引擎。DuckDB 没有任何外部依赖,只需要一个 C++11 编译器就能完整编译。DuckDB 也和传统的客户端-服务器模型不同,它会在宿主行程中执行(例如,它有 Python 解译器的绑定,能够直接将资料放入 NumPy 阵列中)。

商业应用

FacebookGoogleAirbnb 都有使用 DuckDB。

DuckDB 的共同作者 Mühleisen 也经营一家名为 DuckDB Labs 的软体支援和谘询公司。该公司不接受风险投资,而是声明“我们认为投资会迫使项目走向盈利化,我们更希望保持 DuckDB 的开源状态,让更多人能够使用”。

MotherDuck 使用 DuckDB 作为资料平台,它获得了 1 亿美元的资金,投资者包括 Andreessen Horowitz。

外部链接