Crea un servizio di federazione dei metadati

Questa pagina spiega come creare un servizio di federazione dei metadati per Dataproc Metastore. Un servizio di federazione ti consente di accedere ai metadati archiviati in più origini da un unico endpoint gRPC.

Per ulteriori informazioni sul funzionamento della federazione e sui suoi limiti, vedi Informazioni sulla federazione dei metadati.

Prima di iniziare

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per creare un servizio di federazione e collegare un cluster Dataproc, seguendo il principio del privilegio minimo, chiedi all'amministratore di concederti i seguenti ruoli IAM:

  • Per accedere al servizio di federazione: Accessore federazione (roles/metastore.federationAccessor) sull'account utente o sul account di servizio
  • Per concedere il controllo completo di tutte le risorse Dataproc Metastore: Editor Dataproc Metastore (roles/metastore.editor) sull'account utente o sul account di servizio
  • Per completare le operazioni sui metadati in un Dataproc Metastore configurato con un servizio di federazione: Proprietario del metastore (metastore.metadataEditor) sull'account utente o sul account di servizio
  • Per creare un cluster Dataproc: Worker Dataproc (roles/dataproc.worker) sull'account di servizio VM Dataproc
  • (Facoltativo) Per accedere ai set di dati BigQuery: Utilizza un ruolo predefinito BigQuery appropriato per il tuo caso d'uso sull'account utente o sul account di servizio
  • (Facoltativo) Per accedere ai lake di Dataplex Universal Catalog (anteprima): Utilizza un ruolo predefinito di Dataplex Universal Catalog appropriato per il tuo caso d'uso sull'account utente o sul account di servizio

Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Questi ruoli predefiniti contengono le autorizzazioni necessarie per creare un servizio di federazione e collegare un cluster Dataproc, seguendo il principio del privilegio minimo. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per creare un servizio di federazione e collegare un cluster Dataproc, seguendo il principio del privilegio minimo, sono necessarie le seguenti autorizzazioni:

  • Per creare un Dataproc Metastore: metastore.services.create sull'account utente o sul account di servizio
  • Per elencare, ottenere, creare, aggiornare ed eliminare un servizio di federazione: metastore.federations.create, metastore.federations.update, metastore.federations.delete, metastore.federations.get metastore.federations.list sull'account utente o sull'account di servizio
  • Per completare le operazioni sui metadati in un Dataproc Metastore: metastore.services.get, metastore.services.use, metastore.databases.create, metastore.databases.update, metastore.databases.deletemetastore.databases.get,metastore.databases.list, metastore.databases.getIamPolicy, metastore.tables.create, metastore.tables.update, metastore.tables.delete, metastore.tables.get, metastore.tables.list, metastore.tables.getIamPolicy nell'account utente o nel account di servizio
  • (Facoltativo) Per aggiungere un servizio multiregionale alla federazione: metastore.services.get sugli account Dataproc Metastore
  • (Facoltativo) Per accedere ai set di dati BigQuery: For more information, see BigQuery permissions sull'account utente o sul account di servizio
  • (Facoltativo) Per accedere ai datalake Dataplex Universal Catalog (anteprima): For more information, see Dataplex Universal Catalog permissions sull'account utente o sul account di servizio

Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

Per saperne di più su ruoli e autorizzazioni specifici di Dataproc Metastore, consulta Gestire l'accesso a Dataproc Metastore con Identity and Access Management.

Crea un servizio di federazione

Le seguenti istruzioni mostrano come creare un servizio di federazione e collegarlo a un'origine. Dopo aver completato questi passaggi, puoi collegare il tuo servizio di federazione a un cluster Dataproc.

Per saperne di più sulle origini federate e sulle loro limitazioni, consulta Origini metadati.

