Sdílet prostřednictvím


Kroky předběžné migrace dat z MongoDB do Služby Azure Cosmos DB pro MongoDB

PLATÍ PRO: MongoDB

Důležité

Než provedete kroky před migrací, přečtěte si prosím celou příručku.

Tento průvodce před migrací MongoDB je součástí série o migraci MongoDB. Důležité kroky migrace MongoDB jsou před migrací, migrací a po migraci, jak je znázorněno v tomto průvodci.

Diagram of the migration steps from pre to post migration.

Přehled předběžné migrace

Než skutečně přesunete nějaká data, je důležité provést určité počáteční plánování a rozhodování o migraci. Tento počáteční rozhodovací proces je "před migrací".

Vaším cílem před migrací je:

  1. Ujistěte se, že jste nastavili službu Azure Cosmos DB tak, aby splňovala požadavky vaší aplikace, a
  2. Naplánujte způsob provedení migrace.

Pokud chcete provést důkladnou předběžnou migraci, postupujte podle těchto kroků.

  1. Objevte stávající prostředky MongoDB a vyhodnoťte připravenost stávajících prostředků MongoDB na migraci dat.
  2. Mapování stávajících prostředků MongoDB na nové prostředky Azure Cosmos DB
  3. Před zahájením úplné migrace dat naplánujte logistiku procesu migrace.

Pak proveďte migraci v souladu s vaším plánem před migrací.

Nakonec proveďte kritické kroky po migraci, které se týkají přímé migrace a optimalizace.

Všechny výše uvedené kroky jsou nezbytné pro zajištění úspěšné migrace.

Při plánování migrace doporučujeme, abyste kdykoli je to možné, na úrovni jednotlivých prostředků.

Posouzení před migrací

Prvním krokem před migrací je zjištění stávajících prostředků MongoDB a posouzení připravenosti vašich prostředků na migraci.

Zjišťování zahrnuje vytvoření komplexního seznamu existujících prostředků (databází nebo kolekcí) v datových aktivech MongoDB.

Posouzení zahrnuje zjištění, jestli používáte podporované funkce a syntaxi. Zahrnuje také to, že dodržujete limity a kvóty. Cílem této fáze je vytvořit seznam nekompatibility a upozornění, pokud existuje. Jakmile budete mít výsledky posouzení, můžete se pokusit vyřešit zjištění během plánování migrace.

Posouzení před migrací můžete dokončit 3 způsoby. Doporučujeme použít rozšíření Migrace služby Azure Cosmos DB pro MongoDB.

Migrace služby Azure Cosmos DB pro rozšíření MongoDB

Rozšíření Migrace služby Azure Cosmos DB pro MongoDB v Nástroji Azure Data Studio vám pomůže vyhodnotit úlohu MongoDB pro migraci do služby Azure Cosmos DB pro MongoDB. Toto rozšíření můžete použít ke spuštění komplexního posouzení vaší úlohy a zjištění akcí, které možná budete muset provést k bezproblémové migraci úloh ve službě Azure Cosmos DB. Během posuzování koncového bodu MongoDB rozšíření hlásí všechny zjištěné prostředky.

Poznámka:

Doporučujeme podrobně projít podporované funkce a syntaxi, limity a kvóty služby Azure Cosmos DB a provést testování konceptu před samotnou migrací.

Ruční zjišťování (starší verze)

Případně můžete vytvořit tabulku migrace datových aktiv. Účelem této tabulky je zvýšit produktivitu a pomoct naplánovat migraci od konce do konce a použít ji jako dokument pro sledování v průběhu procesu migrace.

  • Tento list obsahuje úplný seznam existujících prostředků (databází nebo kolekcí) ve vašich datových aktivech MongoDB.
  • Tabulka by měla být strukturovaná jako záznam vašich prostředků datových aktiv ve formuláři seznamu.
  • Každý řádek odpovídá prostředku (databázi nebo kolekci).
  • Každý sloupec odpovídá vlastnosti prostředku; začněte alespoň názvem a velikostí dat (GB) jako sloupci.
  • Při procházení tohoto průvodce sestavíte tuto tabulku do dokumentu sledování pro kompletní plánování migrace a podle potřeby přidáte sloupce.

Tady je několik nástrojů, které můžete použít ke zjišťování prostředků:

Projděte si tabulku a ověřte jednotlivé kolekce s podporovanými funkcemi a syntaxí a podrobně limity a kvóty služby Azure Cosmos DB.

Nástroj Pomocník s migrací databáze (starší verze)

Poznámka:

Databázová Pomocník s migrací je starší nástroj, který vám pomůže s kroky před migrací. Doporučujeme použít rozšíření Migrace služby Azure Cosmos DB pro MongoDB pro všechny kroky před migrací.

Nástroj Database Pomocník s migrací (DMA) vám může pomoct s kroky před migrací.

Mapování před migrací

Po dokončení postupu zjišťování a posouzení máte na straně MongoDB rovnice hotovo. Teď je čas naplánovat stranu azure Cosmos DB rovnice. Jak plánujete nastavit a nakonfigurovat produkční prostředky služby Azure Cosmos DB? Proveďte plánování na úrovni jednotlivých zdrojů – to znamená, že byste do plánovací tabulky měli přidat následující sloupce:

  • Mapování služby Azure Cosmos DB
  • Klíč horizontálního dělení
  • Datový model
  • Vyhrazená a sdílená propustnost

Další podrobnosti najdete v následujících částech.

Plánování kapacity

Pokoušíte se naplánovat kapacitu migrace do služby Azure Cosmos DB?

Důležité informace o používání rozhraní API služby Azure Cosmos DB pro MongoDB

Před plánováním datových aktiv služby Azure Cosmos DB se ujistěte, že rozumíte následujícím konceptům služby Azure Cosmos DB:

  • Model kapacity: Kapacita databáze ve službě Azure Cosmos DB je založená na modelu založeném na propustnosti. Tento model je založený na jednotkách žádostí za sekundu, což je jednotka, která představuje počet databázových operací, které je možné spouštět v kolekci za sekundu. Tuto kapacitu je možné přidělit na úrovni databáze nebo kolekce a je možné ji zřídit v modelu přidělování nebo pomocí zřízené propustnosti automatického škálování.
  • Jednotky žádostí: Každá operace databáze má přidružené náklady na jednotky žádostí (RU) ve službě Azure Cosmos DB. Při spuštění se jednotky žádosti odečtou od dostupné úrovně jednotek žádostí za danou sekundu. Pokud požadavek vyžaduje více RU než aktuálně přidělená RU/s, existují dvě možnosti, jak tento problém vyřešit – zvýšit počet RU nebo počkat na další spuštění a pak operaci zopakovat.
  • Elastická kapacita: Kapacita pro danou kolekci nebo databázi se může kdykoli změnit. Tato flexibilita umožňuje databázi elasticky přizpůsobit požadavkům vaší úlohy na propustnost.
  • Automatické horizontální dělení: Azure Cosmos DB poskytuje systém automatického dělení, který vyžaduje jenom horizontální oddíl (nebo klíč oddílu). Mechanismus automatického dělení se sdílí napříč všemi rozhraními API služby Azure Cosmos DB a umožňuje bezproblémová data a v celém škálování prostřednictvím horizontální distribuce.

Plánování datových aktiv služby Azure Cosmos DB

Zjistěte, jaké prostředky Azure Cosmos DB vytvoříte. Tento proces vyžaduje krokování v tabulce migrace datových aktiv a mapování jednotlivých existujících prostředků MongoDB na nový prostředek Azure Cosmos DB.

  • Předpovídejte, že každá databáze MongoDB se stane databází Azure Cosmos DB.
  • Předvídejte, že každá kolekce MongoDB se stane kolekcí Azure Cosmos DB.
  • Zvolte zásady vytváření názvů pro vaše prostředky Azure Cosmos DB. Zachování stejných názvů prostředků je obvykle v pořádku, pokud nedojde ke změnám struktury databází a kolekcí.
  • Určete, jestli ve službě Azure Cosmos DB používáte dělené nebo neshardované kolekce. Limit nehardované kolekce je 20 GB. Horizontální dělení na druhou stranu pomáhá dosáhnout horizontálního škálování, které je důležité pro výkon mnoha úloh.
  • Pokud používáte dělené kolekce, nepředpokládáme, že klíč horizontálního oddílu kolekce MongoDB se stane klíčem oddílu kontejneru Azure Cosmos DB. Nepředpokládáme, že stávající struktura dokumentů datového modelu MongoDB by měla být stejný model, který používáte ve službě Azure Cosmos DB.
    • Klíč horizontálního dělení je jediné nejdůležitější nastavení pro optimalizaci škálovatelnosti a výkonu služby Azure Cosmos DB a modelování dat je druhé nejdůležitější. Obě tato nastavení jsou neměnná a po nastavení není možné je změnit. proto je velmi důležité je optimalizovat ve fázi plánování. Další informace najdete v pokynech v části Neměnná rozhodnutí .
  • Azure Cosmos DB nerozpozná určité typy kolekcí MongoDB, jako jsou omezené kolekce. Pro tyto prostředky stačí vytvořit normální kolekce Azure Cosmos DB.
  • Azure Cosmos DB má dva vlastní typy kolekcí – sdílenou a vyhrazenou propustnost. Sdílená a vyhrazená propustnost je dalším důležitým, neměnným rozhodnutím, které je důležité provést ve fázi plánování. Další informace najdete v pokynech v části Neměnná rozhodnutí .

Neměnná rozhodnutí

Následující volby konfigurace služby Azure Cosmos DB není možné po vytvoření prostředku Azure Cosmos DB upravit ani vrátit zpět. Proto je důležité, abyste tyto volby konfigurace získali přímo během plánování před migrací, než začnete s migrací:

Náklady na vlastnictví

  • Odhad nákladů na vlastnictví nových prostředků Azure Cosmos DB pomocí kalkulačky kapacity služby Azure Cosmos DB

Odhad propustnosti

  • Ve službě Azure Cosmos DB se propustnost zřizuje předem a měří se v jednotkách žádostí (RU) za sekundu. Na rozdíl od virtuálních počítačů nebo místních serverů je snadné vertikálně navýšit nebo snížit kapacitu RU kdykoliv. Počet zřízených RU můžete okamžitě změnit. Další informace najdete v tématu Jednotky žádostí ve službě Azure Cosmos DB.

  • K určení počtu jednotek žádostí, které byste měli použít, můžete použít kalkulačku kapacity služby Azure Cosmos DB. Toto číslo vychází z konfigurace účtu databáze, množství dat, velikosti dokumentu a požadovaných čtení a zápisů za sekundu.

  • Následují klíčové faktory, které ovlivňují počet požadovaných RU:

    • Velikost dokumentu: S rostoucí velikostí položky nebo dokumentu se zvyšuje také počet RU spotřebovaných ke čtení nebo zápisu položky nebo dokumentu.

    • Počet vlastností dokumentu: Počet RU spotřebovaných k vytvoření nebo aktualizaci dokumentu souvisí s počtem, složitostí a délkou jeho vlastností. Spotřebu jednotek žádosti pro operace zápisu můžete snížit omezením počtu indexovaných vlastností.

    • Vzory dotazů: Složitost dotazu ovlivňuje, kolik jednotek požadavků dotaz spotřebuje.

  • Nejlepším způsobem, jak porozumět nákladům na dotazy, je použít ukázková data ve službě Azure Cosmos DB a spouštět ukázkové dotazy z prostředí MongoDB Shell pomocí getLastRequestStastistics příkazu k získání poplatku za požadavek, který vypíše počet spotřebovaných RU:

    db.runCommand({getLastRequestStatistics: 1})
    

    *Tento příkaz vypíše dokument JSON podobný následujícímu příkladu:

    {
      "_t": "GetRequestStatisticsResponse",
      "ok": 1,
      "CommandName": "find",
      "RequestCharge": 10.1,
      "RequestDurationInMilliSeconds": 7.2
    }
    
  • Nastavení diagnostiky můžete také použít k pochopení četnosti a vzorů dotazů spuštěných ve službě Azure Cosmos DB. Výsledky z diagnostických protokolů je možné odeslat do účtu úložiště, instance služby Event Hubs nebo Azure Log Analytics.

Plánování logistiky před migrací

Nakonec, když teď máte přehled o stávajících datových aktivech a návrhu nových datových aktiv Služby Azure Cosmos DB, jste připraveni naplánovat, jak provést proces migrace. Znovu proveďte plánování na úrovni jednotlivých prostředků a přidejte do tabulky sloupce, abyste zachytili logistické dimenze zahrnuté v této části.

Logistika provádění

  • Přiřaďte odpovědnost za migraci jednotlivých existujících prostředků z MongoDB do služby Azure Cosmos DB. Jak použijete týmové prostředky, abyste mohli přivést migraci na dokončení, je na vás. U malých migrací můžete mít jeden tým, který zahájí celou migraci, a sledovat jeho průběh. U větších migrací můžete členům týmu přiřadit odpovědnost za migraci a monitorování daného prostředku na základě jednotlivých prostředků.

  • Jakmile přiřadíte zodpovědnost za migraci prostředků, měli byste teď zvolit správné nástroje pro migraci. U malých migrací můžete k migraci všech prostředků použít jeden nástroj pro migraci, jako je nativní nástroj MongoDB nebo Azure DMS. U větších migrací nebo migrací se zvláštními požadavky můžete zvolit nástroje pro migraci s podrobnostmi pro jednotlivé prostředky.

    • Než začnete plánovat, které nástroje pro migraci použít, doporučujeme seznámit se s dostupnými možnostmi. Azure Database Migration Service pro rozhraní API služby Azure Cosmos DB pro MongoDB poskytuje mechanismus, který zjednodušuje migraci dat tím, že poskytuje plně spravovanou platformu pro hostování, možnosti monitorování migrace a automatické zpracování omezování. Tady je úplný seznam možností:

      Typ migrace Řešení Důležité informace
      Online Azure Database Migration Service • Používá knihovnu bulk Executor pro službu Azure Cosmos DB.
      • Vhodné pro velké datové sady a postará se o replikaci živých změn.
      • Funguje pouze s jinými zdroji MongoDB
      Offline Azure Database Migration Service • Používá knihovnu bulk Executor pro službu Azure Cosmos DB.
      • Vhodné pro velké datové sady a postará se o replikaci živých změn.
      • Funguje pouze s jinými zdroji MongoDB
      Offline Azure Data Factory • Používá knihovnu bulk Executor pro službu Azure Cosmos DB.
      • Vhodné pro velké datové sady
      • Snadné nastavení a podpora více zdrojů
      • Nedostatek kontrolních bodů znamená, že jakýkoli problém během migrace by vyžadoval restartování celého procesu migrace.
      • Nedostatek fronty nedoručených zpráv by znamenalo, že by několik chybných souborů mohlo zastavit celý proces migrace.
      • Vyžaduje vlastní kód ke zvýšení propustnosti čtení pro určité zdroje dat.
      Offline Existující nástroje Mongo (mongodump, mongorestore, Studio3T) • Snadné nastavení a integrace
      • Vyžaduje vlastní zpracování pro omezení
      Offline/online Azure Databricks a Spark • Úplná kontrola rychlosti migrace a transformace dat
      • Vyžaduje vlastní kódování.
    • Pokud váš prostředek dokáže tolerovat offline migraci, použijte tento diagram k výběru vhodného nástroje pro migraci:

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

    • Pokud váš prostředek vyžaduje online migraci, použijte tento diagram k výběru vhodného nástroje pro migraci:

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

    • Podívejte se na přehled a ukázku videa o řešeních migrace.

  • Po výběru nástrojů pro migraci pro jednotlivé prostředky je dalším krokem stanovení priority prostředků, které budete migrovat. Dobré stanovení priorit vám může pomoct udržet migraci podle plánu. Osvědčeným postupem je určit prioritu migrace těchto prostředků, které je potřeba přesunout nejvíce času; migrace těchto prostředků nejprve přinese největší pokrok směrem k dokončení. Vzhledem k tomu, že tyto časově náročné migrace obvykle zahrnují více dat, jsou pro nástroj pro migraci náročnější na prostředky, a proto jsou s větší pravděpodobností vystaveny problémům s vaším kanálem migrace dříve. Tento postup minimalizuje pravděpodobnost, že váš plán uklouzne z důvodu jakýchkoli potíží s vaším kanálem migrace.

  • Naplánujte, jak budete sledovat průběh migrace, jakmile začne. Pokud koordinujete úsilí o migraci dat mezi týmem, naplánujte pravidelnou frekvenci synchronizace týmů, abyste měli komplexní přehled o tom, jak migrace s vysokou prioritou probíhají.

Podporované scénáře migrace

Nejlepší volba nástroje pro migraci MongoDB závisí na vašem scénáři migrace.

Typy migrací

Tady je seznam kompatibilních nástrojů pro každý scénář migrace:

Zdroj Cíl Doporučení procesu
• Místní cluster MongoDB
• MongoDB na clusteru virtuálních počítačů IaaS
• Cluster MongoDB Atlas – offline
Azure Cosmos DB Mongo API • <10GB data: Nativní nástroje MongoDB
• <1TB data: Azure DMS
• >1TB data: Spark
• Místní cluster MongoDB
• MongoDB na clusteru virtuálních počítačů IaaS
• Cluster MongoDB Atlas – Online
Azure Cosmos DB Mongo API • <1TB data: Azure DMS
• >1TB data: Spark + Mongo Changestream
• Během migrace je potřeba změnit schéma.
Potřebujete větší flexibilitu než výše uvedené nástroje.
Azure Cosmos DB Mongo API • ADF je flexibilnější než DMS, podporuje úpravy schématu během migrace a podporuje většinu kombinací zdroje a cíle.
• DMS je lepší z hlediska škálování (např. rychlejší migrace)
• Soubor JSON Azure Cosmos DB Mongo API • Nativní nástroje MongoDB speciálně mongoimport
• Soubor CSV Azure Cosmos DB Mongo API • Nativní nástroje MongoDB speciálně mongoimport
• BSON soubor Azure Cosmos DB Mongo API • Nativní nástroje MongoDB speciálně mongorestore

Podpora nástrojů pro verze MongoDB

Vzhledem k tomu, že migrujete z konkrétní verze MongoDB, jsou tady uvedené podporované nástroje pro každou verzi:

Zdrojová verze MongoDB Cílová verze služby Azure Cosmos DB pro MongoDB Podporované nástroje Nepodporované nástroje
<2.x, >4.0 3.2, 3.6, 4.0 Nativní nástroje MongoDB, Spark DMS, ADF
3.2, 3.6, 4.0 3.2, 3.6, 4.0 Nativní nástroje MongoDB, DMS, ADF, Spark Nic

Po migraci

Ve fázi před migrací věnujte určitou dobu plánování kroků, které provedete při migraci aplikací a optimalizaci po migraci.

  • Ve fázi po migraci spustíte přímou aplikaci, která místo existujícího datového majetku MongoDB použije službu Azure Cosmos DB.
  • Snažte se naplánovat indexování, globální distribuci, konzistenci a další proměnlivé vlastnosti služby Azure Cosmos DB na úrovni jednotlivých prostředků. Tato nastavení konfigurace služby Azure Cosmos DB se ale dají později upravit, proto je můžete později očekávat, že provedete úpravy těchto nastavení. Tyto proměnlivé konfigurace použijete po migraci.
  • Průvodce po migraci najdete v tématu Postup optimalizace po migraci při použití rozhraní API služby Azure Cosmos DB pro MongoDB.

Další kroky