驱动程序实施状态

警告

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

注意

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

驱动程序状态

实验性 (Experimental) 驱动程序功能尚不完善,开发工作仍在进行中。测试版 (Beta) 驱动程序(基本)功能完善,但发布时间较短。稳定版 (Stable) 驱动程序(基本)功能完善(在底层数据库允许的最大范围内),且已发布/测试了一段时间。

功能支持

供应商

实现

驱动程序状态

软件包 [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 Queries)

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

SQL

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

事务

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

Substrait

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

查询更新 (Update Queries)

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

常规功能

驱动程序

完整类型支持

SQL

Substrait

Flight SQL (Go)

Flight SQL (Java)

JDBC

N/A

PostgreSQL

N/A

SQLite

N/A

语句/查询级功能

驱动程序

增量查询

分区数据

参数化查询

预处理语句

查询选择 (Select Queries)

查询更新 (Update Queries)

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