限制和注意事項

透過 Apache Hive 目錄端點,將 Apache Spark 和 Apache Hive 與 Lakehouse 執行階段目錄整合,即可直接在 BigQuery 中共用統合中繼資料和查詢資料表,不必維護自行託管的 Hive Metastore (HMS)。

在 Lakehouse 執行階段目錄上遷移或建構開放原始碼資料庫管道之前,請先詳閱本文中的功能限制和服務注意事項,判斷這項整合是否符合您的技術相關規定。如需設定和查詢操作說明,請參閱「使用 Lakehouse 執行階段目錄設定 Spark 和 Hive」。

Lakehouse 執行階段目錄限制

本節列出搭配各種服務使用 Lakehouse 執行階段目錄時的限制。

Metastore 限制

  • Managed Service for Apache Spark 僅支援使用無邊界 Lakehouse Metastore 的 PySpark 工作。
  • Dataproc API 不支援在 properties 欄位中設定 Lakehouse Metastore 屬性。
  • 您無法建立使用 Kerberos 的 Managed Service for Apache Spark 叢集,因為 Lakehouse 執行階段目錄不支援委派權杖或主鍵 API。
  • 資料庫和資料表可以使用與 Hive 目錄不同的 Cloud Storage location_uri,前提是 Cloud Storage bucket 與 Hive 目錄位於相同區域。
  • Hive 目錄不得包含 Iceberg 命名空間和資料表。如要建立及使用 Iceberg 命名空間和資料表,請改用 Lakehouse 執行階段目錄。
  • Hive 資料庫和 Hive 目錄不支援連鎖刪除。
  • 不支援 Trino。

資料表限制

  • 不支援重新命名表格。
  • 不支援重新命名分割區。
  • 刪除資料表或資料庫不會從 Cloud Storage 移除相關聯的檔案。
  • 不支援不區分大小寫的搜尋。
  • 不支援叢集和 bucket。
  • 僅支援虛擬檢視。
  • Delta Lake 資料表可透過 Apache Spark (讀取和寫入) 和 BigQuery (唯讀) 支援。Hive 用戶端 (例如 Hive CLI) 不支援 Delta Lake 資料表。所有 BigQuery Delta Lake 外部資料表限制和 BigLake 資料表限制皆適用。如需更多詳細資料和特定限制,請參閱「使用 Delta 資料表設定 Spark」。

分區批次大小

Lakehouse 執行階段目錄支援儲存及擷取分區資訊,以便用於分區剪除。這項服務經過最佳化調整,適合讀取作業多於寫入作業的情況,可透過分區剪枝加快查詢速度。

為提升分割區擷取效能,批次分割區大小上限為 900。

為 Hive 和 Spark 屬性設定下列設定,決定分區作業的批次大小:

  • SET hive.msck.repair.batch.size = 900;
  • SET spark.sql.addPartitionInBatch.size = 900;

BigQuery 限制

  • 根據預設,BigQuery 不支援 ARRAY<ARRAY<>> 或 ARRAY<MAP<>> 資料類型。必須將 MAP 加入許可清單。 如果工作負載大量使用 MAP,請與 biglake-help@google.com 聯絡。
  • MAP 鍵類型僅支援原始資料類型。您無法使用 ARRAY、STRUCT 或 MAP 做為索引鍵類型。
  • BigQuery 只能查詢 Cloud Storage 中的資料。但請注意,本功能有以下限制:

    • 資料表位置 URI 不得包含萬用字元 (*)。
    • 資料表位置 URI 必須是目錄。

跨區域複製和災難復原限制

Lakehouse 執行階段目錄提供跨區域複製和災難復原功能,可提升目錄的可用性和韌性。

使用 Lakehouse 執行階段目錄搭配 Hive 目錄時,請注意下列限制:

  • 建立 Hive 目錄時,您必須將 primary_location 設為與 Cloud Storage bucket 的區域相符。然後,Lakehouse 執行階段目錄會根據 bucket 的雙區域或多區域設定,自動將中繼資料複製到次要區域。在您使用容錯移轉作業將次要中繼資料副本升級為主要副本之前,該副本只能讀取。
  • 在容錯移轉期間,replication_time 時間戳記只會追蹤目錄中繼資料的複寫作業,不會追蹤基礎 Cloud Storage 資料檔案是否已完成複寫至次要區域。資料備援取決於 bucket 的雙區域或多區域設定,與 Lakehouse 執行階段目錄中繼資料複製作業無關。

注意事項

Lakehouse 執行階段目錄支援 Hive Metastore 介面的部分功能。這項設計優先考量與 Spark ExternalCatalog 的相容性,因此不需要與 Hive Metastore 完全相容。

資源對應

下表列出 Hive Metastore 資源與 Lakehouse 執行階段目錄資源的對應關係,以及所需的 Identity and Access Management (IAM) 權限。

Hive Metastore 資源 Lakehouse 執行階段目錄資源 IAM 權限
目錄 目錄 biglake.catalogs.*
資料庫 資料庫 biglake.namespaces.*
資料表 資料表 biglake.tables.*

管理

Hive Metastore (HMS) 提供資料表、資料欄和分區層級的控管機制。Lakehouse 執行階段目錄提供資料表層級和分區層級的 IAM 權限。不支援資料欄層級的治理機制。

儲存空間限制

  • 所有 BigQuery 外部資料表限制均適用。

分區限制

  • 系統不支援在分區層級追蹤資料欄層級的統計資料。
  • BatchCreateHivePartitions API 限制呼叫為 900 個分割區。

後續步驟