Partition evolution feature

Partition evolution means you can change the partition layout of the table without rewriting existing data files. Old data files can remain partitioned by the old partition layout, while newly added data files are partitioned based on the new layout.

You can use the ALTER TABLE SET PARTITION SPEC statement to change the partition layout of an Iceberg table. A change to the partition spec results in a new metadata.json and a commit, but does not create a new snapshot.

Hive or Impala syntax

ALTER TABLE table_name SET PARTITION SPEC ([col_name][, spec(value)][, spec(value)]...)]
  • spec

    The specification for a transform listed in the next topic, "Partition transform feature".

Hive or Impala examples

ALTER TABLE t 
SET PARTITION SPEC ( TRUNCATE(5, level), HOUR(event_time), 
BUCKET(15, message), price);

ALTER TABLE ice_p
SET PARTITION SPEC (VOID(i), VOID(d), TRUNCATE(3, s), HOUR(t), i);