ALTER ICEBERG TABLE
Syntax
Changing table options
Alters previously configured options for the specified Apache Iceberg table:
ALTER ICEBERG TABLE <table_identifier>
SET <table_option> = <value>;
Partitioning/Clustering
Users can change the partition or cluster columns of an existing table. Additionally, you can switch from partitioning to clustering and vice versa, with these changes applying to data moving forward.
Changing columns
Changes the partition/cluster columns of an existing table. This change does not rebuild the existing data according to the new partitioning, but will apply the new partitioning to data moving forward.
Partitioned table example:
ALTER TABLE <table_name> PARTITION BY <column_name> [, ...];
Clustered table example:
ALTER TABLE <table_name> CLUSTER BY <column_name> [, ...];
Note you can use any partition transforms supported by iceberg. for example:
ALTER TABLE <table_name> PARTITION BY
TRUNCATE(10, <column_name>),
DAY(<timestamp_column_name>);
Stop partitioning\clustering
To stop table partitioning or clustering moving forward:
ALTER TABLE <table_name> PARTITION BY ();
Switching Between Partitioning and Clustering
You can also change the table structure from clustering to partitioning and vice versa, which will apply to data moving forward.
Sorting evolution
Changes the sorting columns of an existing table.
This will affect the data written from now onwards and new compactions will write data using the new sorting.
ALTER TABLE <table_name> ORDER BY <column_name> [ASC | DESC] [, ...]
To disable sorting completely:
ALTER TABLE <table_name> ORDER BY ()
If you wishes to re-sort old data after changing the sorting, you can trigger a compaction with OPTIMIZE TABLE command.
Examples
Modifying table options:
ALTER ICEBERG TABLE my_iceberg_table
SET compute_cluster = "my_compute_cluster",
iceberg.read.split."planning-lookback"='10';
Changing partitions columns:
ALTER ICEBERG TABLE my_iceberg_table PARTITION BY COLUMN1, COLUMNS2;
Changing Sort columns:
ALTER ICEBERG TABLE my_iceberg_table ORDER BY COLUMN1 DESC, COLUMNS2 ASC;
Note
that not all table options are mutable.
All mutable options are denoted by — editable in the individual option descriptions.
To check if a certain table option is mutable, see CREATE ICEBERG TABLE.
Last updated