Skip to content

Table Properties

Snowpack reads snowpack.* table properties from the Iceberg catalog to control per-table behavior. These properties override global defaults set by environment variables or Helm values.

Property reference

PropertyTypeDefaultDescription
snowpack.maintenance_enabledboolfalseOpt in to automated maintenance. The orchestrator ignores tables where this is not set to true (when running in opt-in mode).
snowpack.maintenance_cadence_hoursint6 (global)Per-table override for the minimum hours between maintenance runs. Takes precedence over SNOWPACK_MAINTENANCE_CADENCE_HOURS.
snowpack.target_file_size_bytesint536870912 (512 MB)Target file size for compaction. Files smaller than this are candidates for rewriting.
snowpack.max_snapshot_age_daysint5Maximum snapshot retention in days. Snapshots older than this are expired during maintenance.
snowpack.min_input_filesint5Minimum number of small files required to trigger compaction. Prevents rewriting when there are only a few small files.
compaction_skipboolfalseExclude this table from all Snowpack maintenance. Overrides snowpack.maintenance_enabled. Useful for tables undergoing migration or manual intervention.

Setting properties

Set properties using Spark SQL ALTER TABLE ... SET TBLPROPERTIES:

-- Opt a table in to automated maintenance
ALTER TABLE lakehouse_dev.my_database.my_table
SET TBLPROPERTIES ('snowpack.maintenance_enabled' = 'true');
-- Override cadence and file size for a high-throughput table
ALTER TABLE lakehouse_dev.my_database.my_table
SET TBLPROPERTIES (
'snowpack.maintenance_cadence_hours' = '3',
'snowpack.target_file_size_bytes' = '268435456'
);
-- Temporarily exclude a table from maintenance
ALTER TABLE lakehouse_dev.my_database.my_table
SET TBLPROPERTIES ('compaction_skip' = 'true');

To remove a property and revert to the global default:

ALTER TABLE lakehouse_dev.my_database.my_table
UNSET TBLPROPERTIES ('snowpack.maintenance_cadence_hours');

Visibility

Table properties are surfaced in two places:

  • Health API — The GET /tables/{database}/{table}/health response includes a snowpack_config field containing all resolved snowpack.* properties for the table. This shows the effective configuration after merging table-level overrides with global defaults.

  • Web UI — The table detail page displays the current snowpack.* properties alongside health metrics, making it easy to verify configuration without running SQL.