
连接到 DuckDB 数据库实例
来源:R/Driver.R, R/dbConnect__duckdb_driver.R, R/dbDisconnect__duckdb_connection.R
      duckdb.Rdduckdb() 用于创建或重用一个数据库实例。
duckdb_shutdown() 用于关闭一个数据库实例。
返回一个 adbcdrivermanager::adbc_driver() 对象,用于通过 adbcdrivermanager 包连接 Arrow 数据库。
dbConnect() 连接到数据库实例。
dbDisconnect() 关闭 DuckDB 数据库连接。关联的 DuckDB 数据库实例会自动关闭,不再需要设置 shutdown = TRUE 或调用 duckdb_shutdown()。
用法
duckdb(
  dbdir = DBDIR_MEMORY,
  read_only = FALSE,
  bigint = "numeric",
  config = list(),
  ...,
  environment_scan = FALSE
)
duckdb_shutdown(drv)
duckdb_adbc()
# S4 method for class 'duckdb_driver'
dbConnect(
  drv,
  dbdir = DBDIR_MEMORY,
  ...,
  debug = getOption("duckdb.debug", FALSE),
  read_only = FALSE,
  timezone_out = "UTC",
  tz_out_convert = c("with", "force"),
  config = list(),
  bigint = "numeric",
  array = "none"
)
# S4 method for class 'duckdb_connection'
dbDisconnect(conn, ..., shutdown = TRUE)参数
- dbdir
- 数据库文件的位置。应为文件系统中现有目录的路径。默认情况下(或设置为 - ""),所有数据都保存在 RAM 中。
- read_only
- 设置为 - TRUE以进行只读操作。对于基于文件的数据库,这仅在数据库文件首次打开时应用。后续连接(通过相同的- drv对象或指向相同路径的- drv对象)将默默地忽略此标志。
- bigint
- 64 位整数的返回方式。有两个选项: - "numeric"和- "integer64"。如果选择- "numeric",大整数将被视为双精度/数值类型。如果选择- "integer64",大整数将设置为 bit64 编码。
- config
- 包含 DuckDB 配置标志的命名列表,请参阅 https://duckdb.net.cn/docs/configuration/overview#configuration-reference 了解可能的选项。这些标志仅在实例化数据库对象时应用。后续连接将默默地忽略这些标志。 
- ...
- 保留用于未来扩展,必须为空。 
- environment_scan
- 设置为 - TRUE以将调用环境中的数据框视为表。如果存在同名的数据库表,则该数据库表优先。此设置的默认值可能会在未来版本中更改。
- drv
- duckdb()返回的对象
- debug
- 打印额外的调试信息,例如查询。 
- timezone_out
- 返回给 R 的时区,默认为 - "UTC",这是 DuckDB 目前唯一支持的时区。如果要在本地时区显示日期时间值,请设置为- Sys.timezone()或- ""。
- tz_out_convert
- 如何将时间戳列转换为 - timezone_out中指定的时区。有两个选项:- "with"和- "force"。如果选择- "with",时间戳将以其在指定时区中显示的方式返回。如果选择- "force",时间戳将具有与数据库中时间戳相同的时钟时间,但使用新的时区。
- array
- 数组的返回方式。有两个选项: - "none"和- "matrix"。如果选择- "none",则不返回数组,而是生成错误。如果选择- "matrix",则数组以列矩阵的形式返回。每个数组是矩阵中的一行。
- conn
- 一个 - duckdb_connection对象
- shutdown
- 未使用。数据库实例会自动关闭。 
返回值
duckdb() 返回一个 duckdb_driver 类的对象。
调用 dbDisconnect() 和 duckdb_shutdown() 是为了它们的副作用。
一个 "adbc_driver" 类的对象
dbConnect() 返回一个 duckdb_connection 类的对象。
示例
library(adbcdrivermanager)
with_adbc(db <- adbc_database_init(duckdb_adbc()), {
  as.data.frame(read_adbc(db, "SELECT 1 as one;"))
})
#>   one
#> 1   1
drv <- duckdb()
con <- dbConnect(drv)
dbGetQuery(con, "SELECT 'Hello, world!'")
#>   'Hello, world!'
#> 1   Hello, world!
dbDisconnect(con)
duckdb_shutdown(drv)
# Shorter:
con <- dbConnect(duckdb())
dbGetQuery(con, "SELECT 'Hello, world!'")
#>   'Hello, world!'
#> 1   Hello, world!
dbDisconnect(con, shutdown = TRUE)