A MongoDB-ből a MongoDB-hez készült Azure Cosmos DB-be történő adatmigrálás előfeltételei

A KÖVETKEZŐKRE VONATKOZIK: MongoDB

Fontos

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

Ez a MongoDB migrálás előtti ú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, ahogyan az ebben az útmutatóban látható.

Diagram of the migration steps from pre to post migration.

A migrálás előtti áttekintés

Az adatok tényleges áthelyezése előtt kritikus fontosságú bizonyos előzetes tervezést és döntéshozatalt végezni a migrálással kapcsolatban. Ez a kezdeti döntéshozatali folyamat a "migrálás előtti".

A migrálás előtti cél a következő:

  1. Győződjön meg arról, hogy az Azure Cosmos DB-t úgy állította be, hogy megfeleljen az alkalmazás követelményeinek, és
  2. Tervezze meg, hogyan hajtja végre a migrálást.

Kövesse az alábbi lépéseket az alapos migrálás előtt

  1. A meglévő MongoDB-erőforrások felderítése és a meglévő MongoDB-erőforrások felkészültségének felmérése az adatmigráláshoz
  2. Meglévő MongoDB-erőforrások leképezése új Azure Cosmos DB-erőforrásokra
  3. A teljes körű adatmigrálás megkezdése előtt tervezze meg a migrálási folyamat teljes körű logisztikát

Ezután hajtsa végre a migrálást az áttelepítés előtti tervnek megfelelően.

Végül végezze el az átállás és az optimalizálás kritikus, áttelepítés utáni lépéseit.

A fenti lépések mindegyike kritikus fontosságú a sikeres migrálás biztosításához.

Migrálás tervezésekor javasoljuk, hogy amikor csak lehetséges, erőforrásonként tervezze meg.

Migrálás előtti értékelés

Az első migrálás előtti lépés a meglévő MongoDB-erőforrások felderítése és az erőforrások migrálásra való felkészültségének felmérése.

A felderítés magában foglalja a MongoDB-adattulajdonban lévő meglévő erőforrások (adatbázisok vagy gyűjtemények) átfogó listájának létrehozását.

Az értékelés magában foglalja annak megállapítását, hogy a támogatott funkciókat és szintaxist használja-e. Emellett azt is magában foglalja, hogy betartja a korlátokat és a kvótákat. Ennek a szakasznak a célja az inkompatibilitások és figyelmeztetések listájának létrehozása, ha vannak ilyenek. Miután elvégezte az értékelési eredményeket, megpróbálhatja kezelni az eredményeket a migrálási tervezés többi része során.

A migrálás előtti értékelés végrehajtásának három módja van. Javasoljuk, hogy használja az Azure Cosmos DB Migration for MongoDB bővítményt.

Azure Cosmos DB Migration for MongoDB bővítmény

Az Azure Data Studio Azure Cosmos DB Migration for MongoDB bővítménye segít felmérni a MongoDB számítási feladatait a MongoDB-hez készült Azure Cosmos DB-be való migráláshoz. Ezzel a bővítménysel végpontok közötti értékelést futtathat a számítási feladaton, és megtudhatja, hogy milyen műveleteket kell végrehajtania a számítási feladatok zökkenőmentes migrálásához az Azure Cosmos DB-ben. A MongoDB-végpont értékelése során a bővítmény az összes felderített erőforrást jelenti.

Megjegyzés:

Javasoljuk, hogy részletesen tekintse át a támogatott funkciókat és szintaxist, az Azure Cosmos DB korlátait és kvótáit , valamint végezzen el egy megvalósíthatósági igazolást a tényleges migrálás előtt.

Manuális felderítés (örökölt)

