Skip to main content

Apache Iceberg

MotherDuck supports querying data in the Apache Iceberg format. The Iceberg DuckDB extension is loaded automatically when any of the supported Iceberg functions are called.

Iceberg functions

Function NameDescription
iceberg_scanQuery Iceberg data
iceberg_metadataQuery Iceberg metadata, such as the snapshot status, data format, and number of records.
iceberg_snapshotsInformation about the snapshots available in the data folder.
note

The available functions are only for reading Iceberg data. Creating or updating data in Iceberg format is not yet supported.

Examples

-- query data
SELECT count(*)
FROM iceberg_scan('path-to-iceberg-folder',
allow_moved_paths=true);

-- query metadata
SELECT *
FROM iceberg_metadata('path-to-iceberg-folder',
allow_moved_paths=true);

-- query snapshots
SELECT *
FROM iceberg_snapshots('path-to-iceberg-folder');

Query iceberg data stored in Amazon S3

SELECT count(*) 
FROM iceberg_scan('s3://<your-bucket>/<your-iceberg-folder>',
allow_moved_paths=true);
note

To query data in a secure Amazon S3 bucket, you will need to configure your Amazon S3 credentials.

Example using MotherDuck Iceberg sample dataset.

SELECT count(*)
FROM iceberg_scan('s3://us-prd-motherduck-open-datasets/iceberg/lineitem_iceberg',
allow_moved_paths=true)