Skip to content

dbc

dbc is the command-line tool for installing and managing ADBC drivers. Get up and running with ADBC in just three steps:


1. Install dbc (see Installation for more options):

$ curl -LsSf https://dbc.columnar.tech/install.sh | sh
$ powershell -ExecutionPolicy ByPass -c "irm https://dbc.columnar.tech/install.ps1 | iex"

Download https://dbc.columnar.tech/latest/dbc-latest-x64.msi and then run the installer.

$ winget install Columnar.dbc

Note

If you installed dbc 0.1.0 with WinGet, uninstall the system-level package first and then reinstall 0.2.0:

$ winget uninstall --id Columnar.dbc
$ winget install Columnar.dbc
$ uv tool install dbc
$ pipx install dbc
$ brew install columnar-tech/tap/dbc


2. Use dbc to install drivers:

$ dbc install bigquery


3. Install a driver manager and load drivers in any supported language:

#include <arrow-adbc/adbc.h>

AdbcDatabaseSetOption(&database, "driver", "bigquery", &error)
import . "github.com/apache/arrow-adbc/go/adbc/drivermgr"

db, _ := Driver{}.NewDatabase(map[string]string{"driver": "bigquery", ... })
import org.apache.arrow.adbc.driver.jni.JniDriver;

JniDriver.PARAM_DRIVER.set(params, "bigquery");
import { AdbcDatabase } from "@apache-arrow/adbc-driver-manager";

const db = new AdbcDatabase({driver: "bigquery", ... });

Note

The JavaScript/TypeScript ADBC driver manager is for server-side runtimes like Node.js, Deno, and Bun. It does not run in the browser.

import org.apache.arrow.adbc.driver.jni.JniDriver

JniDriver.PARAM_DRIVER.set(params, "bigquery")
from adbc_driver_manager import dbapi

con = dbapi.connect(driver="bigquery", ... )
library(adbcdrivermanager)

drv <- adbc_driver("bigquery")
use adbc_driver_manager::ManagedDriver;

let mut driver = ManagedDriver::load_from_name("bigquery", ... )
$ dbc install --pre clickhouse


3. Install a driver manager and load drivers in any supported language:

#include <arrow-adbc/adbc.h>

AdbcDatabaseSetOption(&database, "driver", "clickhouse", &error)
import . "github.com/apache/arrow-adbc/go/adbc/drivermgr"

db, _ := Driver{}.NewDatabase(map[string]string{"driver": "clickhouse", ... })
import org.apache.arrow.adbc.driver.jni.JniDriver;

JniDriver.PARAM_DRIVER.set(params, "clickhouse");
import { AdbcDatabase } from "@apache-arrow/adbc-driver-manager";

const db = new AdbcDatabase({driver: "clickhouse", ... });

Note

The JavaScript/TypeScript ADBC driver manager is for server-side runtimes like Node.js, Deno, and Bun. It does not run in the browser.

import org.apache.arrow.adbc.driver.jni.JniDriver

JniDriver.PARAM_DRIVER.set(params, "clickhouse")
from adbc_driver_manager import dbapi

con = dbapi.connect(driver="clickhouse", ... )
library(adbcdrivermanager)

drv <- adbc_driver("clickhouse")
use adbc_driver_manager::ManagedDriver;

let mut driver = ManagedDriver::load_from_name("clickhouse", ... )
$ dbc install databricks


3. Install a driver manager and load drivers in any supported language:

#include <arrow-adbc/adbc.h>

AdbcDatabaseSetOption(&database, "driver", "databricks", &error)
import . "github.com/apache/arrow-adbc/go/adbc/drivermgr"

db, _ := Driver{}.NewDatabase(map[string]string{"driver": "databricks", ... })
import org.apache.arrow.adbc.driver.jni.JniDriver;

JniDriver.PARAM_DRIVER.set(params, "databricks");
import { AdbcDatabase } from "@apache-arrow/adbc-driver-manager";

const db = new AdbcDatabase({driver: "databricks", ... });

Note

The JavaScript/TypeScript ADBC driver manager is for server-side runtimes like Node.js, Deno, and Bun. It does not run in the browser.

