Skip to main content
Version: current [26.x]

Supported Properties of Apache Iceberg Tables

You can use the following table properties to configure aspects of Apache Iceberg tables when you create or alter the table:

PropertyDefaultDescription
commit.manifest.target-size-bytes8 MBThe target size when merging manifest files.
commit.status-check.num-retries3The number of times to check whether a commit succeeded after a connection is lost before failing due to an unknown commit state.
compatibility.snapshot-id-inheritance.enabledfalse (always true if the format version is > 1)Enables committing snapshots without explicit snapshot IDs.
dremio.clustering.target_clustering_depth3The target clustering depth. Lower numbers indicate better organization.
dremio.clustering.target_cluster_size3GBThe target size of the cluster.
dremio.clustering.minimal_cluster_size64MBThe minimal size of the cluster.
dremio.clustering.maximal_input_data_file_count_per_run10000The maximal data file to process per iteration.
dremio.clustering.dremio.clustering.maximal_total_input_data_file_size_per_run200GBThe maximal total data file sizes to rewrite per iteration run.
format-version2The table's format version is defined in the Spec. Options: 1 or 2
history.expire.max-snapshot-age-ms432000000 (5 days)The maximum age of snapshots to keep while expiring snapshots.
history.expire.min-snapshots-to-keep1The minimum number of snapshots to keep while expiring snapshots.
write.delete.modecopy-on-writeThe 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-read
write.merge.modecopy-on-writeThe 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-read
write.metadata.compression-codecnoneMetadata compression codec. Options: none or gzip
write.metadata.delete-after-commit.enabledfalseControls whether to delete the oldest tracked version metadata files after the commit. This property has no impact on tables created in Nessie catalogs.
write.metadata.metrics.column.col1(not set)Metrics mode for column col1 to allow per-column tuning. Options: none, counts, truncate(length), or full
write.metadata.metrics.defaulttruncate(16)Default metrics mode for all columns in the table. Options: none, counts, truncate(length), or full
write.metadata.metrics.max-inferred-column-defaults100Defines 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.
write.metadata.previous-versions-max100The maximum number of previous version metadata files to keep before deleting after the commit.
write.parquet.compression-codeczstdThe Parquet compression codec. Options: zstd, gzip, snappy, or uncompressed
write.parquet.compression-levelnullThe Parquet compression level. Supported for gzip and zstd.
write.parquet.dict-size-bytes2097152 (2 MB)The Parquet dictionary page size. Ignores the store.parquet.dictionary.page-size support key.
write.parquet.page-row-limit20000The Parquet page row limit.
write.parquet.page-size-bytes1048576 (1 MB)The Parquet page size. Ignores the store.parquet.page-size support key.
write.parquet.row-group-size-bytes134217728 (128 MB)Parquet 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.
write.summary.partition-limit0Includes partition-level summary stats in snapshot summaries if the changed partition count is less than this limit.
write.target-file-size-bytes536870912 (512 MB)Controls the size of files generated to target about this many bytes.
write.update.modecopy-on-writeThe 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-read

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.

Dremio also 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.