DRDataRaft/ docs
GitHub ↗

dr_source_iceberg()

Uses a caller-owned DuckDB connection with the Iceberg extension already loaded. Configure REST catalogs and credentials outside product definitions. Sources use iceberg_scan() on a metadata file or table location. Pin a snapshot ID to reproduce a read; retention remains the catalog's policy.

Usage

dr_source_iceberg(connection, path, snapshot = NULL)

dr_target_iceberg(connection, table, mode = c("create", "append"))

Arguments

connection
Caller-owned DuckDB connection.


path
Iceberg metadata file or table location.


snapshot
Optional snapshot ID as a decimal string, never a double.


table
Fully qualified DBI::Id in an attached Iceberg catalog.


mode
Create a new table or append to an existing one.

Value

A source or target specification.

Details

Targets require DBI::Id(catalog=, schema=, table=) in an attached Iceberg REST catalog. Create fails if the table exists; append requires an existing table. The stored candidate is checked lazily inside a transaction before commit. Catalogs must support staged writes and transactions; uncertain failures are propagated, with no nontransactional fallback. No replace, branch/merge, snapshot-retention or cross-table atomicity guarantee is made. Each write stores a dataraft.write-id Iceberg table property. If DuckDB reports an error after commit, the adapter checks this marker and the row count before accepting the already published write; uncertain outcomes fail.

This experimental adapter delegates to DuckDB's Iceberg extension. Writes are not DataRaft lake releases: no registry release, lineage edge or managed rollback is created. Use a managed lake target when release governance is required. Lazy validation avoids collecting the entire table by default; custom quality rules may still collect data.
Documentation source snapshot · View source at 2f9432d ↗
Code examples are documented source examples; they are not executed in this website build.

Search documentation

Search functions, packages and guides.