BigQuery 中的 Apache Iceberg 專用 BigLake 資料表 (以下簡稱「BigQuery 中的 BigLake Iceberg 資料表」) 可做為在 Google Cloud上建構開放格式 lakehouse 的基礎。BigQuery 中的 BigLake Iceberg 資料表提供與標準 BigQuery 資料表相同的全代管體驗,但資料會儲存在客戶擁有的儲存空間 bucket。BigQuery 中的 BigLake Iceberg 資料表支援開放式 Iceberg 資料表格式,可與單一資料副本上的開放原始碼和第三方運算引擎互通。
功能總覽
BigQuery 中的 BigLake Iceberg 資料表支援下列功能:
- 使用 GoogleSQL 資料操縱語言 (DML) 進行資料表變異。
- 透過 BigLake 連接器 (例如 Spark、Dataflow 和其他引擎) 使用 BigQuery Storage Write API,統一處理批次和高輸送量串流。
- 匯出 Iceberg V2 快照並在每個資料表變動時自動重新整理,以便使用開放原始碼和第三方查詢引擎直接查詢。
- 結構定義演變:可新增、捨棄及重新命名資料欄,以符合您的需求。您也可以使用這項功能變更現有資料欄的資料類型和資料欄模式。詳情請參閱型別轉換規則。
- 自動最佳化儲存空間,包括調整檔案大小、自動叢集、垃圾收集和最佳化中繼資料。
- 時間旅行:在 BigQuery 中存取歷來資料。
- 資料欄層級安全防護和資料遮蓋。
- 多陳述式交易 (預先發布版)。
- 資料表分區 (預先發布版)。
- 在 Dataform 工作流程中建立資料表。
架構
BigQuery 中的 BigLake Iceberg 資料表可讓您輕鬆管理自有雲端 bucket 中的資料表,您可以在這些資料表上使用 BigQuery 和開放原始碼運算引擎,不必將資料移出您控管的 bucket。您必須先設定 Cloud Storage bucket,才能在 BigQuery 中使用 BigLake Iceberg 資料表。
BigQuery 中的 BigLake Iceberg 資料表會使用 BigLake metastore 做為所有 Iceberg 資料的統一執行階段 metastore。BigLake Metastore 提供單一資料來源,可管理多個引擎的中繼資料,並支援引擎互通性。
下圖顯示受管理資料表架構的概略視圖:
這項資料表管理功能對儲存空間有下列影響:
- BigQuery 會根據寫入要求和背景儲存空間最佳化作業 (例如 DML 陳述式和串流),在值區中建立新的資料檔案。
- 在 BigQuery 中刪除代管資料表時,BigQuery 會在時空旅行時間範圍到期後,在 Cloud Storage 中進行垃圾收集,刪除相關聯的資料檔案。
在 BigQuery 中建立 BigLake Iceberg 資料表,與建立 BigQuery 資料表類似。由於資料會以開放格式儲存在 Cloud Storage 中,因此您必須執行下列操作:
- 使用
WITH CONNECTION指定 Cloud 資源連線,設定 BigLake 存取 Cloud Storage 的連線憑證。 - 使用
file_format = PARQUET陳述式,將資料儲存的檔案格式指定為PARQUET。 - 使用
table_format = ICEBERG陳述式,將開放原始碼中繼資料表格式指定為ICEBERG。