Présentation de la migration

Ce document décrit le processus de migration de votre base de données vers Spanner. Nous décrirons les étapes de la migration et les outils pour chaque étape, en fonction de votre base de données source et d'autres facteurs. Les outils recommandés incluent les produits Google Cloud, ainsi que des outils commerciaux et Open Source. Ensemble, ces outils vous aident à accélérer des migrations et réduire les risques.

Toute migration Spanner implique les étapes principales suivantes:

  1. Évaluez la complexité de votre migration.
  2. Migrez votre schéma.
  3. Migrez votre application.
  4. Testez et ajustez vos performances.
  5. Migrez les données.
  6. Validez la migration.
  7. Configurer des mécanismes de basculement et de basculement.

Le schéma suivant illustre ce processus :

Schéma du processus de migration montrant l'évaluation, le schéma et l'application
la migration, les tests et le réglage, la migration des données, la validation et
le basculement.

Au cours de ces étapes, votre plan de migration peut varier considérablement en fonction de différents facteurs comme la source et la taille de la base de données, les temps d'arrêt, le code d'application la complexité, le schéma de segmentation, les fonctions ou transformations personnalisées et le basculement et de réplication.

Nous fournissons des guides de migration pour Amazon DynamoDB, MySQL, Oracle Database et PostgreSQL. Si vous effectuez la migration à partir de l'une de ces bases de données, suivez également les guide pertinent:

Si vous effectuez une migration à partir d'une autre base de données, vous aurez peut-être besoin des personnalisations et des outils que ce guide n'aborde pas.

Outils de migration

Nous vous recommandons d'utiliser les outils suivants pour vous aider lors des différentes étapes de votre en fonction de votre base de données source et d'autres facteurs. Certains outils uniquement certaines bases de données sources. Pour certaines étapes du processus, aucun outil Vous devez donc effectuer ces étapes manuellement.

  • Outil de migration Spanner est un outil Open Source qui effectue des évaluations de base, ainsi que des schémas et les migrations de données.
  • Outil de validation des données est une méthode normalisée de validation des données conçue par Google et prise en charge par la communauté Open Source. Vous pouvez intégrer la TVP à vos produits Google Cloud.
  • Datastream est un service Google Cloud qui vous permet de lire les événements de capture de données modifiées (CDC, Change Data Capture) et les données groupées à partir d'un la base de données source.
  • Dataflow est un service Google Cloud qui vous aide à écrire de grandes quantités de données dans Spanner efficacement en utilisant les modèles. Ces modèles ne génèrent pas de fichier de dump. le fichier de dump doit être généré par les outils de base de données sources des outils tiers.

Le tableau suivant récapitule les principaux outils que nous recommandons pour chaque pour certaines bases de données sources courantes. Vous pouvez migrer d'autres bases de données avec des personnalisations.

Base de données source Évaluer le champ d'application Migrer votre schéma Migrer votre application Migrer vos données Valider la migration des données Configurer le basculement et le basculement
MySQL Manuel Outil de migration Spanner Manuel Outil de migration Spanner DVT Manuel
PostgreSQL Manuel Outil de migration Spanner Manuel Outil de migration Spanner DVT Manuel
Autres bases de données Manuel Outil de migration Spanner Manuel Manuel DVT Manuel

Évaluer la complexité de votre migration

Pour évaluer l'étendue et la complexité de votre migration et planifier votre approche, vous devez devez collecter des données sur votre base de données source, y compris les suivantes:

  • Formats de requête
  • la quantité de logique d'application qui dépend des fonctionnalités de base de données, comme les procédures stockées et les déclencheurs
  • Matériel requis
  • Coût total de possession (TCO)

Migrer votre schéma

Avant de migrer un schéma vers un schéma Spanner, évaluez le la compatibilité entre les schémas, et optimisez votre schéma Spanner. Par exemple, vous pouvez changer de clé, supprimer ou ajouter des index, ou ajouter ou supprimer des colonnes de tables existantes. Pour optimiser votre schéma pour Spanner, consultez Bonnes pratiques pour la conception de schémas et Recommandations les principales stratégies de migration.

