Esegui la migrazione dei metadati di Dataproc Metastore al metastore BigQuery
Questo documento spiega come utilizzare lo strumento di migrazione del metastore BigQuery, che consente di spostare i metadati di database, tabelle e partizioni da un servizio Metastore Dataproc al metastore BigQuery.
Prima di iniziare
- Attiva la fatturazione per il tuo progetto Google Cloud . Scopri come controllare se la fatturazione è attivata in un progetto.
Abilita le API BigQuery e Dataflow.
(Facoltativo) Scopri di più su:
- Scopri come funziona il metastore BigQuery e perché dovresti utilizzarlo.
- Scopri come funziona Dataflow e come monitorare un job in corso.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per eseguire lo strumento di migrazione, chiedi all'amministratore di concederti i seguenti ruoli IAM:
-
Crea database, tabelle e partizioni in BigQuery:
Editor dati BigQuery (
roles/bigQuery.dataEditor
) nell'account di servizio Dataflow che esegue il job di migrazione. -
Concedi l'accesso in lettura ai metadati di Dataproc Metastore su un endpoint gRPC:
Ruolo Visualizzatore metadati (
roles/metastore.metadataViewer
) nel account di servizio Dataflow che esegue il job di migrazione.
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Come funziona lo strumento di migrazione
Lo strumento di migrazione avvia un job Dataflow che estrae i metadati da Dataproc Metastore e li importa nel metastore BigQuery.
Non puoi accedere ai dati di Dataproc Metastore direttamente dal metastore BigQuery. Questo processo di migrazione è necessario per eseguire workload o job sui metadati esistenti. Se non utilizzi questo strumento, devi estrarre manualmente i metadati dal metastore Dataproc e importarli nel metastore BigQuery.
Considerazioni
- Lo strumento di migrazione supporta le istanze Dataproc Metastore che utilizzano il protocollo di endpoint gRPC o Thrift.
- Ogni volta che esegui lo strumento di migrazione, il job Dataflow esegue una copia completa dei metadati da Dataproc Metastore al metastore BigQuery.
Limitazioni
Lo strumento di migrazione non esegue la migrazione dei metadati non correlati alle partizioni di database e tabelle. Se lo strumento non riesce a eseguire la migrazione di un database o di una tabella, registra un messaggio nell'istanza di Cloud Logging del progetto contenente il job Dataflow.
Dopo aver registrato l'errore, il job Dataflow continua a elaborare altre tabelle e altri database nella pipeline.
Esegui una migrazione con lo strumento
Per eseguire una migrazione con lo strumento, crea un job di Dataflow con modello flessibile eseguendo il seguente comando gcloud dataflow
flex-template
.
gcloud dataflow flex-template run JOB_NAME" \ --template-file-gcs-location "gs://bigquery-metastore-migration/dpms_to_bqms_migration.json" \ --parameters bigQueryMetastoreProjectId="DESTINATION_BIGQUERY_PROJECT_ID" \ --parameters endpointUri="METASTORE_URI" \ --parameters bigQueryMetastoreDatabaseLocation=DATABASE_LOCATION \ [--network=NETWORK] \ [--subnetwork=SUBNETWORK]
Sostituisci quanto segue:
JOB_NAME
: il nome del job Dataflow per eseguire la migrazione.DESTINATION_BIGQUERY_PROJECT_ID
: l'ID del progetto BigQuery in cui il job Dataflow scrive i dati.METASTORE_URI
: l'URI del servizio Dataproc Metastore.DATABASE_LOCATION
: la posizione in cui viene eseguita la scrittura dei dati nel metastore BigQuery. Ad esempio, se imposti questo valore suUS
, tutte le risorse BigQuery create dallo strumento vengono archiviate in questa posizione.NETWORK
: facoltativo, la rete su cui eseguire il job Dataflow. Obbligatorio solo per i servizi Dataproc Metastore che utilizzano un endpoint Thrift.SUBNETWORK
: facoltativo, la sottorete in cui eseguire il job Dataflow. Obbligatorio solo per i servizi Dataproc Metastore che utilizzano un endpoint Thrift.
Passaggi successivi
- Utilizzare il metastore BigQuery con Dataproc
- Utilizzare il metastore BigQuery con Dataproc Serverless