中繼資料聯盟是一種服務,可讓您透過單一端點存取多個中繼資料來源。
如要設定聯合,您必須建立聯合服務,然後設定中繼資料來源。接著,服務會公開單一 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_ugi
和create_database
。 - 如果沒有任何中繼資料庫包含資料庫。OSS 引擎會傳回類似找不到的錯誤。