ADBC Snowflake Driver

raw JSON →
1.11.0 verified Fri May 01 auth: no python

An ADBC (Arrow Database Connectivity) driver for Snowflake, enabling high-performance data transfer using Apache Arrow. Version 1.11.0 requires Python >=3.10.

pip install adbc-driver-snowflake
error ImportError: cannot import name 'connect' from 'adbc_driver_snowflake'
cause Trying to import connect from the top-level module instead of submodule dbapi.
fix
Use: from adbc_driver_snowflake import dbapi; conn = dbapi.connect(...)
error Exception: No suitable driver found
cause Missing ADBC driver manager or incorrect installation of the Snowflake driver.
fix
pip install adbc-driver-manager adbc-driver-snowflake
error pyarrow.lib.ArrowNotImplementedError: Unsupported cast from string to int64 using function cast
cause Incompatible schema or types between Snowflake and Arrow; often due to NULL handling.
fix
Ensure Snowflake columns are typed appropriately; use CAST in SQL if needed.
breaking The driver is not a DB-API 2.0 module directly; you must use the .dbapi submodule. Direct import of adbc_driver_snowflake does not expose connect()
fix Use from adbc_driver_snowflake import dbapi, then dbapi.connect()
gotcha Connection string must include warehouse as a query parameter; omitted warehouse may lead to errors about virtual warehouse not specified.
fix Append ?warehouse=my_wh to the Snowflake URL.
gotcha The driver only supports Arrow data; fetching results via .fetchall() returns a list of Arrow arrays, not plain Python objects. Use fetch_arrow_batch() to get a RecordBatch.
fix Use .fetch_arrow_batch() or .fetch_arrow_table() for pandas conversion.

Connect to Snowflake using ADBC and fetch an Arrow batch converted to pandas.

import adbc_driver_snowflake.dbapi
conn = adbc_driver_snowflake.dbapi.connect(
    'snowflake://user:pass@account/database/schema?warehouse=warehouse_name'
)
cur = conn.cursor()
cur.execute("SELECT 1 AS col")
print(cur.fetch_arrow_batch().to_pandas())