Skip to main content

Supported Properties of Apache Iceberg Tables

You can use the following properties to configure aspects of Apache Iceberg tables:

PropertyDescriptionDefault
commit.manifest.target-size-bytesThe target size when merging manifest files.8 MB
commit.status-check.num-retriesThe number of times to check whether a commit succeeded after a connection is lost before failing due to an unknown commit state.3
compatibility.snapshot-id-inheritance.enabledEnables committing snapshots without explicit snapshot IDs.false (always true if the format version is > 1)
format-versionThe table’s format version defined in the Spec. Options: 1 or 22
history.expire.max-snapshot-age-msThe maximum age (in milliseconds) of snapshots to keep as expiring snapshots.432000000 (5 days)
history.expire.min-snapshots-to-keepThe default minimum number of snapshots to keep as expiring snapshots.1
write.delete.modeThe table’s method for handling row-level deletes. See Row-Level Changes on the Lakehouse: Copy-On-Write vs. Merge-On-Read in Apache Iceberg for more information on which mode is best for your table’s DML operations. Options: copy-on-write or merge-on-readcopy-on-write
write.merge.modeThe table’s method for handling row-level merges. See Row-Level Changes on the Lakehouse: Copy-On-Write vs. Merge-On-Read in Apache Iceberg for more information on which mode is best for your table’s DML operations. Options: copy-on-write or merge-on-readcopy-on-write
write.metadata.compression-codecThe Metadata compression codec. Options: none or gzipnone
write.metadata.delete-after-commit.enabledControls whether to delete the oldest tracked version metadata files after commit.false
write.metadata.metrics.column.col1Metrics mode for column col1 to allow per-column tuning. Options: none, counts, truncate(length), or full(not set)
write.metadata.metrics.defaultDefault metrics mode for all columns in the table. Options: none, counts, truncate(length), or fulltruncate(16)
write.metadata.metrics.max-inferred-column-defaultsDefines the maximum number of top-level columns for which metrics are collected. The number of stored metrics can be higher than this limit for a table with nested fields.100
write.metadata.previous-versions-maxThe maximum number of previous version metadata files to keep before deleting after commit.100
write.parquet.compression-codecThe Parquet compression codec. Options: zstd, gzip, snappy, or uncompressedzstd
write.parquet.compression-levelThe Parquet compression level. Supported for gzip and zstd.null
write.parquet.dict-size-bytesThe Parquet dictionary page size (in bytes).2097152 (2 MB)
write.parquet.page-row-limitThe Parquet page row limit.20000
write.parquet.page-size-bytesThe Parquet page size (in bytes).1048576 (1 MB)
write.parquet.row-group-size-bytesParquet row group size. Dremio uses this property as a target file size since it writes one row-group per Parquet file. Ignores the store.parquet.block-size and dremio.iceberg.optimize.target_file_size_mb support keys.134217728 (128 MB)
write.summary.partition-limitIncludes partition-level summary stats in snapshot summaries if the changed partition count is less than this limit.0
write.update.modeThe table’s method for handling row-level updates. See Row-Level Changes on the Lakehouse: Copy-On-Write vs. Merge-On-Read in Apache Iceberg for more information on which mode is best for your table’s DML operations. Options: copy-on-write or merge-on-readcopy-on-write

You can configure these properties when you create or alter Iceberg tables.

Dremio uses the Iceberg default value for table properties that are not set. See Iceberg's documentation for the full list of table properties. To view the properties that are set for a table, use the SQL command SHOW TBLPROPERTIES.

In cases where Dremio has a support key for a feature covered by a table property, Dremio uses the table property instead of the support key.