驱动程序实现状态

警告

在 macOS x86_64 上,当在同一个进程中使用两个用 Go 编写的驱动程序时(除非在纯 Go 应用程序中工作),存在一个已知问题,即使用第二个驱动程序可能会导致崩溃。有关更多详细信息,请参阅 GH-1841

注意

支持 C/C++ 的驱动程序也可以通过 C#、GLib、Go、Python、R、Ruby 和 Rust 使用,无论其实现语言如何。

驱动程序状态

实验性驱动程序功能不完整,实现仍在进行中。测试版驱动程序功能(大部分)完整,但仅可用了一小段时间。稳定版驱动程序功能(大部分)完整(尽可能适用于底层数据库),并且已经可用/测试了一段时间。

功能支持

供应商

实现

驱动程序状态

软件包 [1]

Apache Arrow Flight SQL

C#

测试版

NuGet

Apache Arrow Flight SQL

Go

稳定版

conda-forge (adbc-driver-flightsql, libadbc-driver-flightsql), PyPI, R-multiverse

Apache Arrow Flight SQL

Java

测试版

Maven

Apache DataFusion

Rust

实验性

crates.io

Apache Hive

C#

实验性

Apache Impala

C#

实验性

Apache Spark

C#

实验性

Databricks

C#

实验性

DuckDB [2]

C/C++

稳定版

conda-forge, PyPI

Google BigQuery

C#

测试版

NuGet

Google BigQuery

Go

实验性

conda-forge (adbc-driver-bigquery, libadbc-driver-bigquery), PyPI, R-multiverse

JDBC

Java

测试版

Maven

PostgreSQL

C/C++

稳定版

conda-forge (adbc-driver-postgresql, libadbc-driver-postgresql), CRAN, PyPI

SQLite

C/C++

稳定版

conda-forge (adbc-driver-sqlite, libadbc-driver-sqlite), CRAN, PyPI

Snowflake

Go

稳定版

conda-forge (adbc-driver-snowflake, libadbc-driver-snowflake), crates.io, Go, NuGet, PyPI, R-multiverse

功能支持

N/A 表示底层数据库无法支持此功能。

有关完整详细信息,请参阅各个驱动程序文档页面。

批量摄取

驱动程序是否支持数据批量导入(从 Arrow 表创建或追加到数据库表)?

数据库元数据

驱动程序是否支持像 AdbcConnectionGetObjects() 这样获取数据库目录等元数据的功能?

参数化查询

驱动程序是否支持绑定查询参数?

分区数据

能够读取(通常是分布式)结果集的单个块(AdbcStatementExecutePartitions())。

预处理语句

驱动程序是否支持绑定查询参数?

完整类型支持

驱动程序是否尽可能将所有数据库类型映射到/从等效的 Arrow 类型?

Select 查询

驱动程序是否支持返回结果集的查询?

SQL

驱动程序是否支持提交 SQL 查询?

事务

驱动程序是否支持显式事务(默认为自动提交)?

Substrait

驱动程序是否支持提交 Substrait 计划?

Update 查询

驱动程序是否支持不返回结果集的查询?

一般功能

驱动程序

完整类型支持

SQL

Substrait

Flight SQL (Go)

Flight SQL (Java)

JDBC

N/A

PostgreSQL

N/A

SQLite

N/A

语句/查询级别功能

驱动程序

增量查询

分区数据

参数化查询

预处理语句

Select 查询

Update 查询

Flight SQL (Go)

Flight SQL (Java)

JDBC

N/A

N/A

PostgreSQL

N/A

N/A

[3]

SQLite

N/A

N/A

连接/数据库级别功能

驱动程序

批量摄取

数据库元数据(目录等)

事务

Flight SQL (Go)

Flight SQL (Java)

JDBC

PostgreSQL

SQLite