Console

  1. Nella console Google Cloud , apri la pagina Dataproc Metastore:

    Apri Dataproc Metastore

  2. Nel menu di navigazione di Dataproc, fai clic su Federazione.

    Si apre la pagina dei servizi metastore Federated.

  3. Nella barra dei menu del metastore Federato, fai clic su Crea.

    Viene visualizzata la pagina Crea servizio di federazione.

  4. Nel campo Nome federazione, inserisci un nome univoco per il servizio.

    Per saperne di più, consulta le convenzioni per la denominazione delle risorse.

  5. Seleziona la Località dei dati.

    Assicurati di creare il servizio di federazione nelle stesse regioni delle tue origini Dataproc Metastore.

  6. Seleziona la versione di Hive.

  7. Per aggiungere un'origine per il servizio di federazione, fai clic su Aggiungi un'origine.

    Puoi aggiungere una o più fonti. La prima origine che aggiungi a questo elenco viene impostata automaticamente come metastore principale. Puoi aggiornare l'ordinamento delle fonti dopo la creazione.

    1. Per Tipo di origine, seleziona l'origine della federazione.

      Puoi scegliere un'istanza Dataproc Metastore, un progetto che contiene uno o più set di dati BigQuery o un lake del Catalogo universale Dataplex (anteprima).

    2. Nel campo Fonte, inserisci le seguenti informazioni:

      • Per un servizio Dataproc Metastore.

        1. Nel campo Progetto selezionato, fai clic su Sfoglia e seleziona il progetto che contiene Dataproc Metastore che vuoi utilizzare come origine.

          Assicurati che le origini Dataproc Metastore utilizzino una versione di Hive compatibile con il servizio di federazione. Il metastore principale deve utilizzare una versione di Hive maggiore o uguale a quella del servizio di federazione.

        2. Nel menu a discesa Servizio Metastore, seleziona Dataproc Metastore che vuoi utilizzare come origine.

        3. (Facoltativo) Seleziona la casella di controllo Mostra servizi Metastore esterni alla mia regione. Elenca il servizio Dataproc Metastore di altre regioni, incluse le multiregioni.

          Per attivare la federazione su un servizio Dataproc Metastore multiregionale, seleziona un servizio Dataproc Metastore multiregionale da questo elenco.

      • Per BigQuery. Nel campo Progetto selezionato, fai clic su Sfoglia e seleziona l'ID progetto del progetto che contiene il set di dati BigQuery.

      • Per il Catalogo universale Dataplex (anteprima). Nel campo Progetto selezionato, fai clic su Sfoglia e seleziona l'ID progetto del progetto che contiene il lake Dataplex Universal Catalog.

    3. Fai clic su Fine.

  8. Per creare e avviare il servizio, fai clic su Invia.

    Ora puoi collegare il tuo servizio di federazione a un cluster Dataproc.

Interfaccia a riga di comando gcloud

Per creare una federazione con Dataproc Metastore, esegui questo comando.

gcloud metastore federations create FEDERATION \
  --location LOCATION \
  --backends RANK=BACKEND_METASTORE \
  --hive-metastore-version HIVE_VERSION

Sostituisci quanto segue:

  • FEDERATION: il nome del servizio di federazione Dataproc Metastore.
  • LOCATION: La Google Cloud regione in cui creare la federazione.
  • RANK: Un numero di ranking per ciascuno dei tuoi metastore di backend utilizzato per risolvere i conflitti tra nomi di database. Il servizio di federazione esegue query sui numeri con ranking più basso. Ad esempio, viene eseguita una query su un metastore di backend con un rango di 1 prima di un metastore con un rango di 2. Questo valore deve essere un numero intero. Ad esempio, --backends 1=first_backend_metastore, 2=second_backend_metastore.
  • BACKEND_METASTORE: La risorsa relativa di ogni metastore di backend nel seguente formato: METASTORE_TYPE:METASTORE_NAME. Per i servizi Dataproc Metastore, utilizza dpms:SERVICE_ID. Il SERVICE_ID si trova nella seguente posizione: projects/<project>/locations/<location>/services/<service-id>.
  • HIVE_VERSION: la versione di Hive Metastore (3.1.2 o 2.3.6).

Aggiorna un servizio di federazione

Le seguenti istruzioni mostrano come aggiornare un servizio di federazione. Puoi completare le seguenti attività:

  • Aggiungi un'origine a un servizio federato.
  • Rimuovere un'origine da un servizio di federazione.
  • Modificare l'ordine delle origini contenute in un servizio federato.
  • Elimina definitivamente un servizio di federazione. Dopo aver eliminato un servizio, tutte le sue risorse vengono rilasciate.

Console