Másik lehetőségként létrehozhat egy adattulajdon migrálási számolótábláját. Ennek a számolótáblának a célja a hatékonyság növelése, valamint a teljes körű migrálás megtervezése és nyomon követési dokumentumként való használata a migrálási folyamat során.

  • Ez a lap a MongoDB-adattulajdonban lévő meglévő erőforrások (adatbázisok vagy gyűjtemények) átfogó listáját tartalmazza.
  • A számolótáblát az adattulajdon-erőforrások rekordjaként kell strukturálni lista formában.
  • Minden sor egy erőforrásnak (adatbázisnak vagy gyűjteménynek) felel meg.
  • Minden oszlop az erőforrás egy tulajdonságának felel meg; legalább névvel és adatmérettel (GB) kezdődhet oszlopként.
  • Az útmutató végighaladtával ezt a számolótáblát egy nyomkövetési dokumentumba építheti a végpontok közötti migrálás tervezéséhez, és szükség szerint oszlopokat adhat hozzá.

Az alábbiakban néhány eszközt használhat az erőforrások felderítéséhez:

Tekintse át a számolótáblát, és ellenőrizze az egyes gyűjteményeket a támogatott funkciók és szintaxis, valamint az Azure Cosmos DB korlátai és kvótái alapján.

Database Migration Assistant segédprogram (örökölt)

Megjegyzés:

A Database Migration Assistant egy régi segédprogram, amellyel segítséget nyújthat az áttelepítés előtti lépésekhez. Javasoljuk, hogy az Azure Cosmos DB Migration for MongoDB bővítményt használja az összes áttelepítés előtti lépéshez.

A Database Migration Assistant (DMA) segédprogrammal segítséget nyújthat a migrálás előtti lépésekhez.

Áttelepítés előtti leképezés

A felderítési és értékelési lépések elvégzése után az egyenlet MongoDB-oldalán végezhet. Itt az ideje megtervezni az egyenlet Azure Cosmos DB-oldalát. Hogyan tervezi az éles Azure Cosmos DB-erőforrások beállítását és konfigurálását? Végezze el a tervezést erőforrás-szinten – ez azt jelenti, hogy a következő oszlopokat kell hozzáadnia a tervezési számolótáblához:

  • Azure Cosmos DB-leképezés
  • Szegmenskulcs
  • Adatmodell
  • Dedikált és megosztott átviteli sebesség

További részleteket a következő szakaszokban találhat.

Kapacitástervezés

Kapacitástervezést szeretne végezni az Azure Cosmos DB-be való migráláshoz?

Szempontok az Azure Cosmos DB MongoDB-hez készült API-jának használatakor

Az Azure Cosmos DB-adattulajdon megtervezése előtt győződjön meg arról, hogy tisztában van az Alábbi Azure Cosmos DB-fogalmakkal:

  • Kapacitásmodell: Az Azure Cosmos DB adatbázis-kapacitása egy átviteli sebességen alapuló modellen alapul. Ez a modell másodpercenkénti kérelemegységeken alapul, amely egy olyan egység, amely a gyűjteményen másodpercenként végrehajtható adatbázis-műveletek számát jelöli. Ez a kapacitás lefoglalható adatbázis- vagy gyűjteményszinten, és kiosztható egy foglalási modellen, vagy az automatikusan kiosztott átviteli sebesség használatával.
  • Kérelemegységek: Minden adatbázis-művelethez tartozik egy kérelemegységek (KÉRELEM) költsége az Azure Cosmos DB-ben. A végrehajtáskor a kérelemegységeket a rendszer kivonja a rendelkezésre álló kérelemegység-szintből egy adott másodpercen. Ha egy kérelemhez több kérelemegységre van szükség, mint a jelenleg lefoglalt RU/s, két lehetőség van a probléma megoldására : növelje a kérelemegységek számát, vagy várja meg a következő másodperc kezdetét, majd próbálkozzon újra a művelettel.
  • Rugalmas kapacitás: Egy adott gyűjtemény vagy adatbázis kapacitása bármikor változhat. Ez a rugalmasság lehetővé teszi, hogy az adatbázis rugalmasan alkalmazkodjon a számítási feladat átviteli sebességére vonatkozó követelményekhez.
  • Automatikus skálázás: Az Azure Cosmos DB olyan automatikus particionálási rendszert biztosít, amely csak szegmenst (vagy partíciókulcsot) igényel. Az automatikus particionálási mechanizmus az összes Azure Cosmos DB API-ban meg van osztva, és lehetővé teszi a zökkenőmentes adatok használatát és a horizontális elosztáson keresztüli skálázást.

