關於中繼資料聯盟

中繼資料聯盟是一種服務,可讓您透過單一端點存取多個中繼資料來源。

如要設定聯合,您必須建立聯合服務,然後設定中繼資料來源。接著,服務會公開單一 gRPC 端點,供您存取所有中繼資料。

舉例來說,您可以使用聯邦功能建立 Dataproc 叢集,透過單一端點公開多個 Dataproc Metastore 服務。之後,您可以透過 Spark 或 Hive 等開放原始碼軟體 (OSS) 引擎執行大數據工作,以便跨多個中繼資料庫存取中繼資料。

聯合功能的運作方式

在 Spark 或 Hive 上執行的開放原始碼大數據工作負載會傳送要求給 Hive Metastore API,以便在執行階段擷取中繼資料。

  • Hive 中繼存放區介面支援讀取和寫入方法。此聯合服務會公開 Hive Metastore 介面的 gRPC 版本。
  • 在執行階段,當聯合服務收到要求時,會檢查來源排序,以便擷取適當的中繼資料。

中繼資料來源

建立聯播服務時,您必須新增中繼資料來源。您可以使用下列來源做為後端元資料儲存庫:

  • Dataproc Metastore 執行個體。
  • 包含一或多個 BigQuery 資料集的專案。
  • Dataplex 通用目錄湖泊 (預先發布版)。

來源限制

以下節點出使用各種中繼資料來源時,必須遵守的限制。

所有來源

以下限制適用於所有中繼資料來源:

  • 聯播服務不含自己的資料。而是只提供其中一個中繼資料來源的中繼資料。
  • 聯合服務無法成為其他聯合服務的中繼資料來源。

Dataproc Metastore

如果您使用 Dataproc Metastore 做為來源,則適用下列限制:

  • 聯邦服務只能透過 gRPC 端點使用。如要使用 Dataproc Metastore 進行聯邦,請使用 gRPC 端點建立中繼存放區。
  • 聯邦服務可連結至單一區域或多區域的 Dataproc Metastore 服務。

    如果多區域中繼資料庫位於與聯邦服務不同的專案中,請將 metastore.services.get 權限授予聯邦專案的 Dataproc Metastore 服務帳戶,以便存取在多區域中設定的 Dataproc Metastore 執行個體。

BigQuery

如果您使用含有 BigQuery 資料集的專案做為來源,則必須符合下列條件:

  • 授予正確的 Identity and Access Management 角色,以便存取包含 BigQuery 資料集的專案。
  • 請至少新增一個 Dataproc Metastore 服務做為來源,並搭配使用 BigQuery 資料集。

Dataplex 通用目錄湖泊

  • 授予含有 dataplex.lakes.get 權限的 IAM 角色。
  • 除了 Dataplex 通用目錄湖泊外,至少新增一個 Dataproc Metastore 服務做為來源。

來源排序

您的聯合服務會依優先順序處理中繼資料要求。這個概念稱為來源排序。在執行階段,當聯合服務收到要求時,會檢查來源順序,並完成下列其中一個動作:

  • 如果要求包含資料庫名稱。要求會轉送至包含資料庫名稱的後端中繼存放區。如果有多個中繼存放區包含相同的資料庫名稱,系統會將要求導向排名最低的中繼存放區。
  • 如果要求會建立或捨棄資料庫。要求會轉送至排名最低的元資料儲存庫。
  • 如果要求不包含資料庫名稱,且不會建立或刪除資料庫。要求會轉送至排名最低的 Dataproc Metastore 執行個體。以下是一些不指定資料庫的 Hive Metastore 要求範例:set_ugicreate_database
  • 如果沒有任何中繼資料庫包含資料庫。OSS 引擎會傳回類似找不到的錯誤。

後續步驟