Apache Druid Driver v0.1.0-alpha.1

Driver Version v0.1.0-alpha.1 Release Date 2026-09-14 Tested With Apache Druid 37

Warning

This is documentation for a prerelease version.

This driver provides access to Apache Druid , a high-performance, real-time analytics database.

Note

This project is not part of the Apache Software Foundation.

Installation & Quickstart

The Druid driver can be installed with dbc :

dbc install --pre druid

Connecting

To use the driver, provide the URI of a Druid database as the uri option.

from adbc_driver_manager import dbapi

connection = dbapi.connect(
    driver="druid",
    db_kwargs={
        "uri": "druid://localhost:8888?tls=false",
    },
)

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

Connection String Format

druid://[username[:password]@]host[:port][/path][?tls=true|false&tls_ca=path]

Components:

  • Scheme: druid:// (also accepts http:// and https://)

  • username: HTTP Basic authentication username (optional)

  • password: HTTP Basic authentication password (optional; requires a username)

  • host: Druid Router or Broker host (required)

  • port: Service port (optional; defaults to 443 for HTTPS and 80 for HTTP)

  • path: Base path when Druid is exposed through a reverse proxy (optional)

  • tls: Whether to use HTTPS; defaults to true and only applies to druid:// URIs

  • tls_ca: Path to a PEM CA certificate used to verify the server

HTTPS/SSL Configuration

The druid:// scheme uses HTTPS and the system trust store by default. To connect to a plaintext Druid endpoint, set tls=false.

Examples:

  • druid://druid.example.com → HTTPS on port 443

  • druid://druid.example.com:9088 → HTTPS on port 9088

  • druid://localhost:9088?tls_ca=/path/to/ca.crt → HTTPS with a custom CA

  • druid://localhost:8888?tls=false → HTTP on port 8888

  • https://druid.example.com:9088 → Explicit HTTPS URL

  • http://localhost:8888 → Explicit HTTP URL

Reserved characters in credentials must be percent-encoded. For example, @ becomes %40. Credentials can instead be supplied with the ADBC username and password database options; those options override credentials in the URI and are recommended when the URI may appear in logs or shell history.

Feature & Type Support

Feature Apache Druid
Bind Parameters
Bulk Ingestion Create
Append
Create/Append
Replace
Temporary Table
Target Catalog
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

Database to Arrow

Database Type Apache Druid

BIGINT

int64

BOOLEAN

bool

DATE

date32[day]

DOUBLE PRECISION

double

INT

int64

NUMERIC

double ⚠️ [1]

REAL

float

SMALLINT

TIME

TIMESTAMP

timestamp[ms]

TIMESTAMP WITH TIME ZONE

TIMESTAMP(0)

TIMESTAMP(0) WITH TIME ZONE

TIMESTAMP(p) (1 <= p <= 3)

timestamp[ms]

TIMESTAMP(p) (1 <= p <= 3) WITH TIME ZONE

TIMESTAMP(p) (4 <= p <= 6)

TIMESTAMP(p) (4 <= p <= 6) WITH TIME ZONE

TIMESTAMP(p) (7 <= p <= 9)

TIMESTAMP(p) (7 <= p <= 9) WITH TIME ZONE

VARBINARY

VARCHAR

string

Arrow to Database

Arrow Type Apache Druid Type
Bind

binary

binary_view

bool

BOOLEAN

date32[day]

DATE ⚠️ [2]

decimal128

NUMERIC ⚠️ [1]

double

DOUBLE PRECISION

fixed_size_binary

float

REAL

halffloat

REAL

int16

SMALLINT

int32

INT

int64

BIGINT

large_binary

large_string

VARCHAR

string

VARCHAR

string_view

VARCHAR

time32[ms]

time32[s]

time64[ns]

time64[us]

timestamp[ms]

TIMESTAMP(3) ⚠️ [3]

timestamp[ms] (with time zone)

timestamp[ns]

timestamp[ns] (with time zone)

timestamp[s]

timestamp[s] (with time zone)

timestamp[us]

timestamp[us] (with time zone)

Options

Statement Options

druid.statement.<option_name>

Type: string, integer, or double.

Sets a Druid SQL query-context parameter. The driver removes the druid.statement. prefix and sends the remaining option name to Druid. For example, druid.statement.timeout sets Druid’s timeout context parameter. Byte values are not supported.

Compatibility

This driver was tested on:

  • Apache Druid 37.0.0