L'outil de migration Spanner, Open Source, géré par la communauté et créé par des développeurs Google, crée automatiquement un schéma Spanner à partir de votre base de données source du schéma. Vous pouvez personnaliser le schéma à l'aide de l'assistant de schéma de l'outil de migration Spanner.

L'outil de migration Spanner ingère le schéma et les données à partir de l'un des emplacements suivants:

  • Un fichier de dump à partir d'un emplacement local ou de Cloud Storage (MySQL, PostgreSQL, CSV)
  • Directement à partir de la base de données source (MySQL, PostgreSQL)

L'outil de migration Spanner exécute les fonctions suivantes pour les évaluations de schémas : recommandations et migrations:

  • Évaluation de la compatibilité des types de données et recommandations
  • Modification de la clé primaire et recommandations
  • Modification de l'index secondaire et recommandations
  • Entrelacement de la modification de tableau et des recommandations
  • Recommandations générales pour la conception de schémas Spanner
  • Gestion des versions de schéma
  • Modification collaborative de schéma

Pour en savoir plus sur les migrations de schéma avec l'outil de migration Spanner, consultez la Fichier README.md de l'outil de migration Spanner.

Vous utiliserez également l'outil de migration Spanner pour la migration des données.

Migrer votre application

Une migration de base de données nécessite différents pilotes et bibliothèques, ainsi que une compensation pour les fonctionnalités non compatibles avec Spanner. À obtenir des fonctionnalités similaires et optimiser les performances de Spanner, vous devrez peut-être modifier votre code, vos flux d'application et votre architecture.

Voici quelques-unes des modifications requises pour migrer votre application vers Spanner:

  • Spanner n'étant pas compatible avec l'exécution du code utilisateur au niveau de la base de données, vous devez déplacer toutes les procédures et tous les déclencheurs stockés au niveau de la base de données dans l'application.
  • Utiliser les bibliothèques clientes et les mappeurs objet-relationnel dans Spanner (ORM). Pour en savoir plus, consultez Présentation des API, des bibliothèques clientes et des pilotes ORM
  • Si vous avez besoin de traduire des requêtes, faites-les manuellement ou utilisez d'autres des outils tiers.
  • Prenez note du LMD partitionné, transactions en lecture seule, codes temporels de commit, et les horodatages comment optimiser les performances des applications.

Vous devrez peut-être également modifier la gestion des transactions. Il n'y a aucun outil disponible pour vous aider. Vous devez donc effectuer cette étape manuellement. Conserver gardez à l'esprit les points suivants:

  • Le nombre maximal de mutations par commit est de 40 000. Chaque index secondaire d'une table est une mutation supplémentaire par ligne. Pour modifier des données à l'aide de mutations, consultez Insérer, mettre à jour et supprimer des données à l'aide de mutations Pour modifier une grande quantité de données, utilisez LMD partitionné.
  • Pour le niveau d'isolation des transactions, aucune gestion n'est requise, car Les transactions Spanner sont plus isolées.
  • Spanner étant linéarisable, Spanner gère la cohérence et le verrouillage par défaut.

Tester et ajuster le schéma et les performances de l'application

Le réglage des performances est un processus itératif au cours duquel vous évaluez Utilisation du processeur et latence en fonction d'un sous-ensemble de données, ajuster votre schéma et l'application pour améliorer les performances, puis recommencez le test.

Par exemple, dans votre schéma, vous pouvez ajouter ou modifier un index, ou modifier un clé primaire. Dans votre application, vous pouvez traiter des écritures par lot, fusionner modifier vos requêtes.

Pour le trafic de production en particulier, le réglage des performances éviter les surprises. Plus la configuration est proche de le débit du trafic de production en temps réel et la taille des données.

