不断变化的 Iceberg 表架构 - Amazon Athena
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

不断变化的 Iceberg 表架构

Iceberg 架构更新是仅对元数据进行更改。执行架构更新时,不会更改任何数据文件。

Iceberg 格式支持以下架构发展更改:

  • 添加 – 将新列添加到表或嵌套 struct

  • 删除 – 删除表或嵌套 struct 中的现有列。

  • 重命名 – 重命名嵌套 struct 中的现有列或字段。

  • 重新排序 – 更改列的顺序。

  • 类提升 – 扩大列、struct 字段、map 键、map 值或 list 元素的类型。目前,Iceberg 表支持以下案例:

    • 整数到大整数

    • 浮点到双精度

    • 提高十进制类型的精度

ALTER TABLE ADD COLUMNS

向现有 Iceberg 表添加一列或多列。

摘要

ALTER TABLE [db_name.]table_name ADD COLUMNS (col_name data_type [,...])

示例

以下示例将 string 类型的 comment 列添加到 Iceberg 表中。

ALTER TABLE iceberg_table ADD COLUMNS (comment string)

以下示例将 struct 类型的 point 列添加到 Iceberg 表中。

ALTER TABLE iceberg_table ADD COLUMNS (point struct<x: double, y: double>)

以下示例将作为结构数组的 points 列添加到 Iceberg 表中。

ALTER TABLE iceberg_table ADD COLUMNS (points array<struct<x: double, y: double>>)

ALTER TABLE DROP COLUMN

从现有 Iceberg 表中删除列。

摘要

ALTER TABLE [db_name.]table_name DROP COLUMN col_name

示例

ALTER TABLE iceberg_table DROP COLUMN userid

ALTER TABLE CHANGE COLUMN

更改列的名称、类型、顺序或注释。

注意

不支持 ALTER TABLE REPLACE COLUMNS。由于 REPLACE COLUMNS 删除所有列并添加新列,因此 Iceberg 不支持该语句。CHANGE COLUMN 是架构发展的首选语法。

摘要

ALTER TABLE [db_name.]table_name CHANGE [COLUMN] col_old_name col_new_name column_type [COMMENT col_comment] [FIRST|AFTER column_name]

示例

ALTER TABLE iceberg_table CHANGE comment blog_comment string AFTER id

SHOW COLUMNS

显示表中的列。

摘要

SHOW COLUMNS (FROM|IN) [db_name.]table_name

示例

SHOW COLUMNS FROM iceberg_table