Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Esegui la migrazione a Firestore con compatibilità MongoDB
Questa guida ti illustra la procedura passo passo per eseguire la migrazione del database di origine compatibile con MongoDB a un database Firestore con compatibilità MongoDB con tempi di inattività minimi.
Informazioni sul processo di migrazione
La procedura di migrazione prevede le seguenti fasi:
Preparazione: crei le risorse necessarie per la migrazione e imposti le variabili di ambiente che verranno utilizzate per eseguire i comandi nelle fasi successive del processo di migrazione.
Importa dal database di origine compatibile con MongoDB: utilizzi il servizio Datastream per acquisire i contenuti del database di origine compatibile con MongoDB e trasferirli in un bucket Cloud Storage.
Scrivi dati nel database Firestore con compatibilità MongoDB: utilizzi il servizio Dataflow per trasferire i dati dal bucket Cloud Storage a un database Firestore con compatibilità MongoDB.
Questa pipeline Dataflow verrà eseguita contemporaneamente al flusso Datastream che estrae i dati dal database di origine compatibile con MongoDB.
Esegui la migrazione del traffico a Firestore: al momento opportuno
della procedura, esegui la migrazione del traffico di lettura e scrittura dell'applicazione al
database Firestore con compatibilità MongoDB e arresta
la pipeline di migrazione.
Il seguente diagramma riassume la procedura di migrazione:
Il database di origine compatibile con MongoDB rimane in uno stato di servizio durante il trasferimento dei dati:
Il processo Datastream acquisisce sia i dati inattivi che gli eventi di modifica.
Si verificherà un breve periodo di indisponibilità parziale quando dovrai interrompere
il traffico di scrittura nel database di origine. Durante questo periodo, il
resto degli eventi di modifica viene replicato in Firestore.
Al termine della replica, il database Firestore con compatibilità
MongoDB può diventare la nuova fonte attendibile per il tuo
carico di lavoro dell'applicazione. Tutto il traffico in lettura e scrittura può essere indirizzato al nuovo
database.
Passaggi dettagliati per la migrazione
Questa sezione descrive la migrazione in modo più dettagliato.
Il servizio Datastream crea un flusso tra un'origine e una
destinazione. In questo caso, l'origine è l'attuale deployment compatibile con MongoDB, mentre la destinazione è Cloud Storage. Questo processo prevede
i seguenti passaggi:
Avvia una pipeline Dataflow per iniziare a inserire i dati acquisiti nel database Firestore con compatibilità MongoDB.
Monitora lo stream
per identificare le tappe fondamentali del processo di migrazione e determinare
se si sono verificati errori durante il trasferimento dei dati.
Quando è opportuno,
interrompi il traffico di scrittura
nel database di origine. Dopo che tutti i dati, comprese le modifiche recenti, sono stati
replicati nel database Firestore con compatibilità MongoDB, reindirizza il traffico di lettura alla nuova destinazione.
Gli esempi di codice in questa guida devono essere eseguiti uno dopo l'altro. Questa
guida presuppone che tu configuri l'ambiente impostando in anticipo tutte le variabili
di ambiente. Successivamente, esegui i comandi necessari per la
migrazione che utilizzano le variabili di ambiente già configurate. Ti consigliamo
di utilizzare questo approccio. Poiché molti comandi utilizzano le stesse variabili di ambiente, puoi
ridurre la possibilità di introdurre errori tra le diverse fasi del
processo di migrazione.
In alternativa, puoi sostituire le variabili negli esempi di comando con gli stessi valori impostati per le variabili di ambiente corrispondenti.
Se uno dei tuoi dati non soddisfa le limitazioni nelle categorie precedenti:
Ti consigliamo di risolvere questi problemi nel tuo set di dati prima di iniziare la
procedura di migrazione.
Se scegli di procedere senza modifiche, i documenti interessati
dalle limitazioni non verranno scritti in Firestore e verranno
messi da parte.
Puoi decidere come devono essere gestiti questi documenti. Se vengono
convertiti in tipi, valori o dimensioni supportati, possono essere rielaborati.
Datastream presenta i seguenti requisiti:
La versione principale minima di MongoDB supportata da
Datastream è 4.0. Per alcune versioni secondarie, sono supportate
versioni patch minime:
4.0.21
4.2.10
4.4.2
Il cluster MongoDB deve supportare Change Streams. Il deployment MongoDB
deve essere configurato come
set di repliche o
cluster con sharding per abilitare
Change Streams.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Difficile da capire","hardToUnderstand","thumb-down"],["Informazioni o codice di esempio errati","incorrectInformationOrSampleCode","thumb-down"],["Mancano le informazioni o gli esempi di cui ho bisogno","missingTheInformationSamplesINeed","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-09-04 UTC."],[],[],null,["# Migrate to Firestore with MongoDB compatibility\n===============================================\n\nThis guide takes you through the step-by-step process of migrating your\nMongoDB-compatible source database to a Firestore with MongoDB\ncompatibility database with minimal downtime.\n\nAbout the migration process\n---------------------------\n\nThe migration process has the following stages:\n\n1. **Preparation**: You create resources required for the migration and set up\n environment variables that will be used to run commands at later stages of\n the migration process.\n\n2. **Import from the MongoDB-compatible source database**: You use the\n Datastream service to capture the contents of your\n MongoDB-compatible source database and transfer them into a\n Cloud Storage bucket.\n\n3. **Write data to Firestore with MongoDB compatibility\n database**: You use the Dataflow\n service to transfer data from the Cloud Storage bucket into a\n Firestore with MongoDB compatibility database.\n\n This Dataflow pipeline will run concurrently with the\n Datastream stream that is pulling data from the\n MongoDB-compatible source database.\n4. **Migrate traffic to Firestore**: At the appropriate point\n in the procedure, you migrate your application read and write traffic to\n the Firestore with MongoDB compatibility database and stop\n the migration pipeline.\n\nThe following diagram summarizes the migration process:\n\nYour MongoDB-compatible source database remains in a serving state while the data transfer\ntakes place:\n\n- The Datastream process captures both data at rest and change events.\n- There will be a short period of partial unavailability when you have to shut\n down write traffic to your source database. During this period, the\n remainder of the change events is replicated to Firestore.\n\n- After the replication completes, the Firestore with MongoDB\n compatibility database can become the new source of truth for your\n application workload. All read and write traffic can be directed to the new\n database.\n\nDetailed migration steps\n------------------------\n\nThis section describes the migration in more detail.\n\nThe Datastream service creates a stream between a source and a\ndestination. In this case, the source is your current MongoDB-compatible\ndeployment, while the destination is Cloud Storage. This process has\nthe following steps:\n\n1. [Create a source Datastream connection profile](/firestore/mongodb-compatibility/docs/migrate-create-connection-profiles)\n for your Mongo source. Specific instructions depend on the type and the way\n your MongoDB-compatible source is deployed.\n\n2. [Create a Cloud Storage bucket](/firestore/mongodb-compatibility/docs/migrate-configure-resources#create-bucket)\n that will receive the data and the change events from your\n MongoDB-compatible source database.\n\n3. [Create a destination Datastream connection profile](/firestore/mongodb-compatibility/docs/migrate-create-connection-profiles#connection-profile-storage)\n that uses this Cloud Storage bucket.\n\n4. [Create and actuate a Datastream stream](/firestore/mongodb-compatibility/docs/migrate-import-from-source)\n that connects the source connection profile to the destination connection\n profile.\n\n5. [Initiate a Dataflow pipeline](/firestore/mongodb-compatibility/docs/migrate-write-to-destination) to begin injecting the\n captured data into your Firestore with MongoDB\n compatibility database.\n\n6. [Monitor the stream](/firestore/mongodb-compatibility/docs/migrate-traffic#migration-completion-milestones)\n to identify important milestones in the migration process to determine\n whether any errors were encountered during the data transfer.\n\n7. When it's appropriate,\n [shut down write traffic](/firestore/mongodb-compatibility/docs/migrate-traffic#shut-down-write-traffic)\n to the source database. After all data, including recent changes, was\n replicated to the Firestore with MongoDB compatibility\n database, redirect read traffic to the new destination.\n\n8. [Enable write traffic](/firestore/mongodb-compatibility/docs/migrate-traffic#migrate-write-traffic)\n to your Firestore with MongoDB compatibility database.\n\nAbout code examples\n-------------------\n\nCode examples in this guide are meant to be executed one after another. This\nguide assumes that you configure your environment by setting up all environment\nvariables beforehand. Afterwards, you execute commands required for the\nmigration that use the already configured environment variables. We recommend\nto use this approach. Because many commands use same environment variables, you\ncan reduce the chance of introducing errors between different stages of the\nmigration process.\n\nAs an alternative, you can replace the variables in command examples with the\nsame values that you set for corresponding environment variables.\n\nLimitations\n-----------\n\nFirestore with MongoDB compatibility has the following limitations:\n\n- Firestore doesn't support the following BSON types:\n\n - Undefined\n - DBPointer\n - JavaScript\n - Symbol\n- Firestore has the following restrictions on the `_id` field:\n\n - ObjectIDs, Longs, and Strings in the document `_id` field are supported.\n - 0L as `_id` is not supported.\n- Firestore has a 4MB document size limit.\n\nIf any of your data contains the listed conditions:\n\n- We recommend to address these conditions in your dataset before starting the\n migration process.\n\n- If you choose to proceed without changes, then documents that are affected by\n the limitations will fail writing to Firestore and will be\n sidelined.\n You can decide on how these documents must be handled. If they are\n converted to supported types, values, or sizes, they can be reprocessed.\n\nDatastream has the following requirements:\n\n- The minimum major version of MongoDB supported by\n Datastream is 4.0. For some minor versions, there are\n minimum patch versions that are supported:\n\n - 4.0.21\n - 4.2.10\n - 4.4.2\n- Your MongoDB cluster must support Change Streams. Your MongoDB deployment\n must be configured as a\n [replica set](https://www.mongodb.com/docs/manual/replication/) or a\n [sharded cluster](https://www.mongodb.com/docs/manual/sharding/) for Change\n Streams to be enabled.\n\nWhat's next\n-----------\n\nProceed to\n[Configure resources for migration](/firestore/mongodb-compatibility/docs/migrate-configure-resources)."]]