Pour tester et ajuster les performances de votre schéma et de votre application, procédez comme suit:

  1. Importez un sous-ensemble de vos données dans une base de données Spanner. Pour Pour en savoir plus, consultez Migrer vos données.
  2. Faire pointer l'application vers Spanner.
  3. Vérifiez l'exactitude en vérifiant les flux de base.
  4. Vérifiez que les performances répondent à vos attentes en effectuant des tests de charge sur votre application. Si vous avez besoin d'aide pour identifier et optimiser des requêtes coûteuses, consultez Détectez les problèmes de performances des requêtes grâce aux insights sur les requêtes. En particulier, les facteurs suivants peuvent contribuer à une requête non optimale performances:
    1. Requêtes inefficaces: pour en savoir plus sur l'écriture de requêtes efficaces, consultez les bonnes pratiques SQL.
    2. Utilisation élevée du processeur: pour en savoir plus, consultez Examinez l'utilisation élevée du processeur.
    3. Verrouillage: pour réduire les goulots d'étranglement causés par le verrouillage des transactions, voir Identifiez les transactions susceptibles d'entraîner des latences élevées.
    4. Conception de schéma inefficace: si le schéma n'est pas bien conçu, interrogez l'optimisation n'est pas très utile.
    5. Hotspotting: les hotspots dans Spanner limitent le débit en écriture. en particulier pour les applications nécessitant un grand nombre de requêtes par seconde. Pour identifier les zones cliquables antimodèles, cochez la case Key Visualiseur depuis la console Google Cloud. Pour en savoir plus sur en évitant les hotspots, consultez Sélectionnez une clé primaire pour empêcher les hotspots.
  5. Si vous modifiez le schéma ou les index, répétez l'opération des tests jusqu’à ce que vous obteniez des résultats satisfaisants.

Pour en savoir plus sur l'optimisation des performances de votre base de données, contactez Compatibilité avec Spanner

Transférer vos données

Après avoir optimisé votre schéma Spanner et migré votre vous transférez vos données dans un espace de production Spanner, puis passez à la Spanner.

Selon votre base de données source, vous pourrez peut-être migrer votre base de données avec un temps d'arrêt minimal ou un temps d'arrêt prolongé.

Pour les migrations avec temps d'arrêt minimal et celles avec des temps d'arrêt prolongés, nous vous recommandons d'utiliser Dataflow l'outil de migration Spanner.

Le tableau suivant montre les différences entre les migrations avec temps d'arrêt minimal et les migrations comportant davantage de temps d'arrêt, y compris les sources, formats, tailles, et le débit.

Migration nécessitant un temps d'arrêt minimal Migration avec temps d'arrêt
Sources compatibles MySQL, PostgreSQL Toute base de données pouvant exporter vers un fichier CSV ou Avro.
Formats de données compatibles Connectez-vous directement. Consultez Directement à une base de données MySQL. MySQL, PostgreSQL, CSV, Avro
Tailles de base de données acceptées Aucune limite Aucune limite
Débit maximal 45 Go par heure 200 Go par heure

Migration avec temps d'arrêt minimal

Spanner accepte les migrations avec temps d'arrêt minimal à partir de MySQL, PostgreSQL et Oracle Database. Une migration avec temps d'arrêt minimal se compose de deux composants:

  • Un instantané cohérent de toutes les données de la base de données
  • Le flux de modifications (insertions et mises à jour) effectuées depuis cet instantané appelée capture des données modifiées (CDC, Change Data Capture)

Si les migrations avec un temps d'arrêt minimal contribuent à protéger vos données, le processus implique notamment:

  • Stockage des données CDC pendant la migration de l'instantané
  • Écrire les données CDC dans Spanner lors de la capture des flux CDC.
  • Accélérer la migration des données CDC vers Spanner que le flux CDC entrant.

Pour gérer une migration avec un temps d'arrêt minimal, l'outil de migration Spanner orchestre les opérations suivantes processus pour vous:

  1. Il configure un bucket Cloud Storage pour stocker les événements CDC. sur la base de données source pendant la migration de l'instantané.
  2. Il configure une tâche Datastream qui déplace l'ensemble des données de données CDC et diffuse en continu des données CDC incrémentielles bucket Cloud Storage. Vous avez configuré le profil de connexion source dans l'outil de migration Spanner.
  3. Il configure la tâche Dataflow pour migrer la CDC. dans Spanner.

Lorsque Dataflow a copié la plupart des données, il arrête d'écrire dans la base de données source et attend la fin de la migration des données. Il en résulte pendant un court temps d'arrêt pendant que Spanner rattrape la source base de données. L'application peut ensuite être basculée vers Spanner.

Le schéma suivant illustre ce processus :

