DuckDB 支持

适用于: C/C++, GLib/Ruby, Go, Python, R

DuckDB0.8.0 版本起提供 ADBC 支持。

注意

DuckDB 不是 Apache Arrow 项目的一部分,是独立开发的。

安装

请参阅 DuckDB 文档

用法

DuckDB 中的 ADBC 支持需要驱动管理器。

请参阅 DuckDB C++ 文档

您必须将 libduckdb.so 放在 LD_LIBRARY_PATH 上,或者与运行的可执行文件放在同一目录中。 这需要 CGO 并加载 DuckDB 驱动程序。

import (
   "context"

   "github.com/apache/arrow-adbc/go/adbc"
   "github.com/apache/arrow-adbc/go/adbc/drivermgr"
)

func main() {
   var drv drivermgr.Driver
   db, err := drv.NewDatabase(map[string]string{
      "driver": "libduckdb.so",
      "entrypoint": "duckdb_adbc_init",
   })
   if err != nil {
      // handle error
   }
   defer db.Close()

   cnxn, err := db.Open(context.Background())
   if err != nil {
      // handle error
   }
   defer cnxn.Close()
}

您必须拥有 DuckDB 0.9.1 或更高版本。

请参阅 DuckDB Python 文档

您必须拥有 DuckDB 0.9.1 或更高版本。

# install.packages("duckdb")
library(adbcdrivermanager)
db <- adbc_database_init(duckdb::duckdb_adbc(), ...)

支持的功能

DuckDB 中的 ADBC 支持仍在进行中。 有关详细信息,请参阅 duckdb/duckdb#7141