驅動程式實施狀態¶
警告
在 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# |
測試版 |
|
Go |
穩定版 |
conda-forge (adbc-driver-flightsql, libadbc-driver-flightsql), PyPI, R-multiverse |
|
Apache Arrow Flight SQL |
Java |
測試版 |
|
Apache DataFusion |
Rust |
實驗性 |
|
Apache Hive |
C# |
實驗性 |
|
Apache Impala |
C# |
實驗性 |
|
Apache Spark |
C# |
實驗性 |
|
Databricks |
C# |
實驗性 |
|
C/C++ |
穩定版 |
||
Google BigQuery |
C# |
測試版 |
|
Google BigQuery |
Go |
實驗性 |
conda-forge (adbc-driver-bigquery, libadbc-driver-bigquery), PyPI, R-multiverse |
Java |
測試版 |
||
C/C++ |
穩定版 |
conda-forge (adbc-driver-postgresql, libadbc-driver-postgresql), CRAN, PyPI |
|
C/C++ |
穩定版 |
conda-forge (adbc-driver-sqlite, libadbc-driver-sqlite), CRAN, PyPI |
|
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 |
是 |
是 |
是 |
是 |
PostgreSQL 驅動程式僅支援執行不返回結果集的帶引數預處理語句(基本上是帶有引數的 INSERT)。在預處理語句中使用返回結果集的查詢較為困難,因為驅動程式為了實現最佳效能而基於 COPY 構建,而在該上下文中不支援此操作。
驅動程式 |
批次攝取 |
資料庫元資料(目錄等) |
事務 |
|---|---|---|---|
Flight SQL (Go) |
否 |
是 |
是 |
Flight SQL (Java) |
是 |
是 |
否 |
JDBC |
是 |
是 |
否 |
PostgreSQL |
是 |
是 |
是 |
SQLite |
是 |
是 |
是 |