Lakehouse 執行階段目錄是全代管的無伺服器服務,可為資料湖倉提供單一事實來源。這項功能可讓多個引擎 (包括 Apache Spark、Apache Flink 和 BigQuery) 共用資料表和中繼資料,不必複製檔案。
Lakehouse 執行階段目錄支援儲存空間存取權委派 (憑證販售),可移除直接存取 Cloud Storage bucket 的需求,進而提升安全性。此外,還整合了 Knowledge Catalog,提供整合式管理、歷程和資料品質功能。
主要功能
Lakehouse 執行階段目錄是 Lakehouse for Apache Iceberg 的元件,可為資料管理和分析提供多項優勢,包括無伺服器架構、透過開放式 API 實現引擎互通性、一致的使用者體驗,以及搭配 BigQuery 使用時的高效能分析、串流和 AI。如要進一步瞭解這些優點,請參閱「什麼是 Lakehouse?」一文。
支援的引擎
Lakehouse 執行階段目錄與多個查詢引擎相容,包括 (但不限於) Apache Spark、Apache Flink 和 Trino。下表提供各引擎的說明文件連結:
| 引擎 | 說明文件 |
|---|---|
| Apache Spark | 快速入門導覽課程:搭配 Spark 使用 |
| Apache Flink | 搭配 Apache Flink 使用 |
| Trino | 搭配 Trino 使用 |
端點設定選項
您可以透過兩種方式設定 Lakehouse 執行階段目錄:使用 Apache Iceberg REST 目錄端點或 BigQuery 的自訂 Apache Iceberg 目錄端點。最佳選項取決於您的用途,如下表所示:
| 用途 | 建議 |
|---|---|
| 新 Lakehouse 執行階段目錄使用者,希望開放原始碼引擎存取 Cloud Storage 中的資料,並與其他引擎 (包括 BigQuery 和 AlloyDB for PostgreSQL) 互通。 | 使用 Apache Iceberg REST 目錄端點。 |
| 現有的 Lakehouse 執行階段目錄使用者,目前透過 BigQuery 端點的自訂 Apache Iceberg 目錄建立資料表。 | 繼續使用 BigQuery 端點的自訂 Apache Iceberg 目錄,但針對新工作流程,請使用 Apache Iceberg REST 目錄。透過 BigQuery 目錄同盟,使用 Apache Iceberg REST 目錄端點,即可查看透過 BigQuery 端點的自訂 Apache Iceberg 目錄建立的資料表。 |
與 BigLake metastore (傳統版) 的差異
建議在Google Cloud上使用 Lakehouse 執行階段目錄做為 metastore,而 BigLake metastore (傳統版) 則視為舊版功能。
Lakehouse 執行階段目錄與 BigLake 中繼存放區 (傳統版) 的主要差異包括:
- Lakehouse 執行階段目錄支援與 Spark 等開放原始碼引擎直接整合,有助於減少儲存中繼資料和執行工作時的冗餘。您可以透過多個開放原始碼引擎和 BigQuery,直接存取 Lakehouse 執行階段目錄中的資料表。
- Lakehouse 執行階段目錄支援 Apache Iceberg REST 目錄端點,但 BigLake metastore (傳統版) 不支援。
Lakehouse 執行階段目錄的限制
Lakehouse 執行階段目錄中的資料表有以下限制:
資料表管理
- 您無法使用 BigQuery 資料定義語言 (DDL) 或資料操縱語言 (DML) 陳述式,透過 Apache Iceberg REST 目錄端點建立或修改資料表。您可以使用 BigQuery API (透過 bq 指令列工具或用戶端程式庫) 修改這些資料表,但這麼做可能會導致變更與外部引擎不相容。
- Lakehouse 執行階段目錄中的資料表不支援重新命名作業或
ALTER TABLE ... RENAME TOSpark SQL 陳述式。 - Lakehouse 執行階段目錄中的表格不支援叢集。
- Lakehouse 執行階段目錄中的資料表不支援彈性資料欄名稱。
- Lakehouse 執行階段目錄不支援 Apache Iceberg 檢視區塊。
查詢
- 與查詢標準 BigQuery 資料表中的資料相比,從 BigQuery 引擎查詢 Lakehouse 執行階段目錄中的資料表時,效能可能會較慢。一般來說,查詢速度應與從 Cloud Storage 讀取資料的速度相同。
- 如果查詢使用 Lakehouse 執行階段目錄中的資料表,即使傳回資料列,BigQuery 試算也可能會回報資料下限為 0 位元組。這是因為系統必須執行完整查詢,才能判斷從資料表處理的資料量。執行查詢會產生處理這項資料的費用。
- 您無法在Wildcard 資料表查詢中,參照 Lakehouse 執行階段目錄中的資料表。
API 和中繼資料
- 您無法使用
tabledata.list方法,從 Lakehouse 執行階段目錄中的資料表擷取資料。您可以將查詢結果儲存至 BigQuery 資料表,然後對該資料表使用tabledata.list方法。 - 系統不支援顯示 Lakehouse 執行階段目錄中資料表的資料表儲存空間統計資料。
配額與限制
- BigQuery 中 Lakehouse 執行階段目錄的資料表,與標準資料表適用相同的配額和限制。