Lakehouse 執行階段目錄是無伺服器的統合式 metastore,可簡化自行託管的 Hive metastore 管理作業。這個全代管的單一中繼資料層,可讓您不必為開放原始碼工作負載建立個別的中繼資料儲存庫。您可以在 Apache Spark、Apache Hive 和 BigQuery 之間順暢共用資料。
這項整合功能已針對 Apache Spark ExternalCatalog 相容性進行最佳化,並支援部分 Hive Metastore 介面。如要查看工作負載是否依賴交易、壓縮或 Kerberos 等不支援的功能,請參閱功能比較和限制。
Hive 如何與 Lakehouse 執行階段目錄整合
Hive Metastore 端點管理的是標準 Apache Hive 和 Spark 資料表 (使用 Hive SerDes 或 Spark 資料來源),而非 Apache Iceberg 資料表。為簡化 Spark 工作與這個端點的連線,Managed Service for Apache Spark 映像檔已預先設定必要的用戶端程式庫和依附元件。
以下順序說明 Spark 如何連線至中繼存放區:
- Apache Spark 會使用標準 Apache Hive
IMetastoreClient介面,連線至外部中繼資料目錄。 - Lakehouse 執行階段目錄會實作自訂
IMetastoreClient,為 Spark 和 Hive 中繼資料提供全代管的 metastore 服務。 - 預先設定的 Managed Service for Apache Spark 執行階段會自動使用這個自訂用戶端,將中繼資料作業直接傳送至 Metastore。
設定完成後,您就能直接在 BigQuery 中查詢 Spark 建立的資料表。這項整合功能支援各種儲存空間格式 (例如 Parquet、ORC 和 Avro),以及 Spark 和 BigQuery 之間的特定資料類型對應。
Hive 目錄如何與 Google Cloud 服務整合
如要瞭解 Lakehouse for Apache Iceberg 如何管理資料,請參閱 Hive 目錄架構如何與 Google Cloud 服務整合。開放原始碼工作負載會連線至 Lakehouse 執行階段目錄,管理 Hive 資料庫和資料表定義,並直接在 Cloud Storage 倉儲目錄中儲存基礎資料檔案,不必維護自行代管的 metastore。
下圖說明 Managed Service for Apache Spark 等運算引擎如何使用 Lakehouse 執行階段目錄,在 Hive 中直接讀取及寫入基礎資料檔案,同時管理資料表的中繼資料。
與 Hive Metastore 的功能比較
下表比較 Hive Metastore 和 Lakehouse 中的實體和作業。
| 實體或作業 | Hive 中繼存放區 | Lakehouse 執行階段目錄 |
|---|---|---|
| 目錄 | ✅ | ✅ |
| 資料庫 (建立、刪除、更新) | ✅ | ✅ |
| 資料表 (建立、刪除、更新) | ✅ | ✅ |
| 分區 (新增、捨棄、更新) | ✅ | ✅ |
| 資料表權限 | ✅ | ✅ (透過 Identity and Access Management (IAM)) |
| 分區權限 | ✅ | ✅ (透過 IAM) |
| 使用者定義函式 | ✅ | 不支援 |
| Bucketing / Skewing columns | ✅ | 不支援 |
| 資料表和分區資料欄統計資料 | ✅ | 不支援 |
| 主要限制 | ✅ | 不支援 |
| 委派權杖 (Kerberos) | ✅ | 不支援 |
| 資料欄權限 | ✅ | 不支援 |
| 角色 | ✅ | 不支援 |
| 工作負載管理工具資源方案 | ✅ | 不支援 |
| 交易和壓縮 | ✅ | 不支援 |