選擇合適的資料表架構,對於盡可能提高效能、降低成本,以及確保數據分析工具可存取資料至關重要。本頁面說明 Lakehouse for Apache Iceberg 中提供的不同資料表類型和服務端點,協助您根據寫入引擎、讀取需求和管理控制需求,選擇最合適的選項。
目錄或引擎的表格格式
選取目錄或引擎,瞭解其支援的表格格式、中繼存放區設定、儲存空間最佳化功能,以及引擎互通性。
Lakehouse 執行階段目錄
Lakehouse 執行階段目錄會透過 Iceberg REST 目錄端點管理 Apache Iceberg 資料表,並在與 Iceberg 相容的引擎 (Spark、Flink、Trino) 和 BigQuery 之間,提供順暢的讀寫互通性,同時以業界標準的 Iceberg REST 目錄介面為後盾。
支援的表格格式
支援 Apache Iceberg V2 資料表 (正式發布版) 和 V3 資料表 (預先發布版)。系統不支援 Iceberg V1 資料表。如要搭配 Lakehouse for Apache Iceberg 使用現有的 V1 資料表,請務必先將資料表升級至支援的版本。詳情請參閱「將 Iceberg V1 資料表升級至 V2」。
Key features include:
- Metastore:Lakehouse 執行階段目錄。
- 儲存空間:Cloud Storage。
- 儲存空間最佳化:由您管理,或選擇由 Google 管理 (搶先體驗版)。
- 讀取及寫入權限:
- 開放原始碼引擎:讀取和寫入 (正式版)
- BigQuery:讀取/寫入 (預先發布版)
- 應用實例:開放式湖倉,提供高效能企業級儲存空間,適用於進階分析、串流和 AI。
Hive Metastore
Lakehouse 執行階段目錄會透過 Apache Hive metastore (HMS) 端點管理 Apache Hive 資料表,並針對 Apache Spark ExternalCatalog 相容性進行最佳化,讓您在 Apache Spark、Apache Hive 和 BigQuery 之間順暢共用資料。您可以從開放原始碼引擎建立這些資料表,並儲存在 Cloud Storage 中。如果您希望 ETL 工作流程由開放原始碼引擎管理,不需要個別的自行代管 Hive 中繼存放區,且只需要 BigQuery 的讀取權限,這個選項最適合您。
由 Hive Metastore 端點管理的資料表是標準的 Apache Hive 和 Spark 資料表 (使用 Hive SerDes 或 Spark 資料來源),而非 Apache Iceberg 資料表。如要在 Lakehouse 執行階段目錄中建立及管理 Apache Iceberg 資料表,請改用 Iceberg REST 目錄端點。
Key features include:
- Metastore:Lakehouse 執行階段目錄 (透過自訂
IMetastoreClient)。 - 儲存空間:Cloud Storage (支援 Parquet、ORC 和 Avro 等格式)。
- 儲存空間最佳化:由您或第三方管理。
- 讀取及寫入權限:
- 開放原始碼引擎 (Spark 和 Hive):讀取和寫入。
- BigQuery:唯讀。
- 用途:將現有的 Spark 和 Hive 工作負載,遷移至 Google Cloud上的全代管無伺服器 Metastore。
BigQuery
BigQuery 支援 Apache Iceberg 代管資料表、原生資料表和外部資料表。
Apache Iceberg 代管資料表:這類 Apache Iceberg 資料表是由您透過 BigQuery 建立及管理,並儲存在 Cloud Storage 中。雖然開放原始碼引擎可以讀取這些資料,但 BigQuery 才是管理中繼資料並寫入資料的引擎。如果您希望工作流程完全由 BigQuery 管理,這個選項最適合您。
原生資料表:這些是原生 BigQuery 資料表。這些服務完全由 Google 管理,並提供最先進的分析和管理功能。這個選項最適合非 Iceberg 工作負載。
外部資料表:這些資料表是 BigQuery 專用的建構項目,適用於儲存在 Cloud Storage、Amazon S3 或 Azure Blob 儲存體中的資料。資料和中繼資料由您自行管理,BigQuery 只有讀取權限。如要直接在第三方目錄或儲存空間中管理資料,請選擇這個選項。
各產品的資料表格式
請參閱下表,比較 Lakehouse 執行階段目錄和 BigQuery 的資料表類型。
湖倉
| Apache Iceberg (正式發布版) | 無邊界 Lakehouse (預覽) | Apache Hive (預先發布版) | |
|---|---|---|---|
| Metastore | Lakehouse 執行階段目錄 | Lakehouse 執行階段目錄 | Lakehouse 執行階段目錄 |
| 儲存空間 | Cloud Storage | Cloud Storage / Amazon S3 | Cloud Storage |
| 儲存空間最佳化 | 客戶管理、第三方管理或 Google 管理 (預先發布版) | 由客戶或第三方管理 | 由客戶或第三方管理 |
| 讀寫 |
開放原始碼引擎 (讀取/寫入) BigQuery (讀取/寫入 [預先發布版]) |
開放原始碼引擎 (讀取) BigQuery (讀取) |
開放原始碼引擎 (讀取/寫入) BigQuery (唯讀) |
| 進階作業 | 無 | 無 | 無 |
| 用途 | 開放式 lakehouse | 查詢其他雲端供應商的資料,不必遷移檔案或建構複雜的 ETL 管道。 | 將現有的 Spark 和 Hive 工作負載遷移至全代管無伺服器 metastore |
BigQuery
| Apache Iceberg 代管資料表 | 外部資料表 | 標準表格 | |
|---|---|---|---|
| Metastore | BigQuery | 外部或自行代管的 Metastore | BigQuery |
| 儲存空間 | Cloud Storage | Cloud Storage / Amazon S3 / Azure | BigQuery |
| 儲存空間最佳化 | Google 代管 | 由客戶或第三方管理 | Google 代管 |
| 讀寫 |
開放原始碼引擎 (使用 Iceberg 程式庫時為唯讀,可透過 BigQuery Storage API 讀取/寫入) BigQuery (讀取/寫入) |
開放原始碼引擎 (讀取/寫入) BigQuery (唯讀) |
開放原始碼引擎 (可與 BigQuery Storage API 互通讀取/寫入) BigQuery (讀取/寫入) |
| 進階作業 | 使用 BigQuery Storage Write API (gRPC)、變更資料擷取 (CDC) 和多重陳述式交易,以高輸送量串流資料 | 無 | 使用 BigQuery Storage Write API (gRPC)、變更資料擷取 (CDC) 和多重陳述式交易,以高輸送量串流資料 |
| 用途 | 開放式湖倉,提供高效能企業級儲存空間,適用於進階分析、串流和 AI | 用於 BigQuery 載入作業的暫存資料表、僅供查詢的舊版資料表 | 企業級儲存空間,適用於進階分析、串流和 AI |