跳至內容

adbcdrivermanager 的目標是為 Arrow 資料庫連線能力 (ADBC) 提供一個底層、面向開發者的介面,用於驅動程式開發、測試,以及支援依賴 ADBC 驅動程式的使用者套件。

安裝

您可以從 CRAN 安裝 adbcdrivermanager 的發布版本,使用

install.packages("adbcdrivermanager")

您可以從 GitHub 安裝 adbcdrivermanager 的開發版本,使用

# install.packages("pak")
pak::pak("apache/arrow-adbc/r/adbcdrivermanager")

R 的 ADBC 驅動程式使用 pkgbuild 的一個相對較新的功能,以啟用透過 pak 從 GitHub 安裝。根據您安裝 pak 的時間,您可能需要更新其內部的 pkgbuild 版本。

install.packages("pkgbuild", pak:::private_lib_dir())
pak::cache_clean()

範例

這是一個基本範例,向您展示如何解決常見問題

library(adbcdrivermanager)

# Get a reference to a database using a driver. The adbcdrivermanager package
# contains a few drivers useful for illustration and testing.
db <- adbc_database_init(adbcsqlite::adbcsqlite())

# Open a new connection to a database
con <- adbc_connection_init(db)

# Write a table
nycflights13::flights |> write_adbc(con, "flights")

# Issue a query
con |>
  read_adbc("SELECT * from flights") |>
  tibble::as_tibble()
#> # A tibble: 336,776 × 19
#>     year month   day dep_time sched_dep_time dep_delay arr_time sched_arr_time
#>    <dbl> <dbl> <dbl>    <dbl>          <dbl>     <dbl>    <dbl>          <dbl>
#>  1  2013     1     1      517            515         2      830            819
#>  2  2013     1     1      533            529         4      850            830
#>  3  2013     1     1      542            540         2      923            850
#>  4  2013     1     1      544            545        -1     1004           1022
#>  5  2013     1     1      554            600        -6      812            837
#>  6  2013     1     1      554            558        -4      740            728
#>  7  2013     1     1      555            600        -5      913            854
#>  8  2013     1     1      557            600        -3      709            723
#>  9  2013     1     1      557            600        -3      838            846
#> 10  2013     1     1      558            600        -2      753            745
#> # ℹ 336,766 more rows
#> # ℹ 11 more variables: arr_delay <dbl>, carrier <chr>, flight <dbl>,
#> #   tailnum <chr>, origin <chr>, dest <chr>, air_time <dbl>, distance <dbl>,
#> #   hour <dbl>, minute <dbl>, time_hour <chr>

# Clean up!
adbc_connection_release(con)
adbc_database_release(db)

也可以使用 adbc_connection_*()adbc_statement_*() 函數在更底層的層級與驅動程式管理器互動(詳情請參閱參考文件)。