Query Apache Hudi COW and MOR tables directly in DuckDB — full scans, time-travel (as_of), incremental windows, and table metadata — powered by the Rust hudi-rs kernel.
Compatibility Matrix
This table covers all DuckDB releases that have not reached end-of-life, including LTS releases, and shows the 2 most recent patch releases of each. Older patch releases are not listed, but the extension may be available for them as well.
| Platform | 1.4.4 | 1.4.5 | 1.5.5 | 1.5.6 | 2.0.0 |
|---|---|---|---|---|---|
| Linux AMD64 | |||||
| Linux ARM64 | |||||
| macOS AMD64 | |||||
| macOS ARM64 | |||||
| Windows AMD64 | |||||
| Windows ARM64 | |||||
| WebAssembly |
Installing and Loading
INSTALL hudi FROM community;
LOAD hudi;
Example
-- Read a Hudi COW table
INSTALL hudi FROM community;
LOAD hudi;
SELECT * FROM read_hudi('/path/to/hudi_table')
WHERE dt = '2026-01-01';
-- Time-travel to the latest commit <= an instant
SELECT * FROM read_hudi('/path/to/hudi_table', as_of => '20260101000000000');
-- Incremental read of changes in (start, "end"]
-- ("end" is a reserved word, so quote it as a named parameter)
SELECT * FROM read_hudi('/path/to/hudi_table',
start => '20260101000000000', "end" => '20260102000000000');
-- Table metadata: type, latest commit, file counts
SELECT hudi_info('/path/to/hudi_table');
About hudi
duckdb-hudi
DuckDB extension that reads Apache Hudi tables (COW and MOR) using the hudi-rs Rust kernel. Source: https://github.com/alitrack/duckdb-hudi
Install
INSTALL hudi FROM community;
LOAD hudi;
Features
- Full scan of COW and MOR Hudi tables
- Time-travel via
as_of(query a table at a specific instant) - Incremental reads (new/changed records since a checkpoint)
- Table schema + metadata queries
- Parallel scanning
Build note
The extension is built from the DuckDB C-API Rust template and its hudi
dependency pulls in the Lance crate, which runs prost-build at compile
time. Building therefore requires protoc to be available (this extension
declares requires_toolchains: rust; the protobuf compiler is the one
toolchain not yet in the default community build environment — see the PR
description for the resolution).
Added Functions
This extension does not add any functions.
Overloaded Functions
This extension does not add any function overloads.
Added Types
This extension does not add any types.
Added Settings
This extension does not add any settings.