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