import org.apache.arrow.adbc.driver.jni.JniDriver

JniDriver.PARAM_DRIVER.set(params, "databricks")
from adbc_driver_manager import dbapi

con = dbapi.connect(driver="databricks", ... )
library(adbcdrivermanager)

drv <- adbc_driver("databricks")
use adbc_driver_manager::ManagedDriver;

let mut driver = ManagedDriver::load_from_name("databricks", ... )
$ dbc install datafusion


3. Install a driver manager and load drivers in any supported language:

#include <arrow-adbc/adbc.h>

AdbcDatabaseSetOption(&database, "driver", "datafusion", &error)
import . "github.com/apache/arrow-adbc/go/adbc/drivermgr"

db, _ := Driver{}.NewDatabase(map[string]string{"driver": "datafusion", ... })
import org.apache.arrow.adbc.driver.jni.JniDriver;

JniDriver.PARAM_DRIVER.set(params, "datafusion");
import { AdbcDatabase } from "@apache-arrow/adbc-driver-manager";

const db = new AdbcDatabase({driver: "datafusion", ... });

Note

The JavaScript/TypeScript ADBC driver manager is for server-side runtimes like Node.js, Deno, and Bun. It does not run in the browser.

import org.apache.arrow.adbc.driver.jni.JniDriver

JniDriver.PARAM_DRIVER.set(params, "datafusion")
from adbc_driver_manager import dbapi

con = dbapi.connect(driver="datafusion", ... )
library(adbcdrivermanager)

drv <- adbc_driver("datafusion")
use adbc_driver_manager::ManagedDriver;

let mut driver = ManagedDriver::load_from_name("datafusion", ... )
$ dbc install duckdb


3. Install a driver manager and load drivers in any supported language:

#include <arrow-adbc/adbc.h>

AdbcDatabaseSetOption(&database, "driver", "duckdb", &error)
import . "github.com/apache/arrow-adbc/go/adbc/drivermgr"

db, _ := Driver{}.NewDatabase(map[string]string{"driver": "duckdb", ... })
import org.apache.arrow.adbc.driver.jni.JniDriver;

JniDriver.PARAM_DRIVER.set(params, "duckdb");
import { AdbcDatabase } from "@apache-arrow/adbc-driver-manager";

const db = new AdbcDatabase({driver: "duckdb", ... });

Note

The JavaScript/TypeScript ADBC driver manager is for server-side runtimes like Node.js, Deno, and Bun. It does not run in the browser.

import org.apache.arrow.adbc.driver.jni.JniDriver

JniDriver.PARAM_DRIVER.set(params, "duckdb")
from adbc_driver_manager import dbapi

con = dbapi.connect(driver="duckdb", ... )
library(adbcdrivermanager)

drv <- adbc_driver("duckdb")
use adbc_driver_manager::ManagedDriver;

let mut driver = ManagedDriver::load_from_name("duckdb", ... )
$ dbc install exasol


3. Install a driver manager and load drivers in any supported language:

#include <arrow-adbc/adbc.h>

AdbcDatabaseSetOption(&database, "driver", "exasol", &error)
import . "github.com/apache/arrow-adbc/go/adbc/drivermgr"

db, _ := Driver{}.NewDatabase(map[string]string{"driver": "exasol", ... })
import org.apache.arrow.adbc.driver.jni.JniDriver;

JniDriver.PARAM_DRIVER.set(params, "exasol");
import { AdbcDatabase } from "@apache-arrow/adbc-driver-manager";

const db = new AdbcDatabase({driver: "exasol", ... });

Note

The JavaScript/TypeScript ADBC driver manager is for server-side runtimes like Node.js, Deno, and Bun. It does not run in the browser.

import org.apache.arrow.adbc.driver.jni.JniDriver

JniDriver.PARAM_DRIVER.set(params, "exasol")
from adbc_driver_manager import dbapi

con = dbapi.connect(driver="exasol", ... )
library(adbcdrivermanager)

drv <- adbc_driver("exasol")
use adbc_driver_manager::ManagedDriver;

let mut driver = ManagedDriver::load_from_name("exasol", ... )
$ dbc install flightsql


