Read and write Databricks tables directly from DuckDB.
Maintainer(s):
redox
Installing and Loading
INSTALL databricks FROM community;
LOAD databricks;
Example
INSTALL databricks FROM community;
LOAD databricks;
CREATE SECRET dbx (
TYPE databricks,
HOST 'adb-123.azuredatabricks.net',
WAREHOUSE_ID 'abc123',
TOKEN 'dapi...'
);
ATTACH 'main' AS db (TYPE databricks, SECRET dbx, SCHEMA 'sales');
SELECT * FROM db.orders;
INSERT INTO db.orders
SELECT * FROM read_parquet('orders/*.parquet');
About databricks
The Databricks extension attaches one Unity Catalog catalog as a DuckDB
database. Tables are read and written with ordinary DuckDB SQL through the
SQL Statement Execution API. It does not read Delta files, and it does not
open a Thrift session. Filters, projections, LIMIT, and
ORDER BY ... LIMIT can be pushed down to the warehouse.
Features include:
ATTACHsupport for a Databricks catalog, including secrets for a personal access token or a service principal- reads from attached schemas and tables
- writes with
INSERT,COPY,CREATE TABLE AS,UPDATE,DELETE, andTRUNCATE databricks_queryanddatabricks_executefor Databricks SQL that DuckDB cannot express
Added Functions
| function_name | function_type | description | comment | examples |
|---|---|---|---|---|
| databricks_clear_cache | table | NULL | NULL | |
| databricks_execute | table | NULL | NULL | |
| databricks_query | table | NULL | NULL | |
| databricks_type_mapping | scalar | NULL | NULL |
Overloaded Functions
This extension does not add any function overloads.
Added Types
This extension does not add any types.
Added Settings
| name | description | input_type | scope | aliases |
|---|---|---|---|---|
| dbx_ca_cert | PEM bundle to trust, or 'system' | VARCHAR | GLOBAL | [] |
| dbx_debug_show_queries | Print each statement text and id | BOOLEAN | GLOBAL | [] |
| dbx_filter_pushdown | Push filters into Databricks SQL | BOOLEAN | GLOBAL | [] |
| dbx_http_retries | Retries for HTTP 429, 503, and connection errors | UBIGINT | GLOBAL | [] |
| dbx_http_timeout_ms | Per-request HTTP timeout in milliseconds | UBIGINT | GLOBAL | [] |
| dbx_insert_max_statement_bytes | Maximum SQL text of one INSERT statement, at most 16 MiB | UBIGINT | GLOBAL | [] |
| dbx_order_pushdown | Push ORDER BY … LIMIT into Databricks SQL | BOOLEAN | GLOBAL | [] |
| dbx_statement_timeout_ms | Cancel a statement still running after this many milliseconds. 0 waits | UBIGINT | GLOBAL | [] |