跳至内容

adbcflightsql 的目标是为 Arrow 数据库连接 (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)