3. Install a driver manager and load drivers in any supported language:

#include <arrow-adbc/adbc.h>

AdbcDatabaseSetOption(&database, "driver", "flightsql", &error)
import . "github.com/apache/arrow-adbc/go/adbc/drivermgr"

db, _ := Driver{}.NewDatabase(map[string]string{"driver": "flightsql", ... })
import org.apache.arrow.adbc.driver.jni.JniDriver;

JniDriver.PARAM_DRIVER.set(params, "flightsql");
import { AdbcDatabase } from "@apache-arrow/adbc-driver-manager";

const db = new AdbcDatabase({driver: "flightsql", ... });

Note

The JavaScript/TypeScript ADBC driver manager is for server-side runtimes like Node.js, Deno, and Bun. It does not run in the browser.

import org.apache.arrow.adbc.driver.jni.JniDriver

JniDriver.PARAM_DRIVER.set(params, "flightsql")
from adbc_driver_manager import dbapi

con = dbapi.connect(driver="flightsql", ... )
library(adbcdrivermanager)

drv <- adbc_driver("flightsql")
use adbc_driver_manager::ManagedDriver;

let mut driver = ManagedDriver::load_from_name("flightsql", ... )
$ dbc install mssql


3. Install a driver manager and load drivers in any supported language:

#include <arrow-adbc/adbc.h>

AdbcDatabaseSetOption(&database, "driver", "mssql", &error)
import . "github.com/apache/arrow-adbc/go/adbc/drivermgr"

db, _ := Driver{}.NewDatabase(map[string]string{"driver": "mssql", ... })
import org.apache.arrow.adbc.driver.jni.JniDriver;

JniDriver.PARAM_DRIVER.set(params, "mssql");
import { AdbcDatabase } from "@apache-arrow/adbc-driver-manager";

const db = new AdbcDatabase({driver: "mssql", ... });

Note

The JavaScript/TypeScript ADBC driver manager is for server-side runtimes like Node.js, Deno, and Bun. It does not run in the browser.

import org.apache.arrow.adbc.driver.jni.JniDriver

JniDriver.PARAM_DRIVER.set(params, "mssql")
from adbc_driver_manager import dbapi

con = dbapi.connect(driver="mssql", ... )
library(adbcdrivermanager)

drv <- adbc_driver("mssql")
use adbc_driver_manager::ManagedDriver;

let mut driver = ManagedDriver::load_from_name("mssql", ... )
$ dbc install mysql


3. Install a driver manager and load drivers in any supported language:

#include <arrow-adbc/adbc.h>

AdbcDatabaseSetOption(&database, "driver", "mysql", &error)
import . "github.com/apache/arrow-adbc/go/adbc/drivermgr"

db, _ := Driver{}.NewDatabase(map[string]string{"driver": "mysql", ... })
import org.apache.arrow.adbc.driver.jni.JniDriver;

JniDriver.PARAM_DRIVER.set(params, "mysql");
import { AdbcDatabase } from "@apache-arrow/adbc-driver-manager";

const db = new AdbcDatabase({driver: "mysql", ... });

Note

The JavaScript/TypeScript ADBC driver manager is for server-side runtimes like Node.js, Deno, and Bun. It does not run in the browser.

import org.apache.arrow.adbc.driver.jni.JniDriver

JniDriver.PARAM_DRIVER.set(params, "mysql")
from adbc_driver_manager import dbapi

con = dbapi.connect(driver="mysql", ... )
library(adbcdrivermanager)

drv <- adbc_driver("mysql")
use adbc_driver_manager::ManagedDriver;

let mut driver = ManagedDriver::load_from_name("mysql", ... )
$ dbc install oracle

Note

Oracle is currently available as a private driver. Before installing and using it, run dbc auth login and start a trial license in Columnar Console. See Private Drivers for details.


3. Install a driver manager and load drivers in any supported language:

#include <arrow-adbc/adbc.h>

AdbcDatabaseSetOption(&database, "driver", "oracle", &error)
import . "github.com/apache/arrow-adbc/go/adbc/drivermgr"

db, _ := Driver{}.NewDatabase(map[string]string{"driver": "oracle", ... })
import org.apache.arrow.adbc.driver.jni.JniDriver;

