Utilizza la migrazione gestita per eseguire la migrazione di un metastore MySQL autogestito su Dataproc Metastore

La migrazione gestita è una funzionalità automatizzata che consente di eseguire la migrazione dei dati da un metastore Hive autogestito a un servizio Dataproc Metastore, senza tempi di inattività considerevoli (altrimenti noto come giorno di segnalazione).

Come funziona la migrazione gestita

Per completare una migrazione gestita, il servizio deve essere eseguito attraverso due processi di migrazione: avvio della migrazione e completa migrazione. Puoi annullare una migrazione in qualsiasi momento tramite la procedura di annullamento della migrazione. Puoi eseguire anche una serie di comandi operativi, che non sono necessari per completare una migrazione. Ad esempio, elenca l'elenco delle migrazioni o elimina la migrazione.

Man mano che il servizio segue questo processo, passa anche da stati di migrazione a fasi diversi. Questi stati e fasi rappresentano i processi che si svolgono in background. Ad esempio, lo stato MIGRATING indica che il servizio sta trasferendo attivamente i dati dal database Cloud SQL a Dataproc Metastore.

La migrazione gestita richiede tre subnet per eseguire una migrazione: proxy_subnet, nat_subnet e reverse_proxy_subnet. Per evitare problemi di latenza, configura quanto segue:

  • proxy_subnet e nat_subnet nella stessa regione di Cloud SQL.
  • reverse_proxy_subnet si trova nella stessa regione del servizio Dataproc Metastore.

Per ulteriori informazioni sui diversi tipi di subnet, consulta Scopi delle subnet.

Flusso di migrazione gestito

Avvia migrazione

  1. Esegui un processo di avvio della migrazione su un servizio Dataproc Metastore.
  2. Il servizio Dataproc Metastore si connette al database Cloud SQL, che funge da database di backend per il tuo metastore Hive autogestito. In questo passaggio, il database Cloud SQL è ancora la fonte attendibile per i dati.

  3. Dataproc Metastore esegue un flusso Change Data Capture (CDC) che copia i dati dal database Cloud SQL al database Dataproc Metastore (Cloud Spanner).

    Una volta completato l'avvio della migrazione, puoi iniziare a eseguire il routing dei carichi di lavoro a Dataproc Metastore. A questo punto, Cloud SQL è ancora la fonte attendibile per i dati.

Completa migrazione

Dopo aver terminato lo spostamento dei carichi di lavoro in Dataproc Metastore, puoi completare la migrazione. Quando viene chiamato un processo di migrazione completa, si verifica quanto segue:

  • Dataproc Metastore passa alla modalità di sola lettura fino al termine del processo di migrazione.
  • Il flusso CDC trasferisce tutti i dati in corso su Dataproc Metastore.
  • Dataproc Metastore si connette a Spanner e si disconnette da Cloud SQL. Dataproc Metastore funge ora da fonte attendibile per i dati.

Prima di iniziare

Per avviare una migrazione, devi configurare o disporre dell'accesso ai seguenti servizi:

  • Un Dataproc Metastore configurato con il tipo di database Spanner.
  • Un'istanza di database Cloud SQL per MySQL configurata con IP privato.

    • La rete VPC dell'istanza Cloud SQL contiene le subnet richieste.

    • Cloud SQL utilizza un database con uno schema compatibile con la versione del metastore Hive in esecuzione sul servizio Dataproc Metastore in cui copia i dati.

    • Configura Cloud SQL da utilizzare come origine Datastream. Crea un nome utente e una password per connettere Datastream a Cloud SQL.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per creare Dataproc Metastore e avviare una migrazione gestita, chiedi all'amministratore di concederti i seguenti ruoli IAM:

  • Per concedere l'accesso completo a tutte le risorse Dataproc Metastore, inclusa l'impostazione delle autorizzazioni IAM: Dataproc Metastore Admin (roles/metastore.admin) sull'account utente o sull'account di servizio Dataproc Metastore
  • Per concedere il controllo completo delle risorse Dataproc Metastore: Dataproc Metastore Editor (roles/metastore.editor) sull'account utente o sull'account di servizio Dataproc Metastore
  • Per creare una migrazione gestita: Amministratore migrazione (roles/metastore.migrationAdmin) su Dataproc Metastore [agente di servizio][7]
  • Per utilizzare l'oggetto Cloud Storage con Datastream:

Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.