Az Azure Cosmos DB-adattulajdon megtervezése

Megtudhatja, hogy milyen Azure Cosmos DB-erőforrásokat hoz létre. Ehhez a folyamathoz át kell lépnie az adattulajdon migrálási számolótábláján, és le kell leképeznie az egyes meglévő MongoDB-erőforrásokat egy új Azure Cosmos DB-erőforrásra.

  • Várható, hogy minden MongoDB-adatbázis Azure Cosmos DB-adatbázissá válik.
  • Várható, hogy minden MongoDB-gyűjtemény Azure Cosmos DB-gyűjtemény lesz.
  • Válasszon egy elnevezési konvenciót az Azure Cosmos DB-erőforrásokhoz. Az azonos erőforrásnevek megtartása általában jó választás, hacsak nem változik az adatbázisok és gyűjtemények struktúrája.
  • Határozza meg, hogy szilánkos vagy nem horizontális gyűjteményeket használ-e az Azure Cosmos DB-ben. A szegmens nélküli gyűjteménykorlát 20 GB. A horizontális horizontális skálázás viszont segít olyan horizontális skálázást elérni, amely számos számítási feladat teljesítménye szempontjából kritikus fontosságú.
  • Ha szegmenses gyűjteményeket használ, ne feltételezze, hogy a MongoDB-gyűjtemény szegmenskulcsa lesz az Azure Cosmos DB tárolópartíciós kulcsa. Ne feltételezze, hogy a mongoDB-adatmodell dokumentumstruktúrájának az Azure Cosmos DB-ben alkalmazott modellnek kell lennie.
    • A szegmenskulcs az Azure Cosmos DB méretezhetőségének és teljesítményének optimalizálására szolgáló egyetlen legfontosabb beállítás, az adatmodellezés pedig a második legfontosabb beállítás. Mindkét beállítás nem módosítható, és a beállítás után nem módosítható; ezért nagyon fontos, hogy optimalizálja őket a tervezési fázisban. További információért kövesse a nem módosítható döntések szakasz útmutatását.
  • Az Azure Cosmos DB nem ismer fel bizonyos MongoDB-gyűjteménytípusokat, például a leképezett gyűjteményeket. Ezekhez az erőforrásokhoz egyszerűen hozzon létre normál Azure Cosmos DB-gyűjteményeket.
  • Az Azure Cosmos DB kétféle gyűjteménytípussal rendelkezik– megosztott és dedikált átviteli sebességgel. A megosztott és a dedikált átviteli sebesség egy másik kritikus, megváltoztathatatlan döntés, amelyet létfontosságú a tervezési fázisban hozni. További információért kövesse a nem módosítható döntések szakasz útmutatását.

Nem módosítható döntések

Az Alábbi Azure Cosmos DB-konfigurációs lehetőségek nem módosíthatók vagy vonhatók vissza az Azure Cosmos DB-erőforrás létrehozása után; ezért fontos, hogy ezeket a konfigurációs lehetőségeket közvetlenül a migrálás előtti tervezés során, a migrálás megkezdése előtt szerezze be:

  • A legjobb szegmenskulcs kiválasztásához tekintse meg a particionálást és a horizontális skálázást az Azure Cosmos DB-ben . A particionálás, más néven horizontális skálázás kulcsfontosságú szempont az adatok migrálása előtt. Az Azure Cosmos DB teljes körűen felügyelt particionálással növeli az adatbázis kapacitását a tárolási és átviteli sebesség követelményeinek való megfelelés érdekében. Ehhez a funkcióhoz nincs szükség útválasztási kiszolgálók üzemeltetésére vagy konfigurálásához.
    • Hasonló módon a particionálási képesség automatikusan hozzáad kapacitást, és ennek megfelelően újraegyensúlyozza az adatokat. További információ az adatokhoz megfelelő partíciókulcs kiválasztásáról: partíciókulcs kiválasztása.
  • Az Adatmodellezés az Azure Cosmos DB-ben című útmutatót követve válasszon ki egy adatmodellt.
  • Kövesse az Azure Cosmos DB-ben kiosztott átviteli sebesség optimalizálását az egyes áttelepített erőforrások dedikált és megosztott átviteli sebességének kiválasztásához
  • Az Adatok azure Cosmos DB-ben való modellezése és particionálása valós példaként szolgáló skálázást és adatmodellezést jelent, amely segít a döntéshozatalban

