建立 Apache Iceberg 資料表時,系統會在 Lakehouse 執行階段目錄的命名空間中登錄資料表的中繼資料。
如果在建立資料表時,未在命名空間或資料表層級指定明確的儲存位置,系統會自動在目錄的預設位置 (衍生自目錄的基礎 Cloud Storage 值區) 下,附加命名空間和資料表 ID,建構資料表的後設資料和資料目錄。
事前準備
-
啟用 BigLake API。
啟用 API 時所需的角色
如要啟用 API,您需要具備服務使用情形管理員 IAM 角色 (
roles/serviceusage.serviceUsageAdmin),其中包含serviceusage.services.enable權限。瞭解如何授予角色。 - 使用 Apache Iceberg REST 目錄端點設定 Lakehouse 執行階段目錄。
必要的角色
如要取得建立表格所需的權限,請要求管理員授予您專案和儲存空間 bucket 的下列 IAM 角色:
-
全部:
- BigLake 管理員 (
roles/biglake.admin) - 您的專案 - Storage 管理員 (
roles/storage.admin) - 目標 Cloud Storage 值區
- BigLake 管理員 (
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
表格功能和支援
在 Lakehouse 執行階段目錄中使用表格時,建議瞭解不同表格類型及其選擇加入功能。如要進一步瞭解如何使用 Apache Iceberg 資料表,請參閱 Apache Iceberg 資料表總覽。
支援的 Iceberg 資料表
系統僅支援 Apache Iceberg V2 (正式發布版) 和 V3 (預先發布版) 資料表。不支援 Iceberg V1 資料表。如要升級現有的 V1 資料表,請參閱「將 Iceberg V1 資料表升級至 V2」。
使用表格選項 (預覽版)
您可以設定特定資料表屬性,選擇使用 BigQuery 管理功能,例如 BigQuery 資料操縱語言 (DML) 和自動資料表管理。啟用這些功能的方式會因表格建立位置而異:
- 從 BigQuery:BigQuery DML 和自動表格管理功能預設為啟用。
- 開放原始碼引擎:如要啟用這項功能,您必須明確設定表格屬性。詳情請參閱「設定表格選項」。
建立資料表
建立 Iceberg 資料表。
控制台
前往 Google Cloud 控制台的「Lakehouse」Lakehouse。
選取現有目錄,或建立目錄 (如果沒有的話)。
按一下選單列中的「+ 建立資料表」。
在「Table format」(資料表格式) 部分,選取「Iceberg」。
在「Table name」(資料表名稱) 部分,輸入不重複的資料表名稱。
點選「建立」。
資料表會顯示在「命名空間詳細資料」頁面上。
Spark
spark.sql("CREATE TABLE NAMESPACE_NAME.TABLE_NAME (id int, data string) USING ICEBERG;")
替換下列值:
NAMESPACE_NAME:命名空間的名稱。TABLE_NAME:資料表名稱。
如要啟用讀取/寫入互通性和表格管理 (預覽版),請將屬性新增至 TBLPROPERTIES 子句:
TBLPROPERTIES (
'gcp.biglake.bigquery-dml.enabled' = true,
'gcp.biglake.table-management.enabled' = true
)
Trino
CREATE TABLE SCHEMA_NAME.TABLE_NAME (id int, data varchar);
替換下列值:
SCHEMA_NAME:結構定義的名稱。TABLE_NAME:資料表名稱。
如要啟用讀取/寫入互通性和表格管理 (預覽版),請在 WITH 子句中加入下列屬性:
WITH (
"gcp.biglake.bigquery-dml.enabled" = 'true',
"gcp.biglake.table-management.enabled" = 'true'
)
gcloud
如要使用 gcloud 建立資料表,請執行 gcloud biglake iceberg tables create 指令。
gcloud biglake iceberg tables create \ --project="PROJECT_ID" \ --catalog="CATALOG_ID" \ --namespace="NAMESPACE_NAME" \ --create-from-file="TABLE_DEFINITION_FILE"
更改下列內容:
PROJECT_ID:您的 Google Cloud 專案 ID。CATALOG_ID:目錄 ID。NAMESPACE_NAME:目錄命名空間的名稱。TABLE_DEFINITION_FILE:包含 Iceberg 資料表定義的 JSON 檔案路徑。
BigQuery
如要從 BigQuery 在 Lakehouse 執行階段目錄中建立 Apache Iceberg 資料表,請使用下列 GoogleSQL CREATE TABLE 陳述式。從 BigQuery 建立資料表時,系統預設會啟用 BigQuery DML 和自動資料表管理功能。
CREATE TABLE `PROJECT_ID.CATALOG_ID.NAMESPACE.TABLE_NAME` (id int, data string);
更改下列內容:
PROJECT_ID:您的 Google Cloud 專案 IDCATALOG_ID:您的 Lakehouse 執行階段目錄 IDNAMESPACE:Iceberg 命名空間名稱TABLE_NAME:Iceberg 資料表的名稱
REST
如要使用 REST API 建立 Iceberg 資料表,請對 CreateIcebergTable 端點發出 POST 要求:
POST /iceberg/v1/restcatalog/v1/projects/PROJECT_ID/catalogs/CATALOG_ID/namespaces/NAMESPACE_NAME/tables
要求主體必須包含有效的 Iceberg CreateTableRequest JSON 酬載,定義表格結構定義、分割區規格和初始屬性。
更改下列內容:
PROJECT_ID:您的 Google Cloud 專案 ID。CATALOG_ID:目錄 ID。NAMESPACE_NAME:目錄命名空間的名稱。