Cette page décrit les bonnes pratiques à suivre dans le cas où vous avez configuré la réplication Datastream vers BigQuery, mais que vous avez configuré l'ensemble de données de destination dans une région incorrecte. Vous souhaitez ensuite déplacer l'ensemble de données vers une autre région (ou multirégion) sans avoir à resynchroniser toutes les données de la base de données source avec BigQuery.
Avant de commencer
Avant de commencer à migrer vos données vers une autre région, tenez compte des points suivants :
- La migration prend du temps, et vous devez suspendre temporairement le flux pendant l'opération. Pour préserver l'intégrité des données, la base de données source doit conserver le
les journaux des modifications
lorsque le flux est suspendu. Pour estimer la durée de la mise en pause du flux, combinez la valeur de
max_staleness
dans l'ensemble de données et l'opération de fusion la plus longue :- Pour savoir combien de temps peut prendre les opérations de fusion
terminer, consultez la section Valeur recommandée pour la table
max_staleness
. - Pour trouver la valeur
max_staleness
maximale dans l'ensemble de données, consultez la section Déterminer la valeurmax_staleness
actuelle d'une table et ajustez la requête en fonction de vos besoins spécifiques. - Si la suspension estimée est trop longue pour que
votre base de données source ne le prenne pas en charge,
vous pouvez envisager de réduire temporairement la valeur de
max_staleness
pour les tables de l'ensemble de données.
- Pour savoir combien de temps peut prendre les opérations de fusion
terminer, consultez la section Valeur recommandée pour la table
- Vérifiez que l'utilisateur effectuant la migration dispose de suffisamment de ressources BigQuery dans la région de destination (réservation de requêtes et réservation en arrière-plan). Pour en savoir plus sur les réservations, consultez Attributions de réservation :
- Vérifiez que l'utilisateur effectuant la migration dispose d'autorisations suffisantes pour effectuer cette opération, telles que les contrôles Identity and Access Management (IAM) ou VPC Service Controls.
Procédure de migration
Pour lancer la migration d'un ensemble de données, utilisez la réplication de données BigQuery :
Dans la console Google Cloud, accédez à la page BigQuery Studio.
Créez une instance répliquée d'ensemble de données BigQuery dans la nouvelle région:
ALTER SCHEMA DATASET_NAME ADD REPLICA 'NEW_REGION' OPTIONS(location='NEW_REGION');
Remplacez les éléments suivants :
- DATASET_NAME: nom de l'ensemble de données que vous souhaitez créer.
- NEW_REGION : nom de la région dans laquelle vous souhaitez créer votre ensemble de données. Exemple :
region-us
Surveillez la progression de la migration et attendez que le filigrane de copie dans le se trouve à quelques minutes de l'instance principale. Vous pouvez exécuter cette requête sur le schéma INFORMATION_SCHEMA de BigQuery ; pour vérifier la progression de la migration:
SELECT catalog_name as project_id, schema_name as dataset_name, replication_time as dataset_replica_staleness FROM 'NEW_REGION'.INFORMATION_SCHEMA.SCHEMATA_REPLICAS WHERE catalog_name = PROJECT_ID AND schema_name = DATASET_NAME AND location = NEW_REGION;
Remplacez les éléments suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- DATASET_NAME : nom de votre ensemble de données.
- DATASET_REPLICA_STALENESS: configuration d'obsolescence du dans l'instance répliquée de l'ensemble de données que vous avez créée.
- NEW_REGION: région dans laquelle vous avez créé votre ensemble de données.
Mettez en pause le flux Datastream existant. Pour en savoir plus, consultez Mettez en pause le flux.
Attendez que le flux soit vidé et notez l'heure à laquelle il est passé à l'état
PAUSED
.Vérifier que les dernières modifications de la CDC ont été appliquées à BigQuery tableau en cochant la case
upsert_stream_apply_watermark
pour la table. Exécutez la requête suivante et vérifiez que le code temporel du filigrane a lieu 10 minutes plus tard que lorsque la diffusion a été mise en pause:SELECT table_name, upsert_stream_apply_watermark FROM DATASET_NAME.INFORMATION_SCHEMA.TABLES
Pour exécuter la requête uniquement pour une table spécifique, ajoutez la clause
WHERE
suivante :WHERE table_name = 'TABLE_NAME'
Remplacez les éléments suivants :
- DATASET_NAME : nom de votre ensemble de données.
- TABLE_NAME : Facultatif. Table pour laquelle vous souhaitez vérifier l'
upsert_stream_apply_watermark
.
Utilisez la requête de l'étape 3 pour vérifier que le filigrane de copie de la nouvelle région est après la
upsert_stream_apply_watermark
capturée à l'étape 6.Vous pouvez aussi comparer manuellement plusieurs tables de l'ensemble de données principal dans région d'origine avec l'instance répliquée dans la nouvelle région pour vérifier que toutes les données est correctement copié.
Promouvez l'instance répliquée de l'ensemble de données BigQuery en exécutant la commande suivante : dans BigQuery Studio:
ALTER SCHEMA DATASET_NAME SET OPTIONS(primary_replica = 'NEW_REGION');
Remplacez les éléments suivants :
- DATASET_NAME : nom de votre ensemble de données.
- NEW_REGION: région dans laquelle vous avez créé votre ensemble de données.
Si vous n'avez plus besoin de l'ensemble de données d'origine (désormais l'instance répliquée), et que si vous ne voulez pas engager de frais supplémentaires, accédez à BigQuery Studio et supprimez l'ensemble de données BigQuery d'origine:
ALTER SCHEMA DATASET_NAME DROP REPLICA IF EXISTS ORIGINAL_REGION;
Remplacez les éléments suivants :
- DATASET_NAME : nom de l'ensemble de données d'origine.
- ORIGINAL_REGION : région de l'ensemble de données d'origine.
Créez un flux avec exactement la même configuration, mais avec un nouvel emplacement de destination BigQuery.
Lancez la nouvelle diffusion.
Pour empêcher la réplication d'événements en double, démarrez le flux à partir d'une position spécifique:
- Pour les sources MySQL et Oracle: vous pouvez identifier la position du journal. en examinant les journaux du flux d'origine et en trouvant la dernière position à partir duquel le flux a bien été lu. Pour en savoir plus sur le démarrage flux à partir d'un emplacement spécifique, consultez la section Gérer les flux.
- Pour les sources PostgreSQL : le nouveau flux commence à lire les modifications à partir du premier numéro de séquence de journal (LSN) de l'emplacement de réplication. Étant donné que le flux d'origine a peut-être déjà traité certaines de ces modifications, définissez manuellement le pointeur de l'emplacement de réplication sur le dernier LSN à partir duquel Datastream a lu. Vous pouvez trouver ce LSN dans les journaux client Datastream.
Vous pouvez également supprimer le flux d'origine.