Update data feature

From Hive, you can update data from a V2 Iceberg table.

Hive updates Iceberg V2 tables using a type of formatting defined by the Iceberg Spec. Row-level updates are supported. Iceberg uses position delete files to make updates. For information about position delete files, see the Delete data feature.

Updating table data generates a snapshot.

You use a WHERE clause in your UPDATE statement. For example:

update tbl_ice set b='Changed' where b in (select b from tbl_ice where a < 4);

Hive evaluates rows from one table against a WHERE clause, and updates all the rows that match WHERE conditions. The WHERE expression is similar to the WHERE expression used in SELECT.

Impala does not support making updates to Iceberg tables. Impala supports deletes and inserts. Impala can read updates to Iceberg tables.

Hive syntax

update tablename set column = value [, column = value ...] [where expression]

Hive examples

create external table tbl_ice(a int, b string, c int) stored by iceberg tblproperties ('format-version'='2');
insert into tbl_ice values (1, 'one', 50), (2, 'two', 51), (3, 'three', 52), (4, 'four', 53), (5, 'five', 54), (111, 'one', 55), (333, 'two', 56);
        
update tbl_ice set b='Changed' where b in (select b from tbl_ice where a < 4);