写点什么

19.5stars! 未来十年一定要学的免费、开源的 OLAP 数据库——DuckDB

作者:遇码
  • 2025-03-12
    江苏
  • 本文字数:996 字

    阅读完需:约 3 分钟

19.5stars!未来十年一定要学的免费、开源的OLAP数据库——DuckDB
  • Github 近 20 万 Stars

  • 下载次数每月达百万

  • 扩展的下载流量每天超 4TB

  • 大小只有 50MB

  • 仅有 18 人的团队

  • 诞生只有短短五年

  • 即将发布第一个大版本 1.0.0


这极具矛盾的数据背后就是我们今天的主角——DuckDB。

前言

早就想要写一写 DuckDB 了,如果非要给这个早加一个时间,我希望是五年前(那个时候 DuckDB 才刚刚起步)。


最初接触 DuckDB 只是把它当成嵌入式数据库 SQLite 的替代品,并且自认为 SQLite 经过这么多年的打磨与验证,现在就是无可替代般的存在(无知是阻碍我们进步的最大敌人)。然而当我一步步开始深入了解 DuckDB 的时候,我几乎是笑着完成,它完全颠覆了我对一个小小的数据库的认知。


一切都不晚,一切都刚刚好!

DuckDB 是什么

DuckDB 是一个快速的、in-process 的 OLAP 数据库,底层采用列式存储。



名字的由来:创建者认为鸭子具有很强的适应能力,可以依靠任何东西生存,这与他们设想的数据库系统运行方式类似,所以被命名为 DuckDB。


DuckDB 的创建者们设想打造一套分析数据库,其性能与 F1 赛车相当,但用户友好度却向丰田卡罗拉看齐。


另外,当如今的大数据数据库都在采用分布式架构,标榜 TB 乃至 PB 级的数据处理规模时,DuckDB 则站在了对立面,认为 99%的用户远远达不到“大数据”的体量。


“这有个烦人的文件,我想读取他的内容并执行一些聚合操作。”不知道多少人问过这个问题。现在想想每次都把一个上百 M 的 CSV 文件上传到数仓后才能看看里面有什么是多么的笨拙。然而这样的尴尬局面都会因为 DuckDB 而戛然而止。

DuckDB 的特点

  • 免费、开源

  • 嵌入式,不需要服务器,使用超级方便

  • 忠于传统 SQL

  • 采用列式存储(用于高效聚合)及向量化处理(用于提高性能)功能

  • 具有丰富的功能集,支持完整的标准 SQL、事务、二级索引

  • 支持 Python、R、Java、Node.js 等编程语言

  • 扩展机制灵活,可以直接读取 CSV、JSON、Parquet 等文件

  • 专门针对数据分析和 OLAP(在线分析处理)而设计


DuckDB 初体验

本文采用 Windows 系统。


  1. 下载 DuckDB 并解压


下载地址https://github.com/duckdb/duckdb/releases/download/v1.0.0/duckdb_cli-windows-amd64.zip


解压后



  1. 双击启动



至此,你就可以使用 DuckDB 了。没错,你没有看错,就是这么极致的丝滑。


  1. 使用.help查看帮助命令



  1. 对本地 CSV 文件计数



63w+的数据量,只是一瞬间。


不能再演示了,我怕你激动、兴奋的跳起来。

进阶

DuckDB 让你心动了吗?如果你想要学习数据分析,你不再需要学习安装 Mysql,不再需要学习 Python,只需要动动手,立马就可以开始。


关注:遇码,回复 duckdb,获取官方文档。

发布于: 刚刚阅读数: 2
用户头像

遇码

关注

还未添加个人签名 2019-11-15 加入

获得2022年苏州工业园区高技能大赛人工智能算法训练与应用开发赛项三等奖 “苏州市技术能手”称号 亚马逊云科技社区苏州UGL、百度飞桨苏州领航团团长 创立遇码开源技术社区 自媒体博主

评论

发布
暂无评论
19.5stars!未来十年一定要学的免费、开源的OLAP数据库——DuckDB_大数据_遇码_InfoQ写作社区