Potresti anche essere in grado di ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Configura una migrazione gestita

Puoi configurare una migrazione utilizzando le API Dataproc Metastore.

Un servizio Dataproc Metastore può eseguire una sola migrazione alla volta.

Avvia migrazione

All'avvio di una migrazione, Dataproc Metastore si connette a Cloud SQL e utilizza Cloud SQL come database di backend. Durante questo processo, Dataproc Metastore esegue una pipeline che copia i dati da Cloud SQL al proprio database (Spanner).

Dataproc Metastore continua a utilizzare Cloud SQL come backend e risponde ai dati fino a quando non viene chiamato il processo di migrazione completo.

Considerazioni

  • Una migrazione rimane attiva finché non viene completato il processo di migrazione. Non esiste una scadenza per completare la migrazione, ad esempio può richiedere 1 giorno, 30 giorni o un anno.

  • I backup pianificati non sono limitati durante una migrazione. Tuttavia, il backup potrebbe essere incompleto. Per evitare problemi, disabilita i backup pianificati mentre la migrazione è in corso.

L'avvio di una migrazione attiva le seguenti modifiche dello stato:

  • Dataproc Metastore passa allo stato MIGRATING.
  • Lo stato di esecuzione della migrazione passa a RUNNING.
  • La fase di esecuzione della migrazione passa a REPLICATION.

Console

Inizia

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

    Apri Dataproc Metastore

  2. Nella pagina Dataproc Metastore, fai clic sul nome del servizio di cui vuoi eseguire la migrazione.

    Viene visualizzata la pagina Dettagli servizio.

  3. Nella parte superiore della pagina, fai clic su Esegui la migrazione dei dati.

    La pagina Crea migrazione si apre nella scheda Connettività e mostra le impostazioni di configurazione della configurazione del database Cloud SQL per Dataproc Metastore.

Configurazione del database Cloud SQL per DPMS

  1. In Nome connessione istanza, inserisci il nome di connessione istanza del database Cloud SQL nel seguente formato: PROJECT_ID/LOCATION/CLOUDSQL_INSTANCE_ID.

  2. Nel campo Indirizzo IP, inserisci l'indirizzo IP richiesto per la connessione all'istanza Cloud SQL.

  3. Nel campo Porta, inserisci 3306.

  4. Nel campo Nome del database Hive, inserisci il nome del database che viene utilizzato come backend del metastore Hive autogestito.

  5. Nel campo Nome utente, inserisci il nome utente che utilizzi per connettere Cloud SQL al metastore Hive.

  6. Nel campo Password, inserisci la password che utilizzi per connettere Cloud SQL al metastore Hive.

Servizio proxy SOCKS5

  1. Nel campo Subnet proxy, inserisci la subnet utilizzata nella rete VPC di Cloud SQL. Questa subnet viene utilizzata per il deployment del proxy SOCKS5 intermedio.

  2. Nel campo Subnet Nat, inserisci la subnet Private Service Connect che fornisce una connessione dal servizio Dataproc Metastore per l'accesso al proxy intermedio. La dimensione della subnet deve avere una lunghezza del prefisso di almeno /29.

  3. Fai clic su Continua.

    La scheda Change Data Capture (CDC) si apre e mostra le impostazioni di configurazione della configurazione del database Cloud SQL per Datastream.

Configurazione del database Cloud SQL per lo stream di dati

  1. Nel campo Nome utente, inserisci il nome utente che utilizzi per accedere alla CDC di Cloud SQL utilizzata da Datastream.

  2. Nel campo Password, inserisci la password che utilizzi per accedere alla CDC di Cloud SQL utilizzata da Datastream.

  3. Nel campo Rete VPC, inserisci la rete nella stessa rete VPC dell'istanza Cloud SQL utilizzata da Datastream per stabilire una connessione privata alla CDC.

  4. Nel campo Intervallo IP subnet, inserisci un intervallo IP di subnet di almeno /29. Datastream usa questo IP per stabilire il peering alla rete VPC.

  5. Nel campo Subnet proxy inverso, inserisci la subnet creata nella stessa rete VPC di Cloud SQL. Datastream utilizza questa subnet. La subnet viene utilizzata per ospitare una connessione proxy inverso per la CDC di Datastream. La subnet deve essere configurata nella stessa regione del servizio Dataproc Metastore.

