Share via


Oktatóanyag: MongoDB offline migrálása az Azure Cosmos DB MongoDB-hez készült API-jára natív MongoDB-eszközökkel

A KÖVETKEZŐKRE VONATKOZIK: MongoDB

Fontos

A migrálási lépések végrehajtása előtt olvassa el ezt a teljes útmutatót.

Ez a MongoDB-migrálási útmutató a MongoDB-migrálásról szóló sorozat része. A MongoDB kritikus migrálási lépései a migrálás előtti, a migrálás utáni és a migrálás utáni lépések, ahogy az alább látható.

A migrálási lépések ábrája.

Az adatmigrálás áttekintése a MongoDB natív eszközeivel

A MongoDB natív eszközeivel offline (egyszeri) migrálhatja az adatbázisokat a MongoDB helyszíni vagy felhőalapú példányáról az Azure Cosmos DB MongoDB API-jára.

Eben az oktatóanyagban az alábbiakkal fog megismerkedni:

  • Válassza ki a megfelelő natív MongoDB-eszközt a használati esethez
  • A migrálás futtatása.
  • Az áttelepítés monitorozása.
  • Ellenőrizze, hogy a migrálás sikeres volt-e.

Ebben az oktatóanyagban egy Azure-beli virtuális gépen üzemeltetett MongoDB-adatkészletet migrál a MongoDB-hez készült Azure Cosmos DB API-ba natív MongoDB-eszközökkel. A MongoDB natív eszközei bináris fájlok, amelyek megkönnyítik az adatok kezelését egy meglévő MongoDB-példányon. Mivel az Azure Cosmos DB elérhetővé tesz egy API-t a MongoDB-hez, a natív MongoDB-eszközök képesek adatokat beszúrni az Azure Cosmos DB-be. A dokumentum középpontjában az adatok mongoDB-példányból való migrálása áll a mongoexport/mongoimport vagy a mongodump/mongorestore használatával. Mivel a natív eszközök kapcsolati sztringek használatával csatlakoznak a MongoDB-hez, bárhol futtathatja az eszközöket, azonban javasoljuk, hogy a tűzfalproblémák elkerülése érdekében futtassa ezeket az eszközöket ugyanazon a hálózaton belül, mint a MongoDB-példány.

A MongoDB natív eszközei csak olyan gyorsan helyezhetik át az adatokat, amilyen gyorsan a gazdagép hardvere lehetővé teszi; a natív eszközök lehetnek a legegyszerűbb megoldások kis adathalmazok esetében, ahol a teljes migrálási idő nem jelent problémát. A MongoDB Spark-összekötő, az Azure Data Migration Service (DMS) vagy a Azure Data Factory (ADF) jobb alternatívát jelenthet, ha méretezhető migrálási folyamatra van szüksége.

Ha még nincs beállítva MongoDB-forrás, olvassa el a MongoDB telepítése és konfigurálása Windows rendszerű virtuális gépen az Azure-ban című cikket.

Előfeltételek

Az oktatóanyag elvégzéséhez a következőkre lesz szüksége:

  • Végezze el az áttelepítés előtti lépéseket, például az átviteli sebesség becslését, a partíciókulcs kiválasztását és az indexelési szabályzatot.
  • Hozzon létre egy MongoDB-fiókhoz készült Azure Cosmos DB-fiókot.
  • Bejelentkezés a MongoDB-példányba
    • Töltse le és telepítse a MongoDB natív eszközeit erről a hivatkozásról.
      • Győződjön meg arról, hogy a MongoDB natív eszközeinek verziója megegyezik a meglévő MongoDB-példánnyal.
      • Ha a MongoDB-példány más verziójú, mint a MongoDB-hez készült Azure Cosmos DB, telepítse a MongoDB natív eszközverzióit, és használja a MongoDB és a MongoDB-hez készült Azure Cosmos DB megfelelő eszközverzióját.
    • Adjon hozzá egy engedélyekkel rendelkező readWrite felhasználót, kivéve, ha már létezik ilyen. Az oktatóanyag későbbi részében adja meg ezt a felhasználónevet/jelszót a mongoexport és a mongodump eszközöknek.

Az Azure Cosmos DB kiszolgálóoldali újrapróbálkozásainak konfigurálása

