DuckDB发布Quack远程协议,支持客户端-服务器多写入模式

2026年5月12日,DuckDB团队正式发布了Quack远程协议,这是一个重要的里程碑更新。Quack让DuckDB实例之间可以互相通信,支持客户端-服务器架构和多并发写入者模式,极大地扩展了DuckDB的使用场景。

什么是Quack协议

Quack是DuckDB的远程通信协议,基于HTTP构建,设计简洁且高性能。它解决了DuckDB长期以来的一个限制——只能作为嵌入式数据库使用,无法像PostgreSQL或MySQL那样提供网络访问。

通过Quack,你可以:

  • 在服务器上运行DuckDB实例,从客户端远程访问
  • 支持多个客户端同时写入数据
  • 进行批量数据操作和小型事务处理
  • 利用DuckDB的列式存储和分析能力为远程应用提供服务

技术特点

基于HTTP

Quack使用HTTP作为传输协议,这意味着可以使用标准的HTTP工具和库进行访问,支持HTTPS加密传输,可以穿过大多数防火墙和代理。

简单易用

Quack保持了DuckDB一贯的简洁风格,启动服务器只需一行命令。客户端连接同样简单,几行Python代码就能完成。

高性能

Quack协议针对DuckDB的工作负载进行了优化,支持从批量数据加载到小型事务的各种场景。

使用场景

  1. 数据分析服务:在服务器上运行DuckDB,为多个客户端提供数据分析能力
  2. ETL管道:从多个数据源汇聚数据到DuckDB进行处理
  3. Web应用后端:为Web应用提供高性能的分析查询能力
  4. 数据共享:团队成员可以共享同一个DuckDB实例
  5. 微服务架构:在微服务中使用DuckDB作为分析引擎

快速上手

1. 安装最新版DuckDB

macOS用brew安装,Linux用官方脚本安装,Python项目用pip安装。

2. 启动Quack服务器

使用duckdb命令行工具启动Quack服务器,可以指定内存数据库或文件数据库。

3. 客户端连接

使用Python的duckdb库连接远程DuckDB实例,执行SQL查询。

与其他数据库的对比

Quack让DuckDB在某些场景下可以替代传统的客户端-服务器数据库。相比SQLite,Quack弥补了网络访问的不足;相比PostgreSQL,DuckDB在分析查询上更快;相比ClickHouse,DuckDB更轻量,部署更简单。

注意事项

  • Quack目前还处于早期阶段,不建议在生产环境中使用
  • 需要DuckDB最新版本支持
  • 并发写入的性能取决于具体工作负载
  • 建议在使用前查阅官方文档了解限制条件

来源:DuckDB官方博客、Hacker News讨论

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容