https://cloud.google.com/dataproc-metastore/docs/create-federation

  1. Nella console Google Cloud , apri la pagina Dataproc Metastore:

    Apri Dataproc Metastore

  2. Nel menu di navigazione di Dataproc, fai clic su Federazione.

    Si apre la pagina dei servizi metastore Federated.

  3. Nella pagina dei servizi metastore federati, fai clic sul nome del servizio che vuoi aggiornare.

    Viene visualizzata la pagina Dettagli del servizio.

  4. Nella barra dei menu, fai clic su Modifica.

    Viene visualizzata la pagina Modifica servizio.

  5. Scegli i valori da aggiornare.

  6. Per aggiornare il servizio, fai clic su Invia.

Interfaccia a riga di comando gcloud

Per aggiornare una federazione con Dataproc Metastore, esegui il comando seguente.

gcloud metastore federations update FEDERATATON \
  --location=LOCATION \
  --backends RANK1=BACKEND_METASTORE1,RANK2=BACKEND_METASTORE2
  • FEDERATION: il nome del servizio di federazione Dataproc Metastore.
  • LOCATION: La Google Cloud regione in cui creare il federato.
  • RANK: Un numero di ranking per ciascuno dei tuoi metastore di backend utilizzato per risolvere i conflitti tra nomi di database. Il servizio di federazione esegue query sui numeri con ranking più basso. Ad esempio, viene eseguita una query su un metastore di backend con un rango di 1 prima di un metastore con un rango di 2. Questo valore deve essere un numero intero. Ad esempio, --backends 2=first_backend_metastore, 2=second_backend_metastore.
  • BACKEND_METASTORE: La risorsa relativa di ogni metastore di backend nel seguente formato: METASTORE_TYPE:METASTORE_NAME. Per i servizi Dataproc Metastore, utilizza dpms:SERVICE_ID. Il SERVICE_ID si trova nella seguente posizione: projects/<project>/locations/<location>/services/<service-id>.
  • HIVE_VERSION: la versione di Hive Metastore (3.1.2 o 2.3.6).

Collega un cluster Dataproc a un servizio di federazione

Le seguenti istruzioni mostrano come creare un cluster Dataproc e collegare un endpoint del servizio di federazione come metastore.

Prima di iniziare a seguire queste istruzioni, completa tutti i passaggi elencati in Prima di iniziare e crea un servizio di federazione.

Interfaccia a riga di comando gcloud

Per creare un cluster Dataproc e collegare un endpoint federato, esegui il seguente comando gcloud Dataproc clusters create.

 gcloud dataproc clusters create CLUSTER_NAME \
    --region=LOCATION \
    --project=PROJECT_ID \
    --scopes=https://www.googleapis.com/auth/cloud-platform \
    --image-version=IMAGE_VERSION \
    --service-account=SERVICE_ACCOUNT \
    --optional-components=DOCKER \
    --initialization-actions=gs://metastore-init-actions/metastore-grpc-proxy/metastore-grpc-proxy.sh \
    --metadata="proxy-uri=FEDERATION_URI,hive-version=FEDERATION_VERSION" \
    --properties="hive:hive.metastore.uris=thrift://localhost:9083,hive:hive.metastore.warehouse.dir=WAREHOUSE_DIR"

Sostituisci quanto segue:

  • CLUSTER_NAME: il nome del nuovo cluster Dataproc.
  • PROJECT_ID: l' Google Cloud ID progetto del progetto in cui stai creando il cluster Dataproc.
  • LOCATION: la regione del tuo cluster Dataproc.
  • IMAGE_VERSION: la versione dell'immagine Dataproc che vuoi utilizzare.

    Assicurati che l'immagine Dataproc che utilizzi in questo comando sia compatibile con la versione di Hive utilizzata con il servizio di federazione. Per saperne di più, consulta l'elenco delle versioni immagine di Dataproc.

  • SERVICE_ACCOUNT (facoltativo) L'account di servizio che utilizzi per creare il cluster Dataproc. Se non viene specificato, il cluster utilizza il service account Compute Engine predefinito.

  • FEDERATION_URI: l'URI dell'endpoint del tuo servizio di federazione.

  • FEDERATION_VERSION: la versione di Hive utilizzata dal tuo servizio di federazione.

  • WAREHOUSE_DIR: la directory del warehouse del tuo Dataproc Metastore principale.

Passaggi successivi