A MongoDB-ből az Azure Cosmos DB-be migráló ügyfelek számára előnyös az erőforrás-szabályozási képesség, amely garantálja a kiosztott RU/s teljes kihasználtságát. Az Azure Cosmos DB szabályozhat egy adott kérést a migrálás során, ha a kérés meghaladja a tároló által kiépített RU/s-t; ezt a kérést újra meg kell próbálni. A migrálási eszköz és az Azure Cosmos DB közötti hálózati ugrásban érintett oda-vissza idő hatással van a kérés teljes válaszidejára; továbbá előfordulhat, hogy a MongoDB natív eszközei nem kezelik az újrapróbálkozásokat. Az Azure Cosmos DB kiszolgálóoldali újrapróbálkozási funkciója lehetővé teszi, hogy a szolgáltatás elfogja a szabályozási hibakódokat, és sokkal alacsonyabb menetidővel próbálkozzon újra, ami jelentősen javítja a kérések válaszidejét. A MongoDB natív eszközei szempontjából az újrapróbálkozások kezelésének szükségessége minimálisra csökken, ami pozitív hatással lesz a migrálás során tapasztalt élményre.

A kiszolgálóoldali újrapróbálkozás képességet az Azure Cosmos DB portál Szolgáltatások paneljén találja

Képernyőkép a MongoDB SSR funkcióról.

Ha pedig le van tiltva, javasoljuk, hogy engedélyezze az alábbi módon

Képernyőkép a MongoDB SSR engedélyezéséről.

A megfelelő MongoDB natív eszköz kiválasztása

Diagram a legjobb MongoDB natív eszköz kiválasztásáról.

  • A mongoexport/mongoimport a legjobb migrálási eszközpár a MongoDB-adatbázis egy részhalmazának áttelepítéséhez.
    • A mongoexport exportálja a meglévő adatokat egy emberi olvasásra alkalmas JSON- vagy CSV-fájlba. A mongoexport egy argumentumot használ, amely a meglévő exportálandó adatok részhalmazát adja meg.
    • A mongoimport megnyit egy JSON- vagy CSV-fájlt, és beszúrja a tartalmat a céladatbázis-példányba (ebben az esetben az Azure Cosmos DB-be).
    • Vegye figyelembe, hogy a JSON és a CSV nem kompakt formátum; többlet hálózati díjak merülhetnek fel, mivel a Mongoimport adatokat küld az Azure Cosmos DB-nek.
  • A mongodump/mongorestore a migrálási eszközök legjobb párja a teljes MongoDB-adatbázis áttelepítéséhez. A kompakt BSON formátum hatékonyabbá teszi a hálózati erőforrások használatát az adatok Azure Cosmos DB-be való beszúrásakor.
    • A mongodump a meglévő adatokat BSON-fájlként exportálja.
    • A mongorestore importálja a BSON-fájlképet az Azure Cosmos DB-be.
  • Ha egyszerűen csak egy kis JSON-fájllal rendelkezik, amelyet a MongoDB-hez készült Azure Cosmos DB-be szeretne importálni, a mongoimport eszköz gyors megoldás az adatok betöltésére.

A MongoDB-hez készült Azure Cosmos DB hitelesítő adatainak gyűjtése

A MongoDB-hez készült Azure Cosmos DB kompatibilis hozzáférési hitelesítő adatokat biztosít, amelyeket a MongoDB natív eszközei használhatnak. Az adatok MongoDB-hez készült Azure Cosmos DB-be való migrálásához szükség lesz ezekre a hozzáférési hitelesítő adatokra. A hitelesítő adatok megkeresése:

  1. Nyissa meg az Azure Portalt

  2. Lépjen a MongoDB-hez készült Azure Cosmos DB-fiókhoz

  3. A bal oldali navigációs sávon válassza a Kapcsolati sztring panelt, és az alábbihoz hasonló kijelzőnek kell megjelennie:

    Képernyőkép az Azure Cosmos DB hitelesítő adatairól.

    • HOST – Az Azure Cosmos DB-végpont MongoDB-állomásnévként működik
    • PORT – amikor a MongoDB natív eszközei csatlakoznak az Azure Cosmos DB-hez, explicit módon meg kell adnia ezt a portot
    • USERNAME – Az Azure Cosmos DB-végpont tartománynevének előtagja MongoDB-felhasználónévként működik
    • PASSWORD – Az Azure Cosmos DB főkulcsa MongoDB-jelszóként működik
    • Emellett jegyezze fel az SSL-mezőt , amely a true MongoDB natív eszközének engedélyeznie kell az SSL-t, amikor adatokat ír az Azure Cosmos DB-be

A migrálás végrehajtása

  1. Válassza ki, hogy mely adatbázis(oka)t és gyűjtemény(ek)et szeretné migrálni. Ebben a példában az edx adatbázis lekérdezésgyűjteményét migráljuk a MongoDB-ből az Azure Cosmos DB-be.

A szakasz többi része végigvezeti az előző szakaszban kiválasztott eszközpáron.

