Search Shortcut cmd + k | ctrl + k

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.

Maintainer(s): alitrack

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

function_name function_type description comment examples
hudi_commits table NULL NULL  
hudi_files scalar NULL NULL  
hudi_info scalar NULL NULL  
hudi_mdt table NULL NULL  
hudi_stats table NULL NULL  
read_hudi table NULL NULL  

Overloaded Functions

This extension does not add any function overloads.

Added Types

This extension does not add any types.

Added Settings

name description input_type scope aliases typed_value
hudi_row_estimate Report the kernel's row count of the planned file slices as the estimated cardinality of a read_hudi scan (the count is size-based unless the metadata table records it) BOOLEAN GLOBAL [] false
temp_directory Set the directory to which temporary files are written. VARCHAR GLOBAL [] post.db.tmp
© 2026 DuckDB Foundation, Amsterdam NL
DuckDB Home Code of Conduct Trademark Use Blog