Ce schéma illustre le processus de migration avec temps d'arrêt minimal.

Migration avec temps d'arrêt

Pour les bases de données autres que MySQL, PostgreSQL ou Oracle Database, vous pouvez exporter au format CSV ou Avro, puis migrer vers Spanner avec les temps de pause. Nous vous recommandons d'utiliser Dataflow ou Outil de migration Spanner.

Les migrations avec temps d'arrêt ne sont recommandées que pour les environnements de test ou qui peuvent gérer quelques heures de temps d'arrêt. Sur une base de données active, une migration avec temps d'arrêt peut entraîner une perte de données.

Pour effectuer une migration avec temps d'arrêt, procédez comme suit:

  1. Générez un fichier de dump à partir de la base de données source.
  2. importer le fichier de dump dans Cloud Storage au format MySQL, PostgreSQL, Avro ou Format de vidage CSV.
  3. Charger le fichier de dump dans Spanner à l'aide de Dataflow ou l'outil de migration Spanner.

La génération de plusieurs petits fichiers de dump accélère l'écriture Spanner, car Spanner peut lire plusieurs fichiers de vidage en parallèle.

Lors de la génération d'un fichier de dump à partir de la base de données source, afin de générer une cohérence instantané des données, gardez à l'esprit les points suivants:

  • Pour éviter que les données ne changent pendant la génération du fichier de dump, avant d'effectuer le vidage, appliquez un verrou en lecture sur la base de données source.
  • Générez le fichier de dump à l'aide d'une instance répliquée avec accès en lecture à partir de la base de données source avec réplication désactivée.

Avro est le format recommandé pour une migration groupée vers Spanner. Si vous utilisez Avro, tenez compte des points suivants:

Si vous utilisez un fichier CSV, tenez compte des points suivants:

  • Pour générer un fichier de vidage CSV des données, utilisez la génération CSV prise en charge par source. Si les données contiennent de nouvelles lignes, utilisez un séparateur de ligne personnalisé.
  • Pour importer des données CSV, utilisez un job d'importation Dataflow. Vous pouvez créer votre propre modèle d'importation Dataflow ou utiliser Google Cloud modèle d'importation. Pour en savoir plus, consultez Modèles de pipeline de données Dataflow

Si vous utilisez MySQL ou PostgreSQL, vous pouvez utiliser l'outil de migration Spanner.

Pour en savoir plus sur l'utilisation de scripts personnalisés pour charger des données dans Spanner, consultez la page Consignes relatives aux performances pour le chargement groupé

Valider la migration de vos données

La validation des données est le processus de comparaison des données provenant à la fois de la source et de la tables de destination pour s’assurer qu’elles correspondent.

Outil de validation des données est un outil Open Source qui peut se connecter à des datastores et effectuer des vérifications entre la source et Spanner. Nous vous recommandons de l'utiliser Validations de base dans le cadre de votre migration, telles que:

  • Vérifiez que toutes les tables ont été créées et que tous les mappages de schémas Correct .
  • Faites correspondre le nombre de lignes de chaque table.
  • Extrayez des lignes aléatoires pour vérifier qu'elles sont correctes.
  • Validez vos colonnes (count, sum, avg, min, max, group by).
  • Comparez les contrôles de redondance cyclique ou les fonctions de hachage au niveau des lignes.

Pour effectuer des validations plus spécifiques, créez des vérifications personnalisées lors de la migration.

Configurer des mécanismes de basculement et de basculement

Les migrations sont souvent chronophages et complexes. Intégrer des créations de remplacement à éviter un impact significatif en cas d'erreur lors de la migration, ce qui vous permet de changer à la base de données source avec un temps d'arrêt minimal.

Nous recommandons actuellement d'utiliser des flux de modifications pour effectuer une réplication inverse ; et écrire dans la base de données source via un flux tel que Pub/Sub ou Cloud Storage.

Le schéma illustre le processus de basculement.

La réplication inverse doit effectuer les opérations suivantes:

  • Gérer les modifications des types de données ou du contenu
  • Annulez toutes les transformations effectuées lors de la migration.
  • Transférez les données vers la destination appropriée, en tenant compte de les schémas de segmentation sur la source.