Delen via


Zelfstudie: MongoDB offline migreren naar de API van Azure Cosmos DB voor MongoDB met behulp van systeemeigen MongoDB-hulpprogramma's

VAN TOEPASSING OP: MongoDB

Belangrijk

Lees deze volledige handleiding voordat u de migratiestappen uitvoert.

Deze MongoDB-migratiehandleiding maakt deel uit van de reeks over MongoDB-migratie. De kritieke MongoDB-migratiestappen zijn premigratie, migratie en postmigratie, zoals hieronder wordt weergegeven.

Diagram van migratiestappen.

Overzicht van gegevensmigratie met behulp van systeemeigen MongoDB-hulpprogramma's

U kunt systeemeigen MongoDB-hulpprogramma's gebruiken om een offline (eenmalige) migratie van databases uit te voeren van een on-premises of cloudexemplaren van MongoDB naar de API van Azure Cosmos DB voor MongoDB.

In deze zelfstudie leert u het volgende:

  • Kies het juiste systeemeigen MongoDB-hulpprogramma voor uw use-case
  • De migratie uitvoeren.
  • Houd de migratie in de gaten.
  • Controleer of de migratie is geslaagd.

In deze zelfstudie migreert u een gegevensset in MongoDB die wordt gehost op een virtuele Azure-machine naar de API van Azure Cosmos DB voor MongoDB met behulp van systeemeigen MongoDB-hulpprogramma's. De systeemeigen MongoDB-hulpprogramma's zijn een set binaire bestanden die het bewerken van gegevens op een bestaand MongoDB-exemplaar vergemakkelijken. Omdat Azure Cosmos DB een API voor MongoDB beschikbaar maakt, kunnen de systeemeigen MongoDB-hulpprogramma's gegevens invoegen in Azure Cosmos DB. De focus van dit document ligt op het migreren van gegevens uit een MongoDB-exemplaar met behulp van mongoexport/mongoimport of mongodump/mongorestore. Omdat de systeemeigen hulpprogramma's verbinding maken met MongoDB met behulp van verbindingsreeks s, kunt u de hulpprogramma's overal uitvoeren, maar we raden u aan deze hulpprogramma's uit te voeren in hetzelfde netwerk als het MongoDB-exemplaar om firewallproblemen te voorkomen.

De systeemeigen MongoDB-hulpprogramma's kunnen gegevens alleen zo snel verplaatsen als de hosthardware toestaat; de systeemeigen hulpprogramma's kunnen de eenvoudigste oplossing zijn voor kleine gegevenssets waarbij de totale migratietijd geen probleem is. MongoDB Spark-connector, Azure Data Migration Service (DMS) of Azure Data Factory (ADF) kunnen betere alternatieven zijn als u een schaalbare migratiepijplijn nodig hebt.

Als u nog geen MongoDB-bron hebt ingesteld, raadpleegt u het artikel over het installeren en configureren van MongoDB op een Windows-VM in Azure.

Vereisten

Voor het voltooien van deze zelfstudie hebt u het volgende nodig:

  • Voltooi de stappen voorafgaand aan de migratie, zoals het schatten van de doorvoer of het kiezen van een partitiesleutel en het indexeringsbeleid.
  • Maak een Azure Cosmos DB voor MongoDB-account.
  • Aanmelden bij uw MongoDB-exemplaar
    • Download en installeer de systeemeigen MongoDB-hulpprogramma's via deze koppeling.
      • Zorg ervoor dat uw systeemeigen MongoDB-hulpprogrammaversie overeenkomt met uw bestaande MongoDB-exemplaar.
      • Als uw MongoDB-exemplaar een andere versie heeft dan Azure Cosmos DB voor MongoDB, installeert u beide systeemeigen mongoDB-hulpprogrammaversies en gebruikt u respectievelijk de juiste hulpprogrammaversie voor MongoDB en Azure Cosmos DB voor MongoDB.
    • Voeg een gebruiker met readWrite machtigingen toe, tenzij er al een bestaat. Geef verderop in deze zelfstudie deze gebruikersnaam/wachtwoord op voor de hulpprogramma's mongoexport en mongodump .

Nieuwe pogingen aan de serverzijde van Azure Cosmos DB configureren

Klanten die van MongoDB migreren naar Azure Cosmos DB profiteren van mogelijkheden voor resourcebeheer, waardoor de mogelijkheid wordt gegarandeerd om uw ingerichte RU/s van doorvoer volledig te gebruiken. Azure Cosmos DB kan een bepaalde aanvraag in de loop van de migratie beperken als die aanvraag de ingerichte RU/s van de container overschrijdt; dan moet die aanvraag opnieuw worden geprobeerd. De retourtijd die betrokken is bij de netwerkhop tussen het migratiehulpprogramma en Azure Cosmos DB heeft invloed op de totale reactietijd van die aanvraag; bovendien kunnen systeemeigen MongoDB-hulpprogramma's geen nieuwe pogingen verwerken. Met de functie Voor opnieuw proberen aan de serverzijde van Azure Cosmos DB kan de service foutcodes onderscheppen en opnieuw proberen met een veel lagere retourtijd, waardoor de reactietijden van aanvragen aanzienlijk worden verbeterd. Vanuit het perspectief van systeemeigen MongoDB-hulpprogramma's is de noodzaak om nieuwe pogingen af te handelen geminimaliseerd, wat uw ervaring tijdens de migratie positief zal beïnvloeden.

