Utiliser la migration gérée pour migrer un métastore MySQL autogéré vers Dataproc Metastore

La migration gérée est une fonctionnalité automatisée qui vous aide à migrer des données d'un métastore Hive autogéré vers un service Dataproc Metastore, sans aucun temps d'arrêt important (également appelé jour d'indicateur).

Fonctionnement de la migration gérée

Pour effectuer une migration gérée, votre service doit passer par deux processus de migration : démarrer la migration et terminer la migration. Vous pouvez annuler une migration à tout moment en suivant le processus d'annulation de la migration. Vous pouvez également exécuter un certain nombre de commandes opérationnelles qui ne sont pas nécessaires pour effectuer une migration. Par exemple, répertoriez la migration ou supprimez la migration.

Lorsque votre service suit ce processus, il passe également d'un état de migration à une phase. Ces états et phases représentent les processus qui se produisent en arrière-plan. Par exemple, l'état MIGRATING indique que votre service transfère activement les données de votre base de données Cloud SQL vers Dataproc Metastore.

La migration gérée nécessite trois sous-réseaux pour exécuter une migration: proxy_subnet, nat_subnet et reverse_proxy_subnet. Pour éviter tout problème de latence, configurez les éléments suivants:

  • proxy_subnet et nat_subnet dans la même région que Cloud SQL.
  • reverse_proxy_subnet se trouve dans la même région du service Dataproc Metastore.

Pour en savoir plus sur les différents types de sous-réseaux, consultez la section Objectifs des sous-réseaux.

Flux de migration géré

Lancer la migration

  1. Vous exécutez un processus de démarrage de la migration sur un service Dataproc Metastore.
  2. Votre service Dataproc Metastore se connecte à votre base de données Cloud SQL, qui sert de base de données backend pour votre métastore Hive autogéré. Dans cette étape, la base de données Cloud SQL reste la source de référence pour vos données.

  3. Dataproc Metastore exécute un flux de capture des données modifiées (CDC, Change Data Capture) qui copie les données de la base de données Cloud SQL vers la base de données Dataproc Metastore (Cloud Spanner).

    Une fois la migration lancée, vous pouvez commencer à acheminer les charges de travail vers Dataproc Metastore. À ce stade, Cloud SQL reste la source de référence de vos données.

Effectuer la migration

Une fois vos charges de travail transférées vers Dataproc Metastore, vous pouvez terminer la migration. Lorsqu'un processus de migration complète est appelé, voici ce qui se produit:

  • Dataproc Metastore passe en mode lecture seule jusqu'à la fin du processus de migration complet.
  • Le flux CDC transfère toutes les données en cours vers Dataproc Metastore.
  • Dataproc Metastore se connecte à Spanner et se déconnecte de Cloud SQL. Dataproc Metastore sert désormais de source de référence pour vos données.

Avant de commencer

Pour lancer une migration, vous devez configurer les services suivants ou y avoir accès:

  • Un Dataproc Metastore configuré avec le type de base de données Spanner.
  • Une instance de base de données Cloud SQL pour MySQL configurée avec une adresse IP privée

    • Le réseau VPC de l'instance Cloud SQL dispose des sous-réseaux requis.

    • Cloud SQL utilise une base de données avec un schéma compatible avec la version de métastore Hive exécutée sur le service Dataproc Metastore dans lequel il copie les données.

    • Configurez Cloud SQL pour l'utiliser comme source Datastream. Créez un nom d'utilisateur et un mot de passe pour connecter Datastream à Cloud SQL.

Rôles requis

Pour obtenir les autorisations nécessaires pour créer un service Dataproc Metastore et démarrer une migration gérée, demandez à votre administrateur de vous accorder les rôles IAM suivants:

  • Pour accorder un accès complet à toutes les ressources Dataproc Metastore, y compris la définition d'autorisations IAM : Administrateur Dataproc Metastore (roles/metastore.admin) sur le compte utilisateur ou le compte de service Dataproc Metastore
  • Pour accorder un contrôle total sur les ressources Dataproc Metastore, procédez comme suit : Éditeur Dataproc Metastore (roles/metastore.editor) sur le compte utilisateur ou le compte de service Dataproc Metastore
  • Pour créer une migration gérée : Administrateur de migration (roles/metastore.migrationAdmin) sur l'[agent de service][7] Dataproc Metastore
  • Pour utiliser l'objet Cloud Storage avec Datastream :

Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.

Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.

Configurer une migration gérée

Vous pouvez configurer une migration à l'aide des API Dataproc Metastore.

Un service Dataproc Metastore ne peut exécuter qu'une seule migration à la fois.

Démarrer la migration

Lorsque vous lancez une migration, Dataproc Metastore se connecte à Cloud SQL et l'utilise comme base de données backend. Au cours de ce processus, Dataproc Metastore exécute un pipeline qui copie les données de Cloud SQL vers sa propre base de données (Spanner).

Dataproc Metastore continue d'utiliser Cloud SQL comme backend et réplique les données jusqu'à ce que le processus de migration complet soit appelé.

Remarques

  • Une migration reste active jusqu'à la fin du processus. Aucun délai n'est défini pour effectuer la migration. Par exemple, la migration peut prendre 1 jour, 30 jours ou un an.

  • Les sauvegardes planifiées ne sont pas limitées lors d'une migration. Cependant, la sauvegarde peut être incomplète. Pour éviter tout problème, désactivez les sauvegardes planifiées pendant la migration.

Le démarrage d'une migration déclenche les changements d'état suivants:

  • Dataproc Metastore passe à l'état MIGRATING.
  • L'état d'exécution de la migration passe à RUNNING.
  • La phase d'exécution de la migration passe à REPLICATION.

Console

Premiers pas

  1. Dans la console Google Cloud, ouvrez la page Dataproc Metastore:

    Ouvrir Dataproc Metastore

  2. Sur la page Dataproc Metastore, cliquez sur le nom du service vers lequel vous souhaitez migrer.

    La page Détails du service s'ouvre.

  3. En haut de la page, cliquez sur Migrer les données.

    La page Créer une migration s'ouvre sur l'onglet Connectivité et affiche les paramètres de configuration Configuration de la base de données Cloud SQL pour Dataproc Metastore.

Configuration de la base de données Cloud SQL pour DPMS

  1. Dans le champ Nom de connexion de l'instance, saisissez le nom de connexion de l'instance de la base de données Cloud SQL au format suivant : PROJECT_ID/LOCATION/CLOUDSQL_INSTANCE_ID.

  2. Dans le champ Adresse IP, saisissez l'adresse IP requise pour vous connecter à l'instance Cloud SQL.

  3. Dans le champ Port, saisissez 3306.

  4. Dans le champ Hive database name (Nom de la base de données Hive), saisissez le nom de la base de données utilisée comme backend du métastore Hive autogéré.

  5. Dans le champ Username (Nom d'utilisateur), saisissez le nom d'utilisateur que vous utilisez pour connecter Cloud SQL au métastore Hive.

  6. Dans le champ Password (Mot de passe), saisissez le mot de passe que vous utilisez pour connecter Cloud SQL au métastore Hive.

Service proxy SOCKS5

  1. Dans le champ Sous-réseau proxy, saisissez le sous-réseau utilisé dans le réseau VPC Cloud SQL. Ce sous-réseau est utilisé pour déployer le proxy SOCKS5 intermédiaire.

  2. Dans le champ Sous-réseau Nat, saisissez le sous-réseau Private Service Connect qui fournit une connexion à partir du service Dataproc Metastore pour accéder au proxy intermédiaire. La longueur de préfixe de la taille de sous-réseau doit être au moins /29.

  3. Cliquez sur Continuer.

    L'onglet Change Data Capture (CDC) (Capture de données modifiées) s'ouvre et affiche les paramètres de configuration de la configuration de la base de données Cloud SQL pour Datastream.

Configuration de la base de données Cloud SQL pour le flux de données

  1. Dans le champ Nom d'utilisateur, saisissez le nom d'utilisateur que vous utilisez pour vous connecter à la CDC Cloud SQL utilisée par Datastream.

  2. Dans le champ Mot de passe, saisissez le mot de passe que vous utilisez pour vous connecter à la CDC Cloud SQL utilisée par Datastream.

  3. Dans le champ Réseau VPC, saisissez le nom du réseau sur le même réseau VPC que l'instance Cloud SQL utilisée par Datastream pour établir une connexion privée à la CDC.

  4. Dans le champ Plage d'adresses IP de sous-réseau, saisissez une plage d'adresses IP de sous-réseau d'au moins /29. Datastream utilise cette adresse IP pour établir l'appairage avec le réseau VPC.

  5. Dans le champ Sous-réseau de proxy inverse, saisissez le sous-réseau que vous avez créé dans le même réseau VPC que Cloud SQL. Datastream utilise ce sous-réseau. Le sous-réseau permet d'héberger une connexion de proxy inverse pour le CDC Datastream. Le sous-réseau doit être configuré dans la même région que le service Dataproc Metastore.

Configuration GCS

  1. Dans le champ ID de bucket, sélectionnez le chemin d'accès Cloud Storage où stocker les données CDC pendant la migration.

  2. Dans le champ Chemin d'accès racine, saisissez le chemin d'accès racine situé à l'intérieur du bucket Cloud Storage. Les données d'événement de flux sont écrites dans ce chemin.

  3. Cliquez sur Créer.

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

Remplacez les éléments suivants :

  • SERVICE: nom ou ID de votre service Dataproc Metastore.
  • PROJECT_ID: ID du projet Google Cloud dans lequel se trouve votre service Dataproc Metastore.
  • LOCATION: région Google Cloud dans laquelle se trouve votre service Dataproc Metastore.

Configuration de la migration Cloud SQL

  • INSTANCE_CONNECTION_NAME: nom de connexion de l'instance pour la base de données Cloud SQL, au format suivant : PROJECT_ID/LOCATION/CLOUDSQL_INSTANCE_ID.
  • HIVE_DATABASE_NAME: nom de la base de données Hive autogérée connectée à Cloud SQL.
  • IP_ADDRESS: adresse IP requise pour se connecter à l'instance Cloud SQL.
  • CONNECTION_USERNAME: nom d'utilisateur que vous utilisez pour connecter Cloud SQL au métastore Hive.
  • CONNECTION_PASSWORD est le mot de passe que vous utilisez pour connecter Cloud SQL au métastore Hive.
  • PROXY_SUBNET: sous-réseau utilisé dans le réseau VPC Cloud SQL. Ce sous-réseau héberge un proxy intermédiaire pour fournir une connectivité sur des réseaux transitifs.
  • NAT_SUBNET: sous-réseau Private Service Connect qui fournit une connexion à partir du service Dataproc Metastore pour accéder au proxy intermédiaire. La longueur de préfixe de la taille de sous-réseau doit être au moins égale à /29 et comprise dans la plage IPv4.

Configuration du CDC

  • CDC_USERNAME: nom d'utilisateur utilisé par le service Datastream pour se connecter à Cloud SQL.
  • CDC_PASSWORD: mot de passe utilisé par le service Datastream pour se connecter à Cloud SQL.
  • VPC_NETWORK: réseau situé sur le même réseau VPC que l'instance Cloud SQL utilisée par Datastream pour établir une connexion privée à la CDC.
  • SUBNET_IP_RANGE: plage d'adresses IP de sous-réseau d'au moins /29 utilisée par Datastream pour établir l'appairage avec le réseau VPC.
  • REVERSE_PROXY_SUBNET_ID: sous-réseau du même réseau VPC que l'instance Cloud SQL utilisée par Datastream. Le sous-réseau permet d'héberger une connexion de proxy inverse pour le CDC Datastream. Le sous-réseau doit être configuré dans la même région que le service Dataproc Metastore.
  • BUCKET_NAME: chemin d'accès Cloud Storage dans lequel stocker les données CDC pendant la migration.
  • ROOT_PATH: chemin d'accès racine dans le bucket Cloud Storage. Les données d'événement de flux sont écrites dans ce chemin.

Effectuer la migration

Une fois la migration terminée, Dataproc Metastore se connecte à Spanner et commence à utiliser Spanner comme base de données backend.

Une migration complète déclenche les changements d'état suivants:

  • Dataproc Metastore revient à l'état ACTIVE.
  • L'état d'exécution de la migration passe à SUCCEEDED.

Console

  1. Dans la console Google Cloud, ouvrez la page Dataproc Metastore.

  2. En haut de la page, cliquez sur Migrer les données.

    La page Migrate Data (Migrer les données) s'ouvre et affiche les migrations gérées terminées.

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

Remplacez les éléments suivants :

  • SERVICE: nom ou ID de votre service Dataproc Metastore.
  • PROJECT_ID: ID du projet Google Cloud dans lequel se trouve votre service Dataproc Metastore.
  • LOCATION: région Google Cloud dans laquelle se trouve votre service Dataproc Metastore.

Annuler la migration

Lorsque vous annulez une migration, Dataproc Metastore annule toutes les modifications et commence à utiliser le type de base de données Spanner en tant que base de données backend. Toutes les données transférées pendant la migration sont supprimées.

L'annulation d'une migration déclenche les changements d'état suivants:

  • Dataproc Metastore revient à l'état ACTIVE.
  • L'état d'exécution de la migration passe à CANCELLED.

Console

  1. Dans la console Google Cloud, ouvrez la page Dataproc Metastore.

  2. En haut de la page, cliquez sur Migrer les données.

    La page Migrer les données s'ouvre et affiche les migrations gérées annulées.

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

Remplacez les éléments suivants :

  • SERVICE_NAME: nom ou ID de votre service Dataproc Metastore.
  • PROJECT_ID: ID du projet Google Cloud dans lequel se trouve votre service Dataproc Metastore.
  • LOCATION: région Google Cloud dans laquelle se trouve votre service Dataproc Metastore.

Obtenir les détails de la migration

Obtenez des informations sur une migration gérée unique.

Console

  1. Dans la console Google Cloud, ouvrez la page Dataproc Metastore.

  2. En haut de la page, cliquez sur Migrer les données.

    La page Migrer les données s'ouvre et affiche vos migrations gérées.

    Pour en savoir plus sur une migration gérée, cliquez sur son nom.

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

Remplacez les éléments suivants :

  • SERVICE: nom ou ID de votre service Dataproc Metastore.
  • PROJECT_ID: ID du projet Google Cloud dans lequel se trouve votre service Dataproc Metastore.
  • LOCATION: région Google Cloud dans laquelle se trouve votre service Dataproc Metastore.
  • MIGRATION_ID: nom ou ID de votre migration Dataproc Metastore.

Répertorie les migrations

Répertorier les migrations gérées.

Console

  1. Dans la console Google Cloud, ouvrez la page Dataproc Metastore.

  2. En haut de la page, cliquez sur Migrer les données.

    La page Migrer les données s'ouvre et affiche vos migrations gérées.

  3. Vérifiez que la commande a bien listé les migrations.

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

Remplacez les éléments suivants :

  • SERVICE: nom ou ID de votre service Dataproc Metastore.
  • PROJECT_ID: ID du projet Google Cloud dans lequel se trouve votre service Dataproc Metastore.
  • LOCATION: région Google Cloud dans laquelle se trouve votre service Dataproc Metastore.

Supprimer les migrations

supprimer les migrations gérées ;

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

Remplacez les éléments suivants :

  • SERVICE: nom ou ID de votre service Dataproc Metastore.
  • PROJECT_ID: ID du projet Google Cloud dans lequel se trouve votre service Dataproc Metastore.
  • LOCATION: région Google Cloud dans laquelle se trouve votre service Dataproc Metastore.
  • MIGRATION_ID: nom ou ID de la migration Dataproc Metastore.

Étapes suivantes