Importer depuis la base de données Mongo source

Cette page décrit la première étape du processus de migration au cours de laquelle vous utilisez un flux Datastream pour capturer le contenu de votre base de données source compatible avec MongoDB et le transférer dans un bucket Cloud Storage.

Créer des fichiers de configuration YAML pour le flux

En plus des indicateurs de ligne de commande habituels, la création d'un flux nécessite deux fichiers de configuration au format YAML :

  • Le fichier mongo_source_config.yaml configure la sélection de ressources spécifiques pour la migration, telles que le nom de la base de données. Les paramètres de connectivité Mongo, tels que le nom d'hôte, le nom d'utilisateur et le mot de passe, sont tous des propriétés du profil de connexion. Toutefois, la base de données (et toutes les collections spécifiques de cette base de données) sont une propriété du flux.

  • Le fichier gcs_dst_config.yaml configure l'emplacement des données dans Cloud Storage. Le bucket Cloud Storage et le chemin racine dans le bucket sont des propriétés du profil de connexion. Toutefois, le format des données et leur emplacement dans la structure du bucket Cloud Storage sont une propriété du flux.

Les exemples de commandes suivants créent ces fichiers et les remplissent avec des valeurs issues des variables d'environnement que vous avez définies précédemment. Vous pouvez également créer ces fichiers dans n'importe quel éditeur de texte et remplacer les valeurs manuellement.

echo "$(cat <<EOF
includeObjects:
  databases:
  - database: ${MONGODB_DATABASE_NAME}
EOF
)" > mongo_source_config.yaml

echo "$(cat <<EOF
path: "/${GCS_BUCKET_SUB_PATH}"
avroFileFormat: {}
EOF
)" > gcs_dst_config.yaml

L'exemple précédent configure l'intégralité du contenu de $MONGODB_DATABASE_NAME pour la migration. Il est également possible de limiter la migration à des collections spécifiques de la base de données. Par exemple, pour ne migrer que les collections users et chats, utilisez la commande suivante :

includeObjects:
  databases:
  - database: ${MONGODB_DATABASE_NAME}
    collections:
      - collection: users
      - collection: chats

Créer un flux Datastream

Ensuite, créez un flux qui connecte la source et la destination :

Le libellé de flux json_canonical_mode=true garantit que Datastream gère correctement les événements de document MongoDB qui contiennent des valeurs non standards telles que Infinity ou NaN.

gcloud datastream streams create "$DATASTREAM_NAME" \
--display-name="$DATASTREAM_NAME" \
--location="$LOCATION" \
--source="$SRC_CONNECTION_PROFILE_NAME" \
--destination="$DST_CONNECTION_PROFILE_NAME" \
--mongodb-source-config=./mongo_source_config.yaml \
--gcs-destination-config=./gcs_dst_config.yaml \
--labels="json_canonical_mode=true" \
--backfill-all

Pour en savoir plus sur la surveillance de la création de flux Datastream, consultez la section Dépannage.

Activer le flux Datastream

Enfin, activez le nouveau flux.

Lorsque le flux commence à extraire des données et à diffuser des modifications depuis la source Mongo, vous pouvez observer la création de nouveaux répertoires et fichiers dans le bucket Cloud Storage, sous le chemin configuré dans le profil de connexion et le flux.

Pour activer le flux, exécutez la commande suivante :

gcloud datastream streams update "$DATASTREAM_NAME" \
--location="$LOCATION" \
--state=RUNNING \
--update-mask=state

Étape suivante

Passez à la section Écrire des données dans la base de données de destination.