Configurazione GCS

  1. Per ID bucket, seleziona il percorso Cloud Storage in cui archiviare i dati CDC durante la migrazione.

  2. Nel campo Percorso radice, inserisci il percorso principale all'interno del bucket Cloud Storage. I dati degli eventi di flusso vengono scritti in questo percorso.

  3. Fai clic su Crea.

REST

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type:application/json" \
  -X POST -d \
  '{
    "migration_execution": {
      "cloud_sql_migration_config": {
        "cloud_sql_connection_config": {
          "instance_connection_name": INSTANCE_CONNECTION_NAME,
          "hive_database_name": "HIVE_DATABASE_NAME",
          "ip_address": "IP_ADDRESS",
          "port": 3306,
          "username": "CONNECTION_USERNAME",
          "password": "CONNECTION_PASSWORD",
          "proxy_subnet": "PROXY_SUBNET",
          "nat_subnet": "NAT_SUBNET"
        },
        "cdc_config": {
          "username": "CDC_USENAME",
          "password": "CDC_PASSWORD",
          "vpc_network": "VPC_NETWORK",
          "subnet_ip_range": "SUBNET_IP_RANGE",
          "reverse_proxy_subnet": "REVERSE_PROXY_SUBNET_ID",
          "bucket": "BUCKET_NAME",
          "root_path": "ROOT_PATH",
        }
      }
    }
}' \
  https://metastore.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/services/SERVICE:startMigration

Sostituisci quanto segue:

  • SERVICE: il nome o l'ID del tuo servizio Dataproc Metastore.
  • PROJECT_ID: l'ID del progetto Google Cloud in cui risiede il tuo servizio Dataproc Metastore.
  • LOCATION: la regione Google Cloud in cui risiede il servizio Dataproc Metastore.

Configurazione della migrazione Cloud SQL

  • INSTANCE_CONNECTION_NAME: nome della connessione all'istanza per il database Cloud SQL, nel seguente formato: PROJECT_ID/LOCATION/CLOUDSQL_INSTANCE_ID.
  • HIVE_DATABASE_NAME: il nome del database Hive autogestito connesso a Cloud SQL.
  • IP_ADDRESS: l'indirizzo IP necessario per connettersi all'istanza Cloud SQL.
  • CONNECTION_USERNAME: il nome utente che utilizzi per connettere Cloud SQL al metastore Hive.
  • CONNECTION_PASSWORD la password che utilizzi per connettere Cloud SQL al metastore Hive
  • PROXY_SUBNET: la subnet utilizzata nella rete VPC di Cloud SQL. Questa subnet ospita un proxy intermedio per fornire connettività attraverso reti transitive.
  • NAT_SUBNET: una subnet Private Service Connect che fornisce una connessione dal servizio Dataproc Metastore per l'accesso al proxy intermedio. La dimensione della subnet deve avere una lunghezza del prefisso almeno /29 e dell'intervallo IPv4.

Configurazione CDC

  • CDC_USERNAME: il nome utente utilizzato dal servizio Datastream per accedere a Cloud SQL.
  • CDC_PASSWORD: la password utilizzata dal servizio Datastream per accedere a Cloud SQL.
  • VPC_NETWORK: una rete nella stessa rete VPC dell'istanza Cloud SQL utilizzata da Datastream per stabilire una connessione privata alla CDC.
  • SUBNET_IP_RANGE: un intervallo IP di subnet di almeno /29 utilizzato da Datastream per stabilire il peering alla rete VPC.
  • REVERSE_PROXY_SUBNET_ID: una subnet nella stessa rete VPC dell'istanza Cloud SQL utilizzata da Datastream. La subnet viene utilizzata per ospitare una connessione proxy inverso per la CDC di Datastream. La subnet deve essere configurata nella stessa regione del servizio Dataproc Metastore.
  • BUCKET_NAME: il percorso Cloud Storage per archiviare i dati CDC durante la migrazione.
  • ROOT_PATH: il percorso principale all'interno del bucket Cloud Storage. I dati degli eventi di flusso vengono scritti in questo percorso.

Completa migrazione

Quando completi una migrazione, Dataproc Metastore si connette a Spanner e inizia a utilizzare Spanner come database di backend.