JniDriver.PARAM_DRIVER.set(params, "oracle");
import { AdbcDatabase } from "@apache-arrow/adbc-driver-manager";

const db = new AdbcDatabase({driver: "oracle", ... });

Note

The JavaScript/TypeScript ADBC driver manager is for server-side runtimes like Node.js, Deno, and Bun. It does not run in the browser.

import org.apache.arrow.adbc.driver.jni.JniDriver

JniDriver.PARAM_DRIVER.set(params, "oracle")
from adbc_driver_manager import dbapi

con = dbapi.connect(driver="oracle", ... )
library(adbcdrivermanager)

drv <- adbc_driver("oracle")
use adbc_driver_manager::ManagedDriver;

let mut driver = ManagedDriver::load_from_name("oracle", ... )
$ dbc install postgresql


3. Install a driver manager and load drivers in any supported language:

#include <arrow-adbc/adbc.h>

AdbcDatabaseSetOption(&database, "driver", "postgresql", &error)
import . "github.com/apache/arrow-adbc/go/adbc/drivermgr"

db, _ := Driver{}.NewDatabase(map[string]string{"driver": "postgresql", ... })
import org.apache.arrow.adbc.driver.jni.JniDriver;

JniDriver.PARAM_DRIVER.set(params, "postgresql");
import { AdbcDatabase } from "@apache-arrow/adbc-driver-manager";

const db = new AdbcDatabase({driver: "postgresql", ... });

Note

The JavaScript/TypeScript ADBC driver manager is for server-side runtimes like Node.js, Deno, and Bun. It does not run in the browser.

import org.apache.arrow.adbc.driver.jni.JniDriver

JniDriver.PARAM_DRIVER.set(params, "postgresql")
from adbc_driver_manager import dbapi

con = dbapi.connect(driver="postgresql", ... )
library(adbcdrivermanager)

drv <- adbc_driver("postgresql")
use adbc_driver_manager::ManagedDriver;

let mut driver = ManagedDriver::load_from_name("postgresql", ... )
$ dbc install --pre quack


3. Install a driver manager and load drivers in any supported language:

#include <arrow-adbc/adbc.h>

AdbcDatabaseSetOption(&database, "driver", "quack", &error)
import . "github.com/apache/arrow-adbc/go/adbc/drivermgr"

db, _ := Driver{}.NewDatabase(map[string]string{"driver": "quack", ... })
import org.apache.arrow.adbc.driver.jni.JniDriver;

JniDriver.PARAM_DRIVER.set(params, "quack");
import { AdbcDatabase } from "@apache-arrow/adbc-driver-manager";

const db = new AdbcDatabase({driver: "quack", ... });

Note

The JavaScript/TypeScript ADBC driver manager is for server-side runtimes like Node.js, Deno, and Bun. It does not run in the browser.

import org.apache.arrow.adbc.driver.jni.JniDriver

JniDriver.PARAM_DRIVER.set(params, "quack")
from adbc_driver_manager import dbapi

con = dbapi.connect(driver="quack", ... )
library(adbcdrivermanager)

drv <- adbc_driver("quack")
use adbc_driver_manager::ManagedDriver;

let mut driver = ManagedDriver::load_from_name("quack", ... )
$ dbc install redshift


3. Install a driver manager and load drivers in any supported language:

#include <arrow-adbc/adbc.h>

AdbcDatabaseSetOption(&database, "driver", "redshift", &error)
import . "github.com/apache/arrow-adbc/go/adbc/drivermgr"

db, _ := Driver{}.NewDatabase(map[string]string{"driver": "redshift", ... })
import org.apache.arrow.adbc.driver.jni.JniDriver;

JniDriver.PARAM_DRIVER.set(params, "redshift");
import { AdbcDatabase } from "@apache-arrow/adbc-driver-manager";

const db = new AdbcDatabase({driver: "redshift", ... });

Note

The JavaScript/TypeScript ADBC driver manager is for server-side runtimes like Node.js, Deno, and Bun. It does not run in the browser.

import org.apache.arrow.adbc.driver.jni.JniDriver

