adbcflightsql 的目標是為 Arrow Database Connectivity (ADBC) FlightSQL 驅動程式提供一個底層、面向開發者的介面。
安裝
您可以從 R-multiverse 安裝 adbcflightsql 的發布版本,使用
install.packages("adbcflightsql", repos = "https://community.r-multiverse.org")
您可以從 GitHub 安裝 adbcflightsql 的開發版本,使用
# install.packages("pak")
pak::pak("apache/arrow-adbc/r/adbcflightsql")
R 的 ADBC 驅動程式使用 pkgbuild 的一個相對較新的功能,以啟用通過 pak 從 GitHub 安裝。根據您安裝 pak 的時間,您可能需要更新其內部版本的 pkgbuild。
install.packages("pkgbuild", pak:::private_lib_dir())
pak::cache_clean()
範例
這是一個基本範例,向您展示如何解決常見問題。
library(adbcdrivermanager)
# Use the driver manager to connect to a database. This example URI is
# grpc://127.0.0.1:8080 and uses a Go FlightSQL/SQLite server docker image
uri <- Sys.getenv("ADBC_FLIGHTSQL_TEST_URI")
db <- adbc_database_init(adbcflightsql::adbcflightsql(), uri = uri)
con <- adbc_connection_init(db)
# Write a table
con |>
execute_adbc("CREATE TABLE crossfit (exercise TEXT, difficulty_level INTEGER)") |>
execute_adbc(
"INSERT INTO crossfit values
('Push Ups', 3),
('Pull Ups', 5),
('Push Jerk', 7),
('Bar Muscle Up', 10);"
)
# Query it
con |>
read_adbc("SELECT * from crossfit") |>
tibble::as_tibble()
#> # A tibble: 4 × 2
#> exercise difficulty_level
#> <chr> <dbl>
#> 1 Push Ups 3
#> 2 Pull Ups 5
#> 3 Push Jerk 7
#> 4 Bar Muscle Up 10
# Clean up
con |>
execute_adbc("DROP TABLE crossfit")
adbc_connection_release(con)
adbc_database_release(db)