逐步發展的 Iceberg 資料表結構描述 - Amazon Athena

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

逐步發展的 Iceberg 資料表結構描述

Iceberg 結構描述更新只會變更中繼資料。執行結構描述更新時,不會更改任何資料檔案。

Iceberg 格式支持以下結構描述的變化:

  • Add – 在資料表或巢狀 struct 中新增資料欄。

  • Drop – 在資料表或巢狀 struct 中移除現有的資料欄。

  • Rename – 重新命名巢狀 struct 中現有的資料欄或欄位。

  • Reorder – 變更資料欄的順序。

  • Type promotion – 增加可用的資料欄、struct 欄位、map 鍵、map 值或 list 元素類型。目前,Iceberg 資料表會支援以下情況:

    • 整數到大整數

    • float 到 double

    • 增加十進制類型的精度

ALTER TABLE ADD COLUMNS

在現有資料表中新增一或多個資料欄。

概要

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