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:
Property | Description | Default |
---|---|---|
commit.manifest.target-size-bytes | The target size when merging manifest files. | 8 MB |
commit.status-check.num-retries | The 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.enabled | Enables committing snapshots without explicit snapshot IDs. | false (always true if the format version is > 1) |
dremio.clustering.target_clustering_depth | The target clustering depth. | 3 |
dremio.clustering.target_cluster_size | The target size of the cluster. | 3GB |
dremio.clustering.minimal_cluster_size | The minimal size of the cluster. | 64MB |
dremio.clustering.maximal_input_data_file_count_per_run | The maximal data file to process per iteration. | 10000 |
dremio.clustering.dremio.clustering.maximal_total_input_data_file_size_per_run | The maximal total data file sizes to rewrite per iteration run. | 200GB |
format-version | The table’s format version is defined in the Spec. Options: 1 or 2 | 2 |
history.expire.max-snapshot-age-ms | The maximum age of snapshots to keep while expiring snapshots. | 432000000 (5 days) |
history.expire.min-snapshots-to-keep | The minimum number of snapshots to keep while expiring snapshots. | 1 |
write.delete.mode | The 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 | copy-on-write |
write.merge.mode | The 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 | copy-on-write |
write.metadata.compression-codec | Metadata compression codec. Options: none or gzip | none |
write.metadata.delete-after-commit.enabled | Controls whether to delete the oldest tracked version metadata files after the commit. This property has no impact on tables created in Nessie catalogs. | false |
write.metadata.metrics.column.col1 | Metrics mode for column col1 to allow per-column tuning. Options: none , counts , truncate(length) , or full | (not set) |
write.metadata.metrics.default | Default metrics mode for all columns in the table. Options: none , counts , truncate(length) , or full | truncate(16) |
write.metadata.metrics.max-inferred-column-defaults | Defines 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-max | The maximum number of previous version metadata files to keep before deleting after the commit. | 100 |
write.parquet.compression-codec | The Parquet compression codec. Ignores the store.parquet.compression support key. Options: zstd , gzip , snappy , or uncompressed | zstd |
write.parquet.compression-level | The Parquet compression level. Ignores the store.parquet.compression.zstd.level support key. Supported for gzip and zstd . | null |
write.parquet.dict-size-bytes | The Parquet dictionary page size. Ignores the store.parquet.dictionary.page-size support key. | 2097152 (2 MB) |
write.parquet.page-row-limit | The Parquet page row limit. | 20000 |
write.parquet.page-size-bytes | The Parquet page size. Ignores the store.parquet.page-size support key. | 1048576 (1 MB) |
write.parquet.row-group-size-bytes | 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. | 134217728 (128 MB) |
write.summary.partition-limit | Includes partition-level summary stats in snapshot summaries if the changed partition count is less than this limit. | 0 |
write.target-file-size-bytes | Controls the size of files generated to target about this many bytes. | 536870912 (512 MB) |
write.update.mode | The 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 | copy-on-write |
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.