U vindt de mogelijkheid voor opnieuw proberen aan de serverzijde op de blade Functies van de Azure Cosmos DB-portal

Schermopname van de MongoDB SSR-functie.

En als het is uitgeschakeld, raden we u aan deze in te schakelen, zoals hieronder wordt weergegeven

Schermopname van MongoDB SSR inschakelen.

Het juiste systeemeigen MongoDB-hulpprogramma kiezen

Diagram van het selecteren van het beste systeemeigen MongoDB-hulpprogramma.

  • mongoexport/mongoimport is het beste paar migratiehulpprogramma's voor het migreren van een subset van uw MongoDB-database.
    • mongoexport exporteert uw bestaande gegevens naar een door mensen leesbaar JSON- of CSV-bestand. mongoexport gebruikt een argument waarin de subset van uw bestaande gegevens wordt opgegeven die u wilt exporteren.
    • mongoimport opent een JSON- of CSV-bestand en voegt de inhoud in het doeldatabase-exemplaar in (In dit geval Azure Cosmos DB).)
    • JSON en CSV zijn geen compacte indelingen; Er kunnen extra netwerkkosten in rekening worden gebracht wanneer mongoimport gegevens naar Azure Cosmos DB verzendt.
  • mongodump/mongorestore is het beste paar migratiehulpprogramma's voor het migreren van uw hele MongoDB-database. De compacte BSON-indeling maakt efficiënter gebruik van netwerkresources wanneer de gegevens worden ingevoegd in Azure Cosmos DB.
    • mongodump exporteert uw bestaande gegevens als een BSON-bestand.
    • mongorestore importeert uw BSON-bestandsdump in Azure Cosmos DB.
  • Als u gewoon een klein JSON-bestand hebt dat u wilt importeren in Azure Cosmos DB voor MongoDB, is het mongoimport-hulpprogramma een snelle oplossing voor het opnemen van de gegevens.

De Azure Cosmos DB voor MongoDB-referenties verzamelen

Azure Cosmos DB voor MongoDB biedt compatibele toegangsreferenties die door mongoDB systeemeigen hulpprogramma's kunnen worden gebruikt. U moet deze toegangsreferenties bij de hand hebben om gegevens te migreren naar Azure Cosmos DB voor MongoDB. Ga als volgt te werk om deze referenties te vinden:

  1. Open Azure Portal

  2. Navigeer naar uw Azure Cosmos DB voor MongoDB-account

  3. Selecteer in het linkernavigatievenster de blade Verbindingsreeks en u ziet een weergave die vergelijkbaar is met de onderstaande:

    Schermopname van Azure Cosmos DB-referenties.

    • HOST : het Azure Cosmos DB-eindpunt fungeert als een MongoDB-hostnaam
    • PORT : wanneer systeemeigen MongoDB-hulpprogramma's verbinding maken met Azure Cosmos DB, moet u deze poort expliciet opgeven
    • USERNAME : het voorvoegsel van de Domeinnaam van het Azure Cosmos DB-eindpunt als de MongoDB-gebruikersnaam
    • WACHTWOORD : de Hoofdsleutel van Azure Cosmos DB fungeert als mongoDB-wachtwoord
    • Let ook op het SSL-veld . true Het systeemeigen MongoDB-hulpprogramma moet SSL inschakelen bij het schrijven van gegevens in Azure Cosmos DB

De migratie uitvoeren

  1. Kies welke database(s) en verzamelingen u wilt migreren. In dit voorbeeld migreren we de queryverzameling in de edx-database van MongoDB naar Azure Cosmos DB.

De rest van deze sectie begeleidt u bij het gebruik van de hulpprogramma's die u in de vorige sectie hebt geselecteerd.

