關於 BigQuery 端點的自訂 Apache Iceberg 目錄

BigQuery 的自訂 Apache Iceberg 目錄端點,可將 Apache Spark 和 Apache Flink 等開放原始碼查詢引擎,連結至 Lakehouse 執行階段目錄。只要整合自訂目錄外掛程式 (BigQueryMetastoreCatalog),這個端點就能讓您直接透過 BigQuery 管理及查詢 Apache Iceberg 資料表中繼資料,同時將資料和中繼資料檔案儲存在 Cloud Storage。

自訂 Iceberg 目錄的運作方式

自訂 Apache Iceberg 目錄會使用 JAR 程式庫中提供的自訂目錄實作 (org.apache.iceberg.gcp.bigquery.BigQueryMetastoreCatalog)。當運算工作負載在 Managed Service for Apache Spark 上執行時,引擎會使用這個外掛程式與 BigQuery 互動,將 BigQuery 做為 Apache Iceberg 資料表的中繼資料儲存庫。

工作流程的運作方式如下:

  1. 目錄實作:查詢引擎會載入 BigQuery Metastore 目錄 JAR,並設定 Spark 工作階段目錄屬性,以使用 org.apache.iceberg.gcp.bigquery.BigQueryMetastoreCatalog。
  2. 中繼資料管理:使用 Spark SQL 或 DataFrame API 建立或修改資料表時,外掛程式會將資料集和資料表定義儲存在 BigQuery 中。
  3. 資料儲存庫:Apache Iceberg 中繼資料檔案 (metadata.json、資訊清單清單、資訊清單) 和資料檔案 (例如 Parquet 檔案) 會直接儲存在指定的 Cloud Storage 倉儲路徑。
  4. 跨引擎存取:由於中繼資料已在 BigQuery 註冊,因此您可以透過 Spark 等開放原始碼引擎,以及直接從 BigQuery 查詢資料表。

資源階層結構

BigQuery 端點的自訂 Apache Iceberg 目錄會將中繼資料整理成下列階層:

資源 說明
專案 Google Cloud 專案,其中包含 BigQuery 資源和 Cloud Storage 倉儲儲存空間。
命名空間 (資料集) BigQuery 資料集,設定為 Iceberg 命名空間,定義在其中建立的資料表預設 Cloud Storage 位置。
資料表 Apache Iceberg 資料表的結構定義、快照和中繼資料指標會在 BigQuery 中追蹤,資料檔案則位於 Cloud Storage。

比較自訂 Iceberg 目錄和 Iceberg REST 目錄

下表摘要說明 BigQuery 端點的自訂 Apache Iceberg 目錄,與 Apache Iceberg REST 目錄端點之間的主要差異:

功能 BigQuery 的自訂 Iceberg 目錄 Apache Iceberg REST 目錄端點 (建議)
Catalog API 標準 自訂外掛程式 (BigQueryMetastoreCatalog) 開放標準 Apache Iceberg REST Catalog API
目錄階層 專案 > BigQuery 資料集 > 資料表 專案 > 目錄 > 命名空間 > 資料表 (P.C.N.T)
儲存空間設定 為每個資料集或資料表指定的 Cloud Storage 路徑 多值區或單一值區目錄
憑證臨時配發 不支援 (使用直接 IAM 憑證) 支援 (提供短期儲存空間存取權杖)
災難復原 不支援 支援 (跨區域複製和容錯移轉)
推薦學習對象 現有部署作業和工作流程 新工作負載和標準 Iceberg REST 用戶端整合

後續步驟