Skip to content

ADBC driver for Delta tables, with a Power Query connector for Power BI Desktop

Apache Arrow Database Connectivity is the columnar BI wire that does what ODBC could not: hand the consumer a record batch by reference and let the BI tool read Arrow buffers directly. DeltaForge bundles the ADBC driver and a branded Power Query connector, so Power BI Desktop 2.145.1105.0+ talks to your Delta tables without per-cell conversion.

Arrow record batches handed to the BI tool by reference, no per-cell conversion
13.7x faster than .NET ODBC on a 1M-row, 22-column scan (measured)
Branded Power Query .mez connector, Windows MSI, Linux deb/rpm, macOS pkg
Power BI .NET Python Polars DuckDB ADBC DeltaForge Arrow stream Delta Tables S3 / ADLS / Disk single copy Apache Arrow batches by reference. Zero per-cell conversion.

Signed binaries for every platform: deltaforge-org/delta-forge on GitHub

Install the ADBC driver

For Python, install the pip package: the wheel bundles the native driver, so there is nothing else to set up. For Power BI, .NET, and other Arrow ADBC clients, install the native driver for your OS from the delta-forge-adbc releases.

Python (pip)

pip
pip install deltaforge-adbc

# optional DataFrame integrations
pip install "deltaforge-adbc[pandas]"   # or [polars]

Native driver

Quickest is the one-line installer: it fetches the latest signed MSI and installs the bundled Power BI connector into your Power BI Desktop\Custom Connectors folder. Or run the MSI yourself. Power BI Desktop 2.145.1105.0+ is required for the ADBC driver class.

One-line
iwr -useb https://deltaforge.org/install.ps1 | iex; Install-DeltaForge -Pkg deltaforge-adbc
MSI
msiexec /i deltaforge-adbc-<version>-windows-x64.msi /qn /norestart

Quickest is the one-line installer. Or install the Debian/Ubuntu .deb, or extract the portable tarball deltaforge-adbc-<version>-linux-x64.tar.gz on other distributions.

One-line
curl -fsSL https://deltaforge.org/install.sh | sh -s -- --pkg deltaforge-adbc
sudo apt install ./delta-forge-adbc_<version>_amd64.deb

Quickest is the one-line installer. Or install the signed .pkg on Apple Silicon (arm64) yourself.

One-line
curl -fsSL https://deltaforge.org/install.sh | sh -s -- --pkg deltaforge-adbc
sudo installer -pkg deltaforge-adbc-<version>-macos-arm64.pkg -target /

Replace <version> with the current release (for example 1.0.610). All installers and the standalone Power Query connector are attached to each delta-forge-adbc release; the driver reference lives in the documentation.

What ADBC does that ODBC can't

ODBC asks the driver to copy every cell into a caller-supplied row buffer. ADBC hands the caller an Arrow record batch and lets them read columnar buffers in place.

Zero per-cell conversion

The ADBC driver's ArrowArrayStream.get_next callback returns an ArrowArray whose buffer pointers reference the wire payload directly. Arrow's columnar layout becomes the BI tool's columnar layout. No SQLGetData, no row marshalling.

Native Power BI Desktop support

Power BI Desktop 2.145.1105.0+ ships the Adbc.DataSource Power Query function. The DeltaForge Power Query connector (a .mez) registers a branded "DeltaForge ADBC" entry under Get Data → Database. Connect, pick a table, the Mashup engine reads Arrow.

The same engine, the same governance

ADBC and ODBC are two consumer surfaces on top of the same DeltaForge transport. The same RBAC, the same audit chain, the same query routing. Choose per workload; switch with a connection-string change.

ADBC vs ODBC on Power BI workloads, measured on the canonical bench

The driver bench in delta-forge-benchmarks/driver-bench drives the same query through both drivers against the same self-provisioned DeltaForge stack and reports per-phase wall time. Public, scripted, reproducible.

C++ harness (1M rows x 22 cols)

ADBC vs ODBC bound-column path: 3.21x on total wall time, 3.90x on the drain phase. ADBC vs per-cell SQLGetData (the .NET / Power BI pattern emulated in C++): 6.27x / 7.77x.

.NET harness, real consumer stacks

System.Data.Odbc.OdbcDataReader vs Apache.Arrow.Adbc, same 1M x 22 fixture: ADBC is 13.68x faster end-to-end and 14.31x faster on drain. This is the gap a Power BI report scan sees today.

One-command reproduction

Clone the bench repo, ./scripts/install.sh, ./scripts/setup-host-stack.sh, ./scripts/run_bench.sh. Provisions Postgres, the control plane, the worker, the bench fixture, and runs both harnesses. Full results →

What ships with the DeltaForge ADBC driver

One install adds ADBC connectivity to every BI tool that speaks Arrow, including Power BI Desktop via the bundled Power Query connector

ADBC driver, Apache spec v1.0.0

The C ABI Apache Arrow Database Connectivity v1.0.0 specifies. Loadable by any ADBC driver manager (the Apache one, the Power BI host, or direct dlopen).

Power Query .mez connector

Bundled. Drops into Power BI Desktop's Custom Connectors folder. Adds "DeltaForge ADBC" under Get Data, with first-class fields for the control-plane URL and the auth modes the driver supports.

One install on every OS

Windows MSI, Debian/Ubuntu .deb, RHEL/Fedora .rpm, macOS .pkg, tarball for everything else. Same driver binary, same connector, same call shape.

Frequently asked questions

ADBC for Power BI and Python, in practice

What is ADBC in Power BI?

ADBC (Apache Arrow Database Connectivity) is the columnar successor to ODBC for analytics workloads, and Power BI Desktop 2.145.1105.0+ ships native support for it through the Adbc.DataSource Power Query function. Where ODBC copies every cell into a row buffer, ADBC hands Power BI an Arrow record batch by reference, which is why scans run measurably faster on the same data. As Power BI moves from ODBC to ADBC, the bundled DeltaForge connector puts you on the new path today.

How do I query Iceberg from Python with ADBC?

Install the driver, load it with Python's adbc_driver_manager, and point the connection at your DeltaForge control plane. Queries return Arrow tables that drop straight into pandas or Polars without a row-by-row copy, and the same engine serves both Iceberg and Delta Lake tables over one connection.

Do relationship joins fold on the Power BI ADBC connector?

Mostly yes, with one known Power BI behaviour: a star-schema measure that joins two tables over a relationship can fail to fold on the preview Adbc.DataSource path. It is not an engine or driver defect, and there is a clean workaround. Read the known-issue guide →

Can ADBC and ODBC coexist?

Yes. ADBC and the DeltaForge ODBC driver are two consumer surfaces on the same transport, with the same RBAC, audit chain, and query routing. Choose per workload, or switch with a connection-string change.

Further reading

The tables you read over ADBC are written and maintained with plain SQL: MERGE, UPDATE and DELETE on Delta Lake Without Spark covers Delta DML, Iceberg INSERT, UPDATE, DELETE and MERGE in SQL covers the Iceberg side, and the OPTIMIZE, VACUUM and Z-ORDER maintenance guide keeps scans fast for every BI consumer.

Read your Delta tables in Power BI as Arrow

Install the ADBC driver + the Power Query connector. Point Power BI Desktop at your DeltaForge control plane. Open a report. The Mashup engine consumes Arrow batches directly from the driver.