BigLake Metastore 簡介
BigLake 中繼存放區是統一的代管無伺服器中繼存放區,可供擴充,並將儲存在 Cloud Storage 或 BigQuery 中的 Lakehouse 資料連結至多個執行階段,包括開放原始碼執行階段 (例如 Apache Spark 和 Apache Flink) 和 BigQuery。
BigLake Metastore 提供單一可靠來源,可管理多個引擎的中繼資料。透過 BigLake Iceberg 資料表和標準 BigQuery 資料表,這個平台支援 Apache Iceberg 等主要開放原始碼資料表格式。此外,BigLake Metastore 支援開放式 API 和 Iceberg REST 目錄 (預先發布版)。
請參閱下表,判斷 BigLake 中繼資料存放區的入門途徑:
用途 | 建議 |
---|---|
開放原始碼引擎需要存取 Cloud Storage 中的資料。 | 探索 Iceberg REST 目錄 (預覽版)。 |
開放原始碼引擎必須與 BigQuery 互通。 | 使用 BigQuery 自訂 Iceberg 目錄外掛程式,探索 BigLake 中繼存放區與開放原始碼引擎 (例如 Spark) 的整合。 |
優點
BigLake Metastore 在資料管理和分析方面有幾項優點:
- 無伺服器架構。BigLake metastore 提供無伺服器架構,因此您不必管理伺服器或叢集。這有助於減少作業負擔、簡化部署作業,並根據需求自動調度資源。
- 引擎互通性。BigLake metastore 可讓您直接透過開放原始碼引擎 (例如 Spark 和 Flink) 和 BigQuery 存取資料表,不需額外設定,即可查詢開放格式的資料表。舉例來說,您可以在 Spark 中建立資料表,然後直接在 BigQuery 中查詢。這有助於簡化分析工作流程,並減少複雜的資料移動或 ETL 程序。
統一的使用者體驗。BigLake metastore 提供統一的工作流程,適用於 BigQuery 和開放原始碼引擎。這項統一的體驗代表您可以透過 Iceberg REST 目錄 (預先發布版) 設定 Spark 環境 (自架或由 Dataproc 代管),也可以在 BigQuery Studio 筆記本中設定 Spark 環境,以執行相同操作。
舉例來說,您可以在 BigQuery Studio 中,使用 BigQuery Studio 筆記本在 Spark 中建立資料表。
然後,您可以在Google Cloud 控制台中查詢相同的 Spark 資料表。
BigLake Metastore 中的資料表格式
BigLake 支援多種資料表類型。請參閱下表,選取最符合您用途的格式:
外部資料表 | BigLake Iceberg 資料表 | BigQuery 中的 BigLake Iceberg 資料表 | 標準 BigQuery 資料表 | |
---|---|---|---|---|
Metastore | 外部或自行代管的 Metastore | BigLake Metastore | BigLake Metastore | BigLake Metastore |
儲存空間 | Cloud Storage / Amazon S3 / Azure | Cloud Storage | Cloud Storage | BigQuery |
管理 | 客戶或第三方 | Google (高度管理型體驗) | Google (管理體驗最完善) | |
讀取 / 寫入 |
開放原始碼引擎 (讀取/寫入) BigQuery (僅限讀取) |
開放原始碼引擎 (讀取/寫入) BigQuery (僅限讀取) |
開放原始碼引擎 (僅能使用 Iceberg 程式庫讀取,可透過 BigQuery Storage API 讀取/寫入) BigQuery (讀取/寫入) |
開放原始碼引擎 (可與 BigQuery Storage API 互通讀取/寫入) BigQuery (讀取/寫入) |
用途 | 遷移、BigQuery 載入的暫存資料表、 自我管理 | 開放式 lakehouse | 開放式 lakehouse,提供企業級儲存空間,適用於分析、串流和 AI | 企業級儲存空間,適用於分析、串流和 AI |
與 BigLake Metastore (傳統版) 的差異
建議您在 Google Cloud上使用 BigLake metastore。
BigLake Metastore 與 BigLake Metastore (傳統版) 的主要差異包括:
- BigLake metastore (傳統版) 是獨立的 metastore 服務,與 BigQuery 不同,且僅支援 Iceberg 資料表。這個 API 採用不同的三部分資源模型。BigQuery 不會自動探索 BigLake Metastore (傳統版) 資料表。
- BigLake metastore 中的資料表可透過多個開放原始碼引擎和 BigQuery 存取。BigLake metastore 支援與 Spark 直接整合,有助於減少儲存中繼資料和執行工作時的冗餘。BigLake Metastore 也支援 Iceberg REST 目錄 (搶先版),可連結多個執行階段的 lakehouse 資料。
限制
BigLake 中繼存放區的資料表有以下限制:
- 您無法使用 BigQuery 引擎,透過 DDL 或 DML 陳述式建立或修改 BigLake 中繼存放區資料表。您可以使用 BigQuery API (透過 bq 指令列工具或用戶端程式庫) 修改 BigLake 中繼存放區資料表,但這麼做可能會導致變更與外部引擎不相容。
- BigLake Metastore 資料表不支援重新命名作業或
ALTER TABLE ... RENAME TO
Spark SQL 陳述式。 - BigLake Metastore 資料表的配額和限制與標準資料表相同。
- 與查詢標準 BigQuery 資料表中的資料相比,透過 BigQuery 引擎查詢 BigLake 中繼存放區資料表的效能可能會較慢。一般來說,BigLake Metastore 資料表的查詢效能應與直接從 Cloud Storage 讀取資料的效能相同。
- 如果查詢使用 BigLake 中繼資料存放區資料表,即使傳回資料列,模擬執行查詢時,也可能會回報資料量下限為 0 個位元組。這是因為實際查詢完成前,系統無法判斷從資料表處理的資料量。執行查詢時,系統會收取處理這項資料的費用。
- 您無法在萬用字元資料表查詢中參照 BigLake Metastore 資料表。
- 您無法使用
tabledata.list
方法從 BigLake metastore 資料表擷取資料。您可以改為將查詢結果儲存到目標資料表,然後對該資料表使用tabledata.list
方法。 - BigLake Metastore 資料表不支援叢集。
- BigLake Metastore 資料表不支援彈性資料欄名稱。
- 系統不支援顯示 BigLake Metastore 資料表的資料表儲存空間統計資料。
後續步驟
- 將 Dataproc Metastore 資料遷移至 BigLake Metastore
- 將 BigLake 中繼存放區與 Dataproc 搭配使用
- 將 BigLake Metastore 與 Dataproc Serverless 搭配使用