本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
逐步發展的 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 COLUMNcol_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
[COMMENTcol_comment
] [FIRST|AFTERcolumn_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