Una migrazione completa attiva le seguenti modifiche dello stato:

  • Dataproc Metastore torna allo stato ACTIVE.
  • Lo stato di esecuzione della migrazione passa a SUCCEEDED.

Console

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

  2. Nella parte superiore della pagina, fai clic su Esegui la migrazione dei dati.

    La pagina Esegui la migrazione dei dati si apre e mostra le migrazioni gestite completate.

REST

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type:application/json" \
  -X POST -d '' \
  https://metastore.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/services/SERVICE:completeMigration

Sostituisci quanto segue:

  • SERVICE: il nome o l'ID del tuo servizio Dataproc Metastore.
  • PROJECT_ID: l'ID del progetto Google Cloud in cui risiede il tuo servizio Dataproc Metastore.
  • LOCATION: la regione Google Cloud in cui risiede il servizio Dataproc Metastore.

Annulla migrazione

Quando annulli una migrazione, Dataproc Metastore annulla le modifiche e inizia a utilizzare il tipo di database Spanner come database di backend. Tutti i dati trasferiti durante la migrazione vengono eliminati.

L'annullamento di una migrazione attiva le seguenti modifiche dello stato:

  • Dataproc Metastore torna allo stato ACTIVE.
  • Lo stato di esecuzione della migrazione passa a CANCELLED.

Console

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

  2. Nella parte superiore della pagina, fai clic su Esegui la migrazione dei dati.

    La pagina Esegui la migrazione dei dati si apre e mostra le migrazioni gestite annullate.

REST

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type:application/json" \
   -X POST -d '' \
   https://metastore.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/services/SERVICE:cancelMigration

Sostituisci quanto segue:

  • SERVICE_NAME: il nome o l'ID del tuo servizio Dataproc Metastore.
  • PROJECT_ID: l'ID del progetto Google Cloud in cui risiede il tuo servizio Dataproc Metastore.
  • LOCATION: la regione Google Cloud in cui risiede il servizio Dataproc Metastore.

Ottieni i dettagli della migrazione

Visualizza i dettagli su una singola migrazione gestita.

Console

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

  2. Nella parte superiore della pagina, fai clic su Esegui la migrazione dei dati.

    La pagina Esegui la migrazione dei dati si apre e mostra le migrazioni gestite.

    Per ulteriori dettagli sulla migrazione, fai clic sul nome di una migrazione gestita.

REST

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -X GET \
  https://metastore.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/services/SERVICE/migrationExecutions/MIGRATION_ID

Sostituisci quanto segue:

  • SERVICE: il nome o l'ID del tuo servizio Dataproc Metastore.
  • PROJECT_ID: l'ID del progetto Google Cloud in cui risiede il tuo servizio Dataproc Metastore.
  • LOCATION: la regione Google Cloud in cui risiede il servizio Dataproc Metastore.
  • MIGRATION_ID: il nome o l'ID della migrazione di Dataproc Metastore.

Elenca migrazioni

Elenca migrazioni gestite.

Console

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

  2. Nella parte superiore della pagina, fai clic su Esegui la migrazione dei dati.

    La pagina Esegui la migrazione dei dati si apre e mostra le migrazioni gestite.

  3. Verifica che il comando abbia elencato le migrazioni.

REST

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -X GET \
  https://metastore.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/services/SERVICE/migrationExecutions/MIGRATION_ID

Sostituisci quanto segue:

  • SERVICE: il nome o l'ID del tuo servizio Dataproc Metastore.
  • PROJECT_ID: l'ID del progetto Google Cloud in cui risiede il tuo servizio Dataproc Metastore.
  • LOCATION: la regione Google Cloud in cui risiede il servizio Dataproc Metastore.

Elimina migrazioni

Elimina migrazioni gestite.

REST

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -X DELETE \
   https://metastore.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/services/SERVICE/migrationExecutions/MIGRATION_ID

Sostituisci quanto segue:

  • SERVICE: il nome o l'ID del tuo servizio Dataproc Metastore.
  • PROJECT_ID: l'ID del progetto Google Cloud in cui risiede il tuo servizio Dataproc Metastore.
  • LOCATION: la regione Google Cloud in cui risiede il servizio Dataproc Metastore.
  • MIGRATION_ID: nome o ID della migrazione di Dataproc Metastore.

Passaggi successivi