JniDriver.PARAM_DRIVER.set(params, "redshift")
from adbc_driver_manager import dbapi

con = dbapi.connect(driver="redshift", ... )
library(adbcdrivermanager)

drv <- adbc_driver("redshift")
use adbc_driver_manager::ManagedDriver;

let mut driver = ManagedDriver::load_from_name("redshift", ... )
$ dbc install --pre singlestore


3. Install a driver manager and load drivers in any supported language:

#include <arrow-adbc/adbc.h>

AdbcDatabaseSetOption(&database, "driver", "singlestore", &error)
import . "github.com/apache/arrow-adbc/go/adbc/drivermgr"

db, _ := Driver{}.NewDatabase(map[string]string{"driver": "singlestore", ... })
import org.apache.arrow.adbc.driver.jni.JniDriver;

JniDriver.PARAM_DRIVER.set(params, "singlestore");
import { AdbcDatabase } from "@apache-arrow/adbc-driver-manager";

const db = new AdbcDatabase({driver: "singlestore", ... });

Note

The JavaScript/TypeScript ADBC driver manager is for server-side runtimes like Node.js, Deno, and Bun. It does not run in the browser.

import org.apache.arrow.adbc.driver.jni.JniDriver

JniDriver.PARAM_DRIVER.set(params, "singlestore")
from adbc_driver_manager import dbapi

con = dbapi.connect(driver="singlestore", ... )
library(adbcdrivermanager)

drv <- adbc_driver("singlestore")
use adbc_driver_manager::ManagedDriver;

let mut driver = ManagedDriver::load_from_name("singlestore", ... )
$ dbc install snowflake


3. Install a driver manager and load drivers in any supported language:

#include <arrow-adbc/adbc.h>

AdbcDatabaseSetOption(&database, "driver", "snowflake", &error)
import . "github.com/apache/arrow-adbc/go/adbc/drivermgr"

db, _ := Driver{}.NewDatabase(map[string]string{"driver": "snowflake", ... })
import org.apache.arrow.adbc.driver.jni.JniDriver;

JniDriver.PARAM_DRIVER.set(params, "snowflake");
import { AdbcDatabase } from "@apache-arrow/adbc-driver-manager";

const db = new AdbcDatabase({driver: "snowflake", ... });

Note

The JavaScript/TypeScript ADBC driver manager is for server-side runtimes like Node.js, Deno, and Bun. It does not run in the browser.

import org.apache.arrow.adbc.driver.jni.JniDriver

JniDriver.PARAM_DRIVER.set(params, "snowflake")
from adbc_driver_manager import dbapi

con = dbapi.connect(driver="snowflake", ... )
library(adbcdrivermanager)

drv <- adbc_driver("snowflake")
use adbc_driver_manager::ManagedDriver;

let mut driver = ManagedDriver::load_from_name("snowflake", ... )
$ dbc install --pre spark


3. Install a driver manager and load drivers in any supported language:

#include <arrow-adbc/adbc.h>

AdbcDatabaseSetOption(&database, "driver", "spark", &error)
import . "github.com/apache/arrow-adbc/go/adbc/drivermgr"

db, _ := Driver{}.NewDatabase(map[string]string{"driver": "spark", ... })
import org.apache.arrow.adbc.driver.jni.JniDriver;

JniDriver.PARAM_DRIVER.set(params, "spark");
import { AdbcDatabase } from "@apache-arrow/adbc-driver-manager";

const db = new AdbcDatabase({driver: "spark", ... });

Note

The JavaScript/TypeScript ADBC driver manager is for server-side runtimes like Node.js, Deno, and Bun. It does not run in the browser.

import org.apache.arrow.adbc.driver.jni.JniDriver

JniDriver.PARAM_DRIVER.set(params, "spark")
from adbc_driver_manager import dbapi

con = dbapi.connect(driver="spark", ... )
library(adbcdrivermanager)

drv <- adbc_driver("spark")
use adbc_driver_manager::ManagedDriver;

let mut driver = ManagedDriver::load_from_name("spark", ... )
$ dbc install sqlite


3. Install a driver manager and load drivers in any supported language:

#include <arrow-adbc/adbc.h>

