Informazioni sulla federazione dei metadati

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 e create_database.
  • Se nessuno dei metastore contiene un database. Il motore OSS risponde con l'equivalente di un errore di tipo "Non trovato".

Passaggi successivi