Skip to content
ADBC Driver

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.

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.

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.