数据湖(九):Iceberg 特点详述和数据类型

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

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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值