Iceberg保证Schema演化是没有副作用的独立操作,不会涉及到重写数据文件,具体如下:增加列时不会从另一个列中读取已存在的数据删除列或者嵌套结构中的字段时,不会改变任何其他列的值。...更新列或者嵌套结构中字段时,不会改变任何其他列的值。改变列或者嵌套结构中字段顺序的时候,不会改变相关联的值。...4、分区演化(partition Evolution)Iceberg分区可以在现有表中更新,因为Iceberg查询流程并不和分区信息直接关联。...当我们改变一个表的分区策略时, 对应修改分区之前的数据不会改变, 依然会采用老的分区策略, 新的数据会采用新的分区策略, 也就是说同一个表会有两种分区策略, 旧数据采用旧分区策略, 新数据采用新新分区策略..., 在元数据里两个分区策略相互独立,不重合.因此,在我们写SQL进行数据查询时, 如果存在跨分区策略的情况, 则会解析成两个不同执行计划, 如Iceberg官网提供图所示:图中booking_table