mongoexport/mongoimport

  1. Ha a forrás MongoDB-példányból szeretné exportálni az adatokat, nyisson meg egy terminált a MongoDB-példány gépén. Ha linuxos gépről van szó, írja be a

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

    Az ablakokban a végrehajtható fájl lesz mongoexport.exe. A GAZDAGÉP, PORT, FELHASZNÁLÓNÉV és JELSZÓ mezőket a meglévő MongoDB-adatbázispéldány tulajdonságai alapján kell kitölteni.

    Dönthet úgy is, hogy csak a MongoDB-adatkészlet egy részét exportálja. Ennek egyik módja egy további szűrőargumentum hozzáadása:

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

    Csak a szűrőnek {"field1":"value1"} megfelelő dokumentumok lesznek exportálva.

    A hívás végrehajtása után látnia kell, hogy létrejön egy edx.json fájl:

    Képernyőkép a mongoexport hívásról.

  2. Ugyanazt a terminált használhatja az Azure Cosmos DB-be való importáláshoz edx.json . Ha Linux rendszerű gépen fut mongoimport , írja be a következőt:

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

    Windows rendszeren a végrehajtható fájl lesz mongoimport.exe. A GAZDAGÉP, PORT, FELHASZNÁLÓNÉV és JELSZÓ mezőket a korábban gyűjtött Azure Cosmos DB-hitelesítő adatok alapján kell kitölteni.

  3. Monitorozza a mongoimport terminálkimenetét. Látnia kell, hogy szövegsorokat nyomtat ki a terminálra, amely tartalmazza az áttelepítési állapot frissítéseit:

    Képernyőkép a mongoimport hívásról.

  4. Végül vizsgálja meg az Azure Cosmos DB-t annak ellenőrzéséhez , hogy a migrálás sikeres volt-e. Nyissa meg az Azure Cosmos DB portált, és lépjen a Data Explorer. Látnia kell (1) egy importáltQuery-gyűjteménysel rendelkező edx-adatbázis létrehozását, és (2) ha csak az adatok egy részét exportálta, az importált Lekérdezések csak az adatok kívánt részhalmazának megfelelő dokumentumokat tartalmazhatnak. Az alábbi példában csak egy dokumentum felelt meg a szűrőnek {"field1":"value1"}:

    Képernyőkép az Azure Cosmos DB-adatok ellenőrzéséről.

mongodump/mongorestore

  1. A MongoDB-példány BSON-adatképének létrehozásához nyisson meg egy terminált a MongoDB-példány gépén. Ha linuxos gépről van szó, írja be a

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

    A GAZDAGÉP, PORT, FELHASZNÁLÓNÉV és JELSZÓ mezőket a meglévő MongoDB-adatbázispéldány tulajdonságai alapján kell kitölteni. Látnia kell, hogy létrejön egy edx-dump könyvtár, és hogy a könyvtárszerkezet edx-dump reprodukálja a forrás MongoDB-példány erőforráshierarchiáját (adatbázis- és gyűjteménystruktúráját). Minden gyűjteményt egy BSON-fájl jelöl:

    A mongodump hívás képernyőképe.

  2. Ugyanezzel a terminálal visszaállíthatja a tartalmát edx-dump az Azure Cosmos DB-be. Ha Linux rendszerű gépen fut mongorestore , írja be a következőt:

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

    Windows rendszeren a végrehajtható fájl a következő lesz mongorestore.exe: . A gazdagépet, a PORTot, a FELHASZNÁLÓNEVET és a JELSZÓT a korábban gyűjtött Azure Cosmos DB-hitelesítő adatok alapján kell kitölteni.

  3. Monitorozza a mongorestore terminálkimenetét. Látnia kell, hogy a program sorokat nyomtat a terminál frissítésére a migrálási állapotban:

    A mongorestore-hívás képernyőképe.

  4. Végül vizsgálja meg az Azure Cosmos DB-t annak ellenőrzéséhez , hogy a migrálás sikeres volt-e. Nyissa meg az Azure Cosmos DB portált, és lépjen a Data Explorer. Látnia kell (1) egy importáltQuery-gyűjteményt tartalmazó edx-adatbázist, és (2) az importedQuerynek tartalmaznia kell a forrásgyűjtemény teljes adatkészletét:

    Képernyőkép az Azure Cosmos DB mongorestore-adatainak ellenőrzéséről.

Migrálás utáni optimalizálás

Miután migrálta a MongoDB-adatbázisban tárolt adatokat az Azure Cosmos DB MongoDB API-jára, csatlakozhat az Azure Cosmos DB-hez, és kezelheti az adatokat. A migrálás utáni optimalizálási lépéseket is elvégezheti, például optimalizálhatja az indexelési szabályzatot, frissítheti az alapértelmezett konzisztenciaszintet, vagy konfigurálhatja az Azure Cosmos DB-fiók globális terjesztését. További információkért lásd a migrálás utáni optimalizálási cikket.

További források

Következő lépések