Skip to main content
Version: Next

ADBC Catalog Connector

Connect to any database via ADBC (Arrow Database Connectivity) as a catalog provider for federated SQL query. The ADBC Catalog Connector uses the ADBC metadata API to automatically discover schemas and tables from the connected database.

Prerequisites

An ADBC-compatible driver must be installed on the system where Spice runs. See the ADBC Data Connector for driver installation instructions.

Configuration

catalogs:
- from: adbc
name: my_catalog
include:
- 'my_schema.*' # include all tables from my_schema
params:
adbc_driver: bigquery
adbc_uri: "bigquery:///my-gcp-project"

from

The from field is used to specify the catalog provider. For ADBC, specify adbc.

name

The name field specifies the name of the catalog in Spice. Tables from the ADBC-connected database will be available under this catalog name in Spice. The schema hierarchy of the external database is preserved in Spice.

include

Use the include field to specify which tables to include from the catalog. The include field supports glob patterns to match multiple tables. For example, *.my_table_name would include all tables with the name my_table_name from any schema. Multiple include patterns are OR'ed together and can be specified to include multiple tables.

params

The following parameters are supported:

Parameter NameDescription
adbc_driverRequired. The ADBC driver name (e.g., bigquery, trino, snowflake, redshift, duckdb, postgres).
adbc_driver_pathOptional. Absolute path to the ADBC driver shared library. If not specified, the driver is loaded by name.
adbc_uriRequired. Database URI/connection string for the ADBC driver.
adbc_usernameOptional. Username for database authentication.
adbc_passwordOptional. Password for database authentication.
adbc_driver_optionsOptional. Semicolon-delimited driver-specific database options (e.g., key1=value1;key2=value2).
connection_pool_sizeOptional. Maximum number of connections in the connection pool. Default: 5.
connection_pool_min_idleOptional. Minimum number of idle connections to keep open in the pool. Default: 1.

Examples

BigQuery

catalogs:
- from: adbc
name: bq_catalog
include:
- 'my_dataset.*'
params:
adbc_driver: bigquery
adbc_uri: "bigquery:///my-gcp-project"
adbc_driver_options: >-
adbc.bigquery.sql.dataset_id=my_dataset

Snowflake

catalogs:
- from: adbc
name: sf_catalog
include:
- 'PUBLIC.*'
params:
adbc_driver: snowflake
adbc_uri: ${secrets:snowflake_uri}
adbc_username: ${secrets:snowflake_user}
adbc_password: ${secrets:snowflake_pass}