Iceberg table format
dlt supports writing Iceberg tables when using the filesystem destination.
How it works
dlt uses the PyIceberg library to write Iceberg tables. One or multiple Parquet files are prepared during the extract and normalize steps. In the load step, these Parquet files are exposed as an Arrow data structure and fed into pyiceberg.
Iceberg catalogs support
dlt leverages pyiceberg's load_catalog function to be able to work with the same catalogs that pyiceberg would support, including REST and SQL catalogs. This includes using single-table, ephemeral, in-memory, SQLite-based catalogs. For more information on how pyiceberg works with catalogs, reference their documentation. To enable this, dlt either translates the configuration in the secrets.toml and config.toml into a valid pyiceberg config, or it delegates pyiceberg the task of resolving the needed configuration.
Iceberg dependencies
You need Python version 3.9 or higher and the pyiceberg package to use this format:
pip install "dlt[pyiceberg]"
You also need sqlalchemy>=2.0.18:
pip install 'sqlalchemy>=2.0.18'