Lakehouse for Apache Iceberg 支援多種資料表類型,可為Google Cloud上的湖倉提供不同層級的管理、效能和互通性。您可以根據資料來源、寫入引擎需求和控管需求,選擇 Lakehouse 執行階段目錄或 BigQuery 支援的資料表格式。
支援的表格格式
僅支援 Apache Iceberg V2 資料表,不支援 Iceberg V1 資料表。如果您有現有的 Iceberg V1 資料表,必須先將其升級至 V2 (例如執行 ALTER TABLE catalog.schema.table SET TBLPROPERTIES ('format-version'='2'); 或使用類似的引擎作業),才能搭配 Lakehouse for Apache Iceberg 使用。
依目錄和引擎列出的表格格式
請選取下方的目錄或引擎,瞭解其支援的表格格式、中繼存放區設定、儲存空間最佳化功能,以及引擎互通性。
Iceberg REST 目錄
Lakehouse 執行階段目錄會透過 Iceberg REST 目錄端點管理 Apache Iceberg 資料表,提供標準 REST 介面,與 Apache Spark、Apache Flink 和 Trino 等開放原始碼引擎廣泛相容。您可以從開放原始碼引擎建立這些資料表,並儲存在 Cloud Storage 中。如果您希望 ETL 工作流程由開放原始碼引擎管理,且只需要 BigQuery 的讀取權限,這個選項最適合您。
Key features include:
- Metastore:Lakehouse 執行階段目錄。
- 儲存空間:Cloud Storage。
- 儲存空間最佳化:由您或第三方管理。
- 讀取及寫入權限:
- 開放原始碼引擎:讀取和寫入。
- BigQuery:僅限讀取。
- 用途:開放式湖倉,具備高效能企業級儲存空間,適用於進階分析、串流和 AI。
Hive Metastore
Lakehouse 執行階段目錄會透過專為 Apache Spark ExternalCatalog 相容性最佳化的 Apache Hive metastore (HMS) 端點,管理 Apache Hive 資料表,讓您在 Apache Spark、Apache Hive 和 BigQuery 之間順暢共用資料。您可以從開放原始碼引擎建立這些資料表,並將其儲存在 Cloud Storage 中。如果您希望 ETL 工作流程由開放原始碼引擎管理,不需要個別的自架 Hive metastore,且只需要 BigQuery 的讀取權限,這個選項最適合您。
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 資料表:這類資料表由您透過 BigQuery 建立及管理,並儲存在 Cloud Storage 中。開放原始碼引擎可以讀取中繼資料,但 BigQuery 是管理中繼資料並將資料寫入中繼資料的引擎。如果您希望工作流程完全由 BigQuery 管理,建議選取這個選項。
原生資料表:這是指原生 BigQuery 資料表,屬於全代管式,提供最先進的分析和管理功能。這個選項最適合非 Iceberg 工作負載。
外部資料表:這些資料表是 BigQuery 專用的建構,適用於儲存在 Cloud Storage、Amazon S3 或 Azure Blob 儲存體中的資料。資料和中繼資料由您自行管理,BigQuery 只有讀取權限。如果想直接在第三方目錄或儲存空間中管理資料,請選擇這個選項。
比較表格類型
請參閱下表,比較 Lakehouse 執行階段目錄和 BigQuery 的資料表類型。
Lakehouse
| Apache Iceberg (正式發布版) | Apache Hive (預先發布版) | |
|---|---|---|
| Metastore | Lakehouse 執行階段目錄 | Lakehouse 執行階段目錄 |
| 儲存空間 | Cloud Storage | Cloud Storage |
| 儲存空間最佳化 | 由客戶或第三方管理 | 由客戶或第三方管理 |
| 讀取 / 寫入 |
開放原始碼引擎 (讀取/寫入) BigQuery (僅限讀取) |
開放原始碼引擎 (讀取/寫入) BigQuery (僅限讀取) |
| 進階作業 | 無 | 無 |
| 用途 | 開放式 lakehouse | 將現有的 Spark 和 Hive 工作負載遷移至全代管無伺服器 metastore |
BigQuery
| BigQuery 管理的 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、變更資料擷取 (CDC) 和多重陳述式交易,進行高輸送量串流 | 無 | 使用 BigQuery Storage Write API、變更資料擷取 (CDC) 和多重陳述式交易,進行高輸送量串流 |
| 用途 | 開放式湖倉,具備高效能企業級儲存空間,適用於進階分析、串流和 AI | 用於 BigQuery 載入作業的暫存資料表、僅供查詢的舊版資料表 | 企業級儲存空間,適用於進階分析、串流和 AI |
後續步驟
瞭解如何搭配 BigQuery 使用目錄同盟。