Iceberg 特点详述和数据类型
一、Iceberg 特点详述
1、Iceberg 分区与隐藏分区(Hidden Partition)
Iceberg 支持分区来加快数据查询。在 Iceberg 中设置分区后,可以在写入数据时将相似的行分组,在查询时加快查询速度。Iceberg 中可以按照年、月、日和小时粒度划分时间戳组织分区。
在 Hive 中也支持分区,但是要想使分区能加快查询速度,需要在写 SQL 时指定对应的分区条件过滤数据,在 Iceberg 中写 SQL 查询时不需要再 SQL 中特别指定分区过滤条件,Iceberg 会自动分区,过滤掉不需要的数据。
在 Iceberg 中分区信息可以被隐藏起来,Iceberg 的分区字段可以通过一个字段计算出来,在建表或者修改分区策略之后,新的数据会自动计算所属于的分区,在查询的时候同样不用关心表的分区是什么字段,只需要关注业务逻辑,Iceberg 会自动过滤不需要的分区数据。
正是由于 Iceberg 的分区信息和表数据存储目录是独立的,使得 Iceberg 的表分区可以被修改,而且不会涉及到数据迁移。
2、Iceberg 表演化(Table Evolution)
在 Hive 分区表中,如果把一个按照天分区的表改成按小时分区,那么没有办法在原有表上进行修改,需要创建一个按照小时分区的表,然后把数据加载到此表中。
Iceberg 支持就地表演化,可以通过 SQL 的方式进行表级别模式演进,例如:更改表分区布局。Iceberg 进行以上操作时,代价极低,不存在读出数据重新写入或者迁移数据这种费时费力的操作。
3、模式演化(Schema Evolution)
Iceberg 支持以下几种 Schema 的演化:
-
ADD:向表或者嵌套结构增加新列。
-
Drop:从表或嵌套结构中移除列。
-
Rename:重命名表中或者嵌套结构中的列。
-
Update:将复杂结构(Struct、Ma

文章详细介绍了Iceberg的数据管理特性,包括隐藏分区,支持就地的表和模式演进,允许无副作用的Schema更改,以及分区策略的更新。此外,还提及了列顺序演进和对多种数据类型的支撑。
最低0.47元/天 解锁文章
6134

被折叠的 条评论
为什么被折叠?



