duckdb
DuckDB 是一个进程内 SQL OLAP 数据库管理系统。 它旨在支持分析型查询工作负载,并针对快速查询执行进行了优化。 本仓库包含 DuckDB 的 R 绑定。
从 CRAN 安装
对于在 Windows 或 macOS 上拥有 CRAN 可用二进制文件的较新 R 版本,这是推荐的方法。
install.packages("duckdb")
对于 Linux 或较旧版本的 R,从源代码安装该包可能需要长达一小时。 请考虑使用 Posit Public Package Manager 进行二进制安装(参见下一节)。
从 Posit Public Package Manager 安装
该仓库为多种平台提供 CRAN 软件包的二进制构建版本。 请遵循 https://p3m.dev/client/#/repos/cran/setup 中的设置说明。 例如,要安装很可能适用于您 Linux 系统的 duckdb 的 ManyLinux 版本,请使用:
install.packages("duckdb", repos = sprintf(
"https://p3m.dev/cran/latest/bin/linux/manylinux_2_28-%s/%s", R.version["arch"], substr(getRversion(), 1, 3)
))
要检查您的平台的二进制文件可用性,请访问 duckdb 搜索页面。
从 r-universe 安装
此仓库提供开发版本。 二进制文件适用于较新版本的 R 以及某些平台。 请参阅 https://docs.r-universe.dev/install/binaries.html 以了解如何配置 Linux 上的二进制包安装。
install.packages("duckdb", repos = c("https://duckdb.r-universe.dev", "https://cloud.r-project.org"))
从源代码安装该包可能需要长达一小时。
从 GitHub 安装
# install.packages("pak", repos = sprintf("https://r-lib.github.io/p/pak/stable/%s/%s/%s", .Platform$pkgType, R.Version()$os, R.Version()$arch))
pak::pak("duckdb/duckdb-r")
从 GitHub 安装该包可能需要长达一小时。
版本
本仓库中的源码以多个名称发布——
duckdb 在 CRAN 上,
以及 r-universe 上的每个版本](https://duckdb.r-universe.dev/builds)。
.dev 版本由自动化的 vendoring 流程创建;
CRAN 和 LTS 版本始终指向稳定的上游发布版本。
| 版本 | 系列 | 类型 | 进度 |
|---|---|---|---|
duckdb | v1.5-variegata | CRAN | |
duckdb.1.4 | v1.4-andium | LTS | |
duckdb.dev | main | dev | |
duckdb.1.5.dev | v1.5-variegata | dev | |
duckdb.1.4.dev | v1.4-andium | dev |
徽章跟踪每个 .dev 系列:
ahead 统计领先于该系列发布分支的提交数,
in flight 统计在 CI 中但尚未被信任的提交数,
buffered 统计已 vendored 但尚未验证的提交数。
请参阅手册中的
branches/
以了解完整模型。
用户指南
请参阅 DuckDB 文档中的 R API。
文档
本仓库所记录的所有内容均可从
手册
访问,
这是一个严格的主题层级结构;
AGENTS.md
是维护者和编码代理的入口,而
plan/README.md
列出了设计、计划和历史文档。
BRANCHES.md 和
scripts/VENDORING.md
包含手册仍在吸收的细节。
构建
要构建 R 包,您首先需要克隆此仓库并安装依赖项:
# install.packages("pak", repos = sprintf("https://r-lib.github.io/p/pak/stable/%s/%s/%s", .Platform$pkgType, R.Version()$os, R.Version()$arch))
pak::pak()
然后,安装:
~duckdb-r: R CMD INSTALL .
将 MAKEFLAGS 环境变量设置为 -j8 或类似值以进行并行构建。
配置 ccache 以加快重复构建的速度。
一个链接预构建引擎并在几秒内完成的构建,
以及其他细节,在手册的
build/ 下有描述。
Vendoring
此包包含 DuckDB C++ 库的 vendored 副本。Vendoring 过程是自动化的——一个计划任务会按提交逐个将每个发布系列与上游 DuckDB 仓库同步。其工作原理以及如何进行手动 vendoring,在手册的 operations/vendoring/ 下有说明。
Contributors
感谢所有 contributors 为本仓库做出贡献的人,以及当代码仍托管在主 duckdb/duckdb 仓库时做出贡献的人:
Mark Raasveldt, Pedro Holanda, Tom Ebergen, Reijo Sund, Nicolas Bennett, Patrik Schratz, Tishj, Laurens Kuiper, Sam Ansmink, Andy Teucher, Hadley Wickham, Jonathan Keane, Lindsay Wray, Richard Wesley, Elliana May, Edwin de Jonge, Dewey Dunnington, Carlo Piovesan, Andre Beckedorf, Tania Bogatsch, Pedro Ferreira, Maximilian Girlich, James Lamb, James Atkins, usurai, Ubuntu, Noam Ross, Michael Antonov, Jeroen Ooms, Jamie Lentin, Jacob, and Chilarai.