mongoexport/mongoimport

  1. Als u de gegevens wilt exporteren uit het MongoDB-bronexemplaren, opent u een terminal op de MongoDB-exemplaarcomputer. Als het een Linux-computer is, typt u

    mongoexport --host HOST:PORT --authenticationDatabase admin -u USERNAME -p PASSWORD --db edx --collection query --out edx.json
    

    In vensters is mongoexport.exehet uitvoerbare bestand. HOST, PORT, USERNAME en PASSWORD moeten worden ingevuld op basis van de eigenschappen van uw bestaande MongoDB-database-exemplaar.

    U kunt er ook voor kiezen om alleen een subset van de MongoDB-gegevensset te exporteren. Een manier om dit te doen, is door een extra filterargument toe te voegen:

    mongoexport --host HOST:PORT --authenticationDatabase admin -u USERNAME -p PASSWORD --db edx --collection query --out edx.json --query '{"field1":"value1"}'
    

    Alleen documenten die overeenkomen met het filter {"field1":"value1"} worden geëxporteerd.

    Nadat u de aanroep hebt uitgevoerd, ziet u dat er een edx.json bestand wordt geproduceerd:

    Schermopname van mongoexport-aanroep.

  2. U kunt dezelfde terminal gebruiken om te importeren edx.json in Azure Cosmos DB. Als u op een Linux-computer werkt mongoimport , typt u

    mongoimport --host HOST:PORT -u USERNAME -p PASSWORD --db edx --collection importedQuery --ssl --type json --writeConcern="{w:0}" --file edx.json
    

    In Windows is mongoimport.exehet uitvoerbare bestand. Host, POORT, GEBRUIKERSNAAM en WACHTWOORD moeten worden ingevuld op basis van de Azure Cosmos DB-referenties die u eerder hebt verzameld.

  3. Bewaak de terminaluitvoer van mongoimport. U ziet dat er tekstregels naar de terminal worden afgedrukt met updates over de migratiestatus:

    Schermopname van mongoimport-aanroep.

  4. Controleer ten slotte Azure Cosmos DB om te controleren of de migratie is geslaagd. Open de Azure Cosmos DB-portal en navigeer naar Data Explorer. U ziet (1) dat er een edx-database met een geïmporteerdeQuery-verzameling is gemaakt en (2) als u alleen een subset met gegevens hebt geëxporteerd, moet geïmporteerdeQuery alleen documenten bevatten die overeenkomen met de gewenste subset van de gegevens. In het onderstaande voorbeeld komt slechts één document overeen met het filter {"field1":"value1"}:

    Schermopname van Azure Cosmos DB-gegevensverificatie.

mongodump/mongorestore

  1. Als u een BSON-gegevensdump van uw MongoDB-exemplaar wilt maken, opent u een terminal op de MongoDB-exemplaarcomputer. Als het een Linux-computer is, typt u

    mongodump --host HOST:PORT --authenticationDatabase admin -u USERNAME -p PASSWORD --db edx --collection query --ssl --out edx-dump
    

    HOST, PORT, USERNAME en PASSWORD moeten worden ingevuld op basis van de eigenschappen van uw bestaande MongoDB-database-exemplaar. U ziet dat er een edx-dump map wordt geproduceerd en dat de mapstructuur van edx-dump de resourcehiërarchie (database en verzamelingsstructuur) van uw MongoDB-bronexemplaren wordt gereproduceerd. Elke verzameling wordt vertegenwoordigd door een BSON-bestand:

    Schermopname van mongodump-aanroep.

  2. U kunt dezelfde terminal gebruiken om de inhoud van edx-dump azure Cosmos DB te herstellen. Als u op een Linux-computer werkt mongorestore , typt u

    mongorestore --host HOST:PORT --authenticationDatabase admin -u USERNAME -p PASSWORD --db edx --collection importedQuery --writeConcern="{w:0}" --ssl edx-dump/edx/query.bson
    

    In Windows is mongorestore.exehet uitvoerbare bestand. Host, POORT, GEBRUIKERSNAAM en WACHTWOORD moeten worden ingevuld op basis van de Azure Cosmos DB-referenties die u eerder hebt verzameld.

  3. Bewaak de terminaluitvoer van mongorestore. U ziet dat er lijnen worden afgedrukt naar de terminal die wordt bijgewerkt over de migratiestatus:

    Schermopname van mongorestore-aanroep.

  4. Controleer ten slotte Azure Cosmos DB om te controleren of de migratie is geslaagd. Open de Azure Cosmos DB-portal en navigeer naar Data Explorer. U ziet (1) dat er een edx-database met een geïmporteerdeQuery-verzameling is gemaakt en (2) geïmporteerdeQuery moet de volledige gegevensset uit de bronverzameling bevatten:

    Schermopname van het verifiëren van Mongorestore-gegevens in Azure Cosmos DB.

Optimalisatie na migratie

Nadat u de gegevens die zijn opgeslagen in de MongoDB-database, hebt gemigreerd naar de Azure Cosmos DB voor MongoDB-API, kunt u verbinding maken met Azure Cosmos DB en de gegevens beheren. U kunt na de migratie ook andere optimalisatiestappen uitvoeren, zoals het indexeringsbeleid optimaliseren, het standaardconsistentieniveau bijwerken, of de globale distributie configureren voor uw Azure Cosmos DB-account. Zie het artikel Optimalisatie na migratie voor meer informatie.

Aanvullende bronnen

Volgende stappen