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 系统。
下载 DuckDB 并解压
下载地址https://github.com/duckdb/duckdb/releases/download/v1.0.0/duckdb_cli-windows-amd64.zip
解压后

双击启动

至此,你就可以使用 DuckDB 了。没错,你没有看错,就是这么极致的丝滑。
使用
.help
查看帮助命令

对本地 CSV 文件计数

63w+的数据量,只是一瞬间。
不能再演示了,我怕你激动、兴奋的跳起来。
进阶
DuckDB 让你心动了吗?如果你想要学习数据分析,你不再需要学习安装 Mysql,不再需要学习 Python,只需要动动手,立马就可以开始。
关注:遇码,回复 duckdb,获取官方文档。
版权声明: 本文为 InfoQ 作者【遇码】的原创文章。
原文链接:【http://xie.infoq.cn/article/811e20d4d8e5fbd24085d91a3】。文章转载请联系作者。
评论