AdbcDatabaseSetOption(&database, "driver", "sqlite", &error)
import . "github.com/apache/arrow-adbc/go/adbc/drivermgr"

db, _ := Driver{}.NewDatabase(map[string]string{"driver": "sqlite", ... })
import org.apache.arrow.adbc.driver.jni.JniDriver;

JniDriver.PARAM_DRIVER.set(params, "sqlite");
import { AdbcDatabase } from "@apache-arrow/adbc-driver-manager";

const db = new AdbcDatabase({driver: "sqlite", ... });

Note

The JavaScript/TypeScript ADBC driver manager is for server-side runtimes like Node.js, Deno, and Bun. It does not run in the browser.

import org.apache.arrow.adbc.driver.jni.JniDriver

JniDriver.PARAM_DRIVER.set(params, "sqlite")
from adbc_driver_manager import dbapi

con = dbapi.connect(driver="sqlite", ... )
library(adbcdrivermanager)

drv <- adbc_driver("sqlite")
use adbc_driver_manager::ManagedDriver;

let mut driver = ManagedDriver::load_from_name("sqlite", ... )
$ dbc install teradata

Note

Teradata is currently available as a private driver. Before installing and using it, run dbc auth login and start a trial license in Columnar Console. See Private Drivers for details.


3. Install a driver manager and load drivers in any supported language:

#include <arrow-adbc/adbc.h>

AdbcDatabaseSetOption(&database, "driver", "teradata", &error)
import . "github.com/apache/arrow-adbc/go/adbc/drivermgr"

db, _ := Driver{}.NewDatabase(map[string]string{"driver": "teradata", ... })
import org.apache.arrow.adbc.driver.jni.JniDriver;

JniDriver.PARAM_DRIVER.set(params, "teradata");
import { AdbcDatabase } from "@apache-arrow/adbc-driver-manager";

const db = new AdbcDatabase({driver: "teradata", ... });

Note

The JavaScript/TypeScript ADBC driver manager is for server-side runtimes like Node.js, Deno, and Bun. It does not run in the browser.

import org.apache.arrow.adbc.driver.jni.JniDriver

JniDriver.PARAM_DRIVER.set(params, "teradata")
from adbc_driver_manager import dbapi

con = dbapi.connect(driver="teradata", ... )
library(adbcdrivermanager)

drv <- adbc_driver("teradata")
use adbc_driver_manager::ManagedDriver;

let mut driver = ManagedDriver::load_from_name("teradata", ... )
$ dbc install trino


3. Install a driver manager and load drivers in any supported language:

#include <arrow-adbc/adbc.h>

AdbcDatabaseSetOption(&database, "driver", "trino", &error)
import . "github.com/apache/arrow-adbc/go/adbc/drivermgr"

db, _ := Driver{}.NewDatabase(map[string]string{"driver": "trino", ... })
import org.apache.arrow.adbc.driver.jni.JniDriver;

JniDriver.PARAM_DRIVER.set(params, "trino");
import { AdbcDatabase } from "@apache-arrow/adbc-driver-manager";

const db = new AdbcDatabase({driver: "trino", ... });

Note

The JavaScript/TypeScript ADBC driver manager is for server-side runtimes like Node.js, Deno, and Bun. It does not run in the browser.

import org.apache.arrow.adbc.driver.jni.JniDriver

JniDriver.PARAM_DRIVER.set(params, "trino")
from adbc_driver_manager import dbapi

con = dbapi.connect(driver="trino", ... )
library(adbcdrivermanager)

drv <- adbc_driver("trino")
use adbc_driver_manager::ManagedDriver;

let mut driver = ManagedDriver::load_from_name("trino", ... )


For a more detailed walkthrough on how to use dbc, check out our First steps page or any of our Guides.

Features

  • Install pre-built ADBC drivers with a single command
  • Manage numerous drivers without conflicts
  • Install drivers just for your user or system-wide
  • Create reproducible environments with driver list files
  • Cross-platform: Runs on macOS, Linux, and Windows
  • Installable with pip, Docker, and more (See Installation)
  • Works great in CI/CD environments (See Continuous Integration)

Help