A tulajdonjog költsége

Az átviteli sebesség becslése

  • Az Azure Cosmos DB-ben az átviteli sebesség előre ki van építve, és másodpercenkénti kérelemegységekben (KÉRELEM)van mérve. A virtuális gépektől és a helyszíni kiszolgálóktól eltérően a kérelemegységek bármikor egyszerűen fel- és leskálázhatók. A kiosztott kérelemegységek számát azonnal módosíthatja. További információ: Kérelemegységek az Azure Cosmos DB-ben.

  • Az Azure Cosmos DB kapacitáskalkulátorával meghatározhatja a használni kívánt kérelemegységek számát. Ez a szám az adatbázisfiók konfigurációján, az adatok mennyiségén, a dokumentumméreten, valamint a szükséges olvasási és írási műveleteken alapul másodpercenként.

  • A szükséges kérelemegységek számát befolyásoló főbb tényezők a következők:

    • Dokumentumméret: Az elem/dokumentum méretének növekedésével az elem/dokumentum olvasásához vagy írásához felhasznált kérelemegységek száma is nő.

    • Dokumentumtulajdonságok száma:A dokumentumok létrehozásához vagy frissítéséhez felhasznált kérelemegységek száma a tulajdonságok számához, összetettségéhez és hosszához kapcsolódik. Az indexelt tulajdonságok számának korlátozásával csökkentheti az írási műveletek kérelemegység-felhasználását.

    • Lekérdezési minták: A lekérdezés összetettsége befolyásolja, hogy a lekérdezés hány kérelemegységet használ fel.

  • A lekérdezések költségének megértéséhez a legjobb módszer a mintaadatok használata az Azure Cosmos DB-ben, és minta lekérdezések futtatása a MongoDB Shellből a getLastRequestStastistics kérelem díjának lekérésére szolgáló paranccsal, amely a felhasznált kérelemegységek számát adja ki:

    db.runCommand({getLastRequestStatistics: 1})
    

    *Ez a parancs az alábbi példához hasonló JSON-dokumentumot ad ki:

    {
      "_t": "GetRequestStatisticsResponse",
      "ok": 1,
      "CommandName": "find",
      "RequestCharge": 10.1,
      "RequestDurationInMilliSeconds": 7.2
    }
    
  • A diagnosztikai beállítások segítségével az Azure Cosmos DB-ben végrehajtott lekérdezések gyakoriságát és mintáit is megismerheti. A diagnosztikai naplók eredményei elküldhetők egy tárfiókba, egy Event Hubs-példányba vagy az Azure Log Analyticsbe.

Migrálás előtti logisztikai tervezés

Végül, most, hogy már megtekintheti a meglévő adattulajdonát és az új Azure Cosmos DB-adattulajdon tervezését, készen áll arra, hogy megtervezze a migrálási folyamat végpontok közötti végrehajtását. Ismét végezze el a tervezést erőforrás-szinten , és adjon hozzá oszlopokat a számolótáblához az ebben a szakaszban szereplő logisztikai dimenziók rögzítéséhez.

