La federazione dei metadati è un servizio che consente di accedere a più origini di metadati da un unico endpoint.
Per configurare la federazione, crea un servizio di federazione e poi configura le origini dei metadati. Successivamente, il servizio espone un singolo endpoint gRPC che puoi utilizzare per accedere a tutti i tuoi metadati.
Ad esempio, utilizzando la federazione, puoi creare un cluster Dataproc che espone più servizi Dataproc Metastore tramite un unico endpoint. Successivamente, puoi eseguire job di big data tramite motori software open source (OSS), come Spark o Hive, per accedere ai metadati in più metastore.
Come funziona la federazione
I carichi di lavoro di big data OSS eseguiti su Spark o Hive inviano richieste all'API Hive Metastore per recuperare i metadati in fase di runtime.
- L'interfaccia Hive Metastore supporta i metodi di lettura e scrittura. Il servizio di federazione espone una versione gRPC dell'interfaccia Hive Metastore.
- In fase di runtime, quando il servizio di federazione riceve una richiesta, controlla l'ordinamento delle origini per recuperare i metadati appropriati.
Origini dei metadati
Quando crei un servizio federato, devi aggiungere un'origine metadati. Puoi utilizzare le seguenti origini come metastore di backend:
- Un'istanza Dataproc Metastore.
- Un progetto contenente uno o più set di dati BigQuery.
- Un lake Dataplex Universal Catalog (anteprima).
Limitazioni delle fonti
La sezione seguente elenca le limitazioni da rispettare quando utilizzi varie origini di metadati.
Tutte le fonti
Si applicano le seguenti limitazioni a tutte le origini dei metadati:
- Un servizio federativo non contiene i propri dati. Il servizio di federazione fornisce solo i metadati di una delle sue origini.
- Un servizio di federazione non può essere un'origine di metadati in un altro servizio di federazione.
Dataproc Metastore
Se utilizzi Dataproc Metastore come origine, si applicano le seguenti limitazioni:
- I servizi di federazione sono disponibili solo tramite endpoint gRPC. Per utilizzare un Dataproc Metastore con la federazione, crea il metastore con un endpoint gRPC.
I servizi di federazione possono essere collegati a servizi Dataproc Metastore a una o più regioni.
Se il metastore multiregionale si trova in un progetto diverso dal servizio di federazione, concedi all'account di servizio Dataproc Metastore del progetto di federazione l'autorizzazione
metastore.services.get
sulle istanze Dataproc Metastore configurate nella multiregione.
BigQuery
Se utilizzi un progetto che contiene set di dati BigQuery come origine, devi soddisfare le seguenti condizioni:
- Concedi i ruoli Identity and Access Management corretti per accedere al progetto contenente i set di dati BigQuery.
- Aggiungi almeno un servizio Dataproc Metastore come origine, insieme ai tuoi set di dati BigQuery.
Lake Dataplex Universal Catalog
- Concedi un ruolo IAM che contenga l'autorizzazione
dataplex.lakes.get
. - Aggiungi almeno un servizio Dataproc Metastore come origine, insieme al tuo lake Dataplex Universal Catalog.
Ordinamento delle fonti
Il servizio di federazione elabora le richieste di metadati in ordine di priorità. Questo concetto è noto come ordinamento delle fonti. In fase di runtime, quando il servizio di federazione riceve una richiesta, controlla l'ordinamento delle origini e completa una delle seguenti azioni:
- Se la richiesta contiene un nome di database. La richiesta viene instradata al metastore di backend che contiene il nome del database. Se più di un metastore contiene lo stesso nome di database, la richiesta viene indirizzata al metastore con il ranking più basso.
- Se la richiesta crea o elimina un database. La richiesta viene indirizzata al metastore con il ranking più basso.
- Se la richiesta non contiene un nome di database e non crea o elimina un database. La richiesta viene indirizzata all'istanza
Dataproc Metastore con il ranking più basso. Alcuni
esempi di richieste Hive Metastore che non specificano un database sono
set_ugi
ecreate_database
. - Se nessuno dei metastore contiene un database. Il motore OSS risponde con l'equivalente di un errore di tipo "Non trovato".