Importa dal database Mongo di origine

Questa pagina descrive la prima fase del processo di migrazione in cui utilizzi uno stream Datastream per acquisire i contenuti del database di origine compatibile con MongoDB e trasferirli in un bucket Cloud Storage.

Crea file di configurazione YAML per lo stream

Oltre ai normali flag della riga di comando, la creazione di uno stream richiede due file di configurazione in formato YAML:

  • Il file mongo_source_config.yaml configura la selezione di risorse specifiche per la migrazione, ad esempio il nome del database. I parametri di connettività Mongo, come nome host, nome utente e password, sono tutte proprietà del profilo di connessione. Tuttavia, il database (e qualsiasi raccolta specifica al suo interno) è una proprietà dello stream.

  • Il file gcs_dst_config.yaml configura il posizionamento dei dati in Cloud Storage. Il bucket Cloud Storage e il percorso radice all'interno del bucket sono proprietà del profilo di connessione. Tuttavia, il formato dei dati e il posizionamento dei dati all'interno della struttura del bucket Cloud Storage sono una proprietà dello stream.

I seguenti esempi di comandi creano questi file e li compilano con i valori delle variabili di ambiente che hai impostato in precedenza. In alternativa, puoi creare questi file in qualsiasi editor di testo e sostituire i valori manualmente.

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'esempio precedente configura l'intero contenuto di $MONGODB_DATABASE_NAME per la migrazione. È anche possibile limitare la migrazione a raccolte specifiche all'interno del database. Ad esempio, per eseguire la migrazione solo delle raccolte users e chats, utilizza:

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

Crea uno stream Datastream

Successivamente, crea un flusso che colleghi l'origine e la destinazione:

L'etichetta dello stream json_canonical_mode=true garantisce che Datastream gestisca correttamente gli eventi dei documenti MongoDB che contengono valori non standard come Infinity o 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

Per saperne di più sul monitoraggio della creazione dello stream Datastream, consulta la sezione Risoluzione dei problemi.

Attiva lo stream Datastream

Infine, attiva il nuovo stream.

Quando il flusso inizia a estrarre i dati e a trasmettere in streaming le modifiche dall'origine MongoDB, puoi osservare le nuove directory e i nuovi file creati nel bucket Cloud Storage, nel percorso configurato nel profilo di connessione e nel flusso.

Per attivare lo stream, esegui questo comando:

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

Passaggi successivi

Vai a Scrivere i dati nel database di destinazione.