Végrehajtási logisztika

  • Az egyes meglévő erőforrások MongoDB-ből Azure Cosmos DB-be való migrálásával kapcsolatos felelősség hozzárendelése. Önön múlik, hogyan alkalmazhatja csapaterőforrásait a migrálás befejezéséhez. Kisebb migrálások esetén egyetlen csapat indíthatja el a teljes migrálást, és figyelheti annak előrehaladását. Nagyobb migrálások esetén erőforrásonként hozzárendelheti a csapattagok felelősségét az erőforrás migrálásához és monitorozásához.

  • Miután hozzárendelte az erőforrások migrálásának felelősségét, most válassza ki a megfelelő migrálási eszközt(ok) az áttelepítéshez. Kis méretű migrálások esetén előfordulhat, hogy egyetlen migrálási eszköz, például a MongoDB natív eszköze vagy az Azure DMS segítségével egyetlen lövéssel migrálhatja az összes erőforrást. Nagyobb áttelepítések vagy speciális követelményekkel rendelkező migrálások esetén érdemes erőforrásonkénti részletességű migrálási eszközt választani.

    • Mielőtt megtervezi a használni kívánt migrálási eszközöket, javasoljuk, hogy ismerkedjen meg az elérhető lehetőségekkel. Az Azure Cosmos DB MongoDB-hez készült API-jához készült Azure Database Migration Service egy olyan mechanizmust biztosít, amely leegyszerűsíti az adatmigrálást egy teljes körűen felügyelt üzemeltetési platform, a migrálás monitorozási lehetőségei és az automatikus szabályozás kezelése révén. Íme a lehetőségek teljes listája:

      Migrálás típusa Megoldás Considerations
      Online Azure Database Migration Service • A tömeges végrehajtói kódtárat használja az Azure Cosmos DB-hez
      • Alkalmas nagy adathalmazokhoz, és gondoskodik az élő módosítások replikálásáról
      • Csak más MongoDB-forrásokkal működik
      Offline Azure Database Migration Service • A tömeges végrehajtói kódtárat használja az Azure Cosmos DB-hez
      • Alkalmas nagy adathalmazokhoz, és gondoskodik az élő módosítások replikálásáról
      • Csak más MongoDB-forrásokkal működik
      Offline Azure Data Factory • A tömeges végrehajtói kódtárat használja az Azure Cosmos DB-hez
      • Alkalmas nagy adathalmazokhoz
      • Egyszerűen beállítható és támogat több forrást
      • Az ellenőrzőpontok hiánya azt jelenti, hogy a migrálás során felmerülő problémákhoz a teljes migrálási folyamat újraindítása szükséges
      • A kézbesítetlen levelek várólistájának hiánya azt jelentené, hogy néhány hibás fájl leállíthatja a teljes migrálási folyamatot
      • Egyéni kódra van szükség bizonyos adatforrások olvasási sebességének növeléséhez
      Offline Meglévő Mongo Tools (mongodump, mongorestore, Studio3T) • Könnyen beállítható és integrálás
      • A szabályozásokhoz egyéni kezelésre van szükség
      Offline/online Azure Databricks és Spark • A migrálási sebesség és az adatátalakítás teljes ellenőrzése
      • Egyéni kódolást igényel
    • Ha az erőforrás el tudja viselni az offline migrálást, használja ezt a diagramot a megfelelő migrálási eszköz kiválasztásához:

      Diagram of using offline migration tools based on the size of the tool.

    • Ha az erőforrás online migrálást igényel, ezt a diagramot használva válassza ki a megfelelő migrálási eszközt:

      Diagram of using online migration tools based on preference for turnkey or custom solutions.

    • Tekintse meg a migrálási megoldások videójának áttekintését és bemutatóját.

  • Miután kiválasztotta az egyes erőforrásokhoz tartozó migrálási eszközöket, a következő lépés az áttelepítendő erőforrások rangsorolása. A megfelelő rangsorolás segíthet a migrálás ütemezésének megtartásában. Jó gyakorlat az erőforrások migrálásának rangsorolása, amelyhez a legtöbb időt kell áthelyezni; az erőforrások migrálása először a legnagyobb előrehaladást hozza a befejezés felé. Emellett mivel ezek az időigényes migrálások általában több adatot tartalmaznak, erőforrásigényesebbek az áttelepítési eszköz számára, ezért nagyobb valószínűséggel jelennek meg a migrálási folyamattal kapcsolatos problémák. Ez a gyakorlat minimálisra csökkenti annak az esélyét, hogy az ütemterv csúszik a migrálási folyamat esetleges nehézségei miatt.

  • Tervezze meg, hogyan monitorozza a migrálás előrehaladását a kezdés után. Ha egy csapat között koordinálja az adatmigrálási erőfeszítéseket, tervezze meg a csapatszinkronizálások rendszeres ütemezését is, hogy átfogó képet nyújthass a magas prioritású migrálások menetéről.

Támogatott áttelepítési szituációk

A MongoDB migrálási eszközének legjobb választása a migrálási forgatókönyvtől függ.

A migrálás típusai

Íme a kompatibilis eszközök listája az egyes migrálási forgatókönyvekhez:

Source Destination Folyamatjavaslat
• MongoDB helyszíni fürt
• MongoDB IaaS virtuálisgép-fürtön
• MongoDB Atlas-fürt – Offline
Azure Cosmos DB Mongo API • <10 GB-os adatok: MongoDB natív eszközök
• <1 TB-os adatok: Azure DMS
• >1 TB-os adatok: Spark
• MongoDB helyszíni fürt
• MongoDB IaaS virtuálisgép-fürtön
• MongoDB Atlas-fürt – Online
Azure Cosmos DB Mongo API • <1 TB-os adatok: Azure DMS
• >1 TB-os adatok: Spark + Mongo Changestream
• A migrálás során módosítania kell a sémát
Nagyobb rugalmasságra van szükség, mint a fent említett eszközökre
Azure Cosmos DB Mongo API • Az ADF rugalmasabb, mint a DMS, támogatja a sémamódosításokat a migrálás során, és támogatja a legtöbb forrás-cél kombinációt
• A DMS nagyobb léptékben jobb (például gyorsabb migrálás)
• JSON-fájl Azure Cosmos DB Mongo API • MongoDB natív eszközök kifejezetten mongoimport
• CSV-fájl Azure Cosmos DB Mongo API • MongoDB natív eszközök kifejezetten mongoimport
• BSON-fájl Azure Cosmos DB Mongo API • MongoDB natív eszközök kifejezetten mongorestore

Eszköztámogatás a MongoDB-verziókhoz

Mivel egy adott MongoDB-verzióról migrál, az egyes verziók támogatott eszközei a következők:

MongoDB-forrásverzió A MongoDB-hez készült Azure Cosmos DB célverziója Támogatott eszközök Nem támogatott eszközök
<2.x, >4.0 3.2, 3.6, 4.0 MongoDB natív eszközök, Spark DMS, ADF
3.2, 3.6, 4.0 3.2, 3.6, 4.0 MongoDB natív eszközök, DMS, ADF, Spark None

A migrálás után

A migrálás előtti szakaszban szánjon egy kis időt az alkalmazásmigrálás és az optimalizálás utáni lépések megtervezésére.

  • A migrálás utáni fázisban végrehajtja az alkalmazás átállását, hogy a meglévő MongoDB-adattulajdon helyett az Azure Cosmos DB-t használja.
  • Minden tőle telhetőt megtesz annak érdekében, hogy erőforrásszinten megtervezze az indexelést, a globális elosztást, a konzisztenciát és az egyéb , módosítható Azure Cosmos DB-tulajdonságokat. Ezek az Azure Cosmos DB-konfigurációs beállítások azonban később módosíthatók, ezért várhatóan később módosítja ezeket a beállításokat. Ezeket a mutable konfigurációkat a migrálás után kell alkalmazni.
  • A migrálás utáni útmutatót az Azure Cosmos DB MongoDB-hez készült API-jának használatakor a migrálás utáni optimalizálási lépésekben találja.

Következő lépések