Databricks Driver v0.1.3

Driver Version v0.1.3 Release Date 2026-07-15 Tested With Databricks 17

This driver provides access to Databricks , a cloud-based platform for data analytics.

Note

This is an early version of the driver, and contributors are still working with Databricks to expand the featureset and improve performance.

Installation

The Databricks driver can be installed with dbc :

dbc install databricks

Connecting

To connect, edit the uri option below to match your environment and run the following:

from adbc_driver_manager import dbapi

conn = dbapi.connect(
  driver="databricks",
  db_kwargs = {
    "uri": "databricks://token:[email protected]:443/sql/protocolv1/o/1234567890123456/1234-567890-abcdefgh"
  }
)

Note: The example above is for Python using the adbc-driver-manager package but the process will be similar for other driver managers.

Connection String Format

Databricks’s URI syntax supports three primary forms:

  1. Databricks personal access token authentication:

    databricks://token:<personal-access-token>@<server-hostname>:<port-number>/<http-path>?<param1=value1>&<param2=value2>
    

    Components:

    • scheme: databricks:// (required)

    • <personal-access-token>: (required) Databricks personal access token.

    • <server-hostname>: (required) Server Hostname value.

    • port-number: (required) Port value, which is typically 443.

    • http-path: (required) HTTP Path value.

    • Query params: Databricks connection attributes. For complete list of optional parameters, see Databricks Optional Parameters

  2. OAuth user-to-machine (U2M) authentication:

    databricks://<server-hostname>:<port-number>/<http-path>?authType=OauthU2M&<param1=value1>&<param2=value2>
    

    Components:

    • scheme: databricks:// (required)

    • <server-hostname>: (required) Server Hostname value.

    • port-number: (required) Port value, which is typically 443.

    • http-path: (required) HTTP Path value.

    • authType=OauthU2M: (required) Specifies OAuth user-to-machine authentication.

    • Query params: Additional Databricks connection attributes. For complete list of optional parameters, see Databricks Optional Parameters

  3. OAuth machine-to-machine (M2M) authentication:

    databricks://<server-hostname>:<port-number>/<http-path>?authType=OAuthM2M&clientID=<client-id>&clientSecret=<client-secret>&<param1=value1>&<param2=value2>
    

    Components:

    • scheme: databricks:// (required)

    • <server-hostname>: (required) Server Hostname value.

    • port-number: (required) Port value, which is typically 443.

    • http-path: (required) HTTP Path value.

    • authType=OAuthM2M: (required) Specifies OAuth machine-to-machine authentication.

    • <client-id>: (required) Service principal’s UUID or Application ID value.

    • <client-secret>: (required) Secret value for the service principal’s OAuth secret.

    • Query params: Additional Databricks connection attributes. For complete list of optional parameters, see Databricks Optional Parameters

This follows the Databricks SQL Driver for Go format with the addition of the databricks:// scheme.

Note

Reserved characters in URI elements must be URI-encoded. For example, @ becomes %40.

Examples:

  • databricks://token:dapi1234abcd5678efgh@dbc-a1b2345c-d6e7.cloud.databricks.com:443/sql/protocolv1/o/1234567890123456/1234-567890-abcdefgh

  • databricks://myworkspace.cloud.databricks.com:443/sql/1.0/warehouses/abc123def456?authType=OauthU2M

  • databricks://myworkspace.cloud.databricks.com:443/sql/1.0/warehouses/abc123def456?authType=OAuthM2M&clientID=12345678-1234-1234-1234-123456789012&clientSecret=mysecret123

Feature & Type Support

Feature Support
Bulk Ingestion Create ✅
Append ✅
Create/Append ✅
Replace ✅
Temporary Table ❌
Specify target catalog ❌
Specify target schema ❌
Non-nullable fields are marked NOT NULL ❌
Catalog (GetObjects) depth=catalogs ✅
depth=db_schemas ✅
depth=tables ✅
depth=columns (all) ✅
Get Parameter Schema ❌
Get Table Schema ❌
Prepared Statements ✅
Transactions ❌

Types

Databricks to Arrow

Databricks Type

Arrow Type

BIGINT

int64

BOOLEAN

bool

DATE

date32[day]

DOUBLE PRECISION

double

INT

int32

NUMERIC

❌

REAL

float

SMALLINT

int16

TIMESTAMP

timestamp[us] (with time zone)

TIMESTAMP_NTZ

timestamp[us]

VARBINARY

binary

VARCHAR

string

Arrow to Databricks

Arrow Type Databricks Type
Bind Ingest
binary

❌

VARBINARY

binary_view

❌

VARBINARY

bool

❌

BOOLEAN

date32[day]

❌

DATE

decimal128

❌

double

❌

DOUBLE PRECISION

fixed_size_binary

❌

VARBINARY

float

❌

REAL

halffloat

❌

(not tested)

int16

❌

SMALLINT

int32

❌

INT

int64

❌

BIGINT

large_binary

❌

VARBINARY

large_string

❌

VARCHAR

string

❌

VARCHAR

string_view

❌

VARCHAR

time32[ms]

❌

(not tested)

time32[s]

❌

(not tested)

time64[ns]

❌

(not tested)

time64[us]

❌

(not tested)

timestamp[ms]

❌

TIMESTAMP_NTZ

timestamp[ms] (with time zone)

❌

TIMESTAMP

timestamp[ns]

❌

TIMESTAMP_NTZ

timestamp[ns] (with time zone)

❌

TIMESTAMP

timestamp[s]

❌

TIMESTAMP_NTZ

timestamp[s] (with time zone)

❌

TIMESTAMP

timestamp[us]

❌

TIMESTAMP(6)

timestamp[us] (with time zone)

❌

TIMESTAMP

Compatibility

This driver was tested on the following versions of Databricks:

  • 2026.20

Previous Versions

To see documentation for previous versions of this driver, see the following: