Kopírování úloh ve službě Azure Cosmos DB (Preview)
Kopírování dat ve službě Azure Cosmos DB můžete provádět pomocí úloh kopírování kontejneru.
Pokud chcete dosáhnout některého z těchto scénářů, budete možná muset zkopírovat data ze svého účtu služby Azure Cosmos DB:
- Kopírování všech položek z jednoho kontejneru do druhého
- Změňte členitost zřizování propustnosti z databáze na kontejner a naopak.
- Změna klíče oddílu kontejneru
- Aktualizace jedinečných klíčů pro kontejner
- Přejmenujte kontejner nebo databázi.
- Změňte režim kapacity účtu z bezserverové na zřízený nebo naopak.
- Přijměte nové funkce, které jsou podporovány pouze pro nové kontejnery, například hierarchické klíče oddílů.
Úlohy kopírování je možné vytvářet a spravovat pomocí příkazů Azure CLI.
Začínáme
Pokud chcete začít s online kopírováním kontejnerů pro účty rozhraní API služby Azure Cosmos DB for NoSQL, zaregistrujte příznak funkce Online kopírování kontejnerů (NoSQL) ve verzi Preview na webu Azure Portal. Po dokončení registrace je verze Preview platná pro všechny účty rozhraní API NoSQL v předplatném.
Požadavky
- Povolte průběžné zálohování u zdrojového účtu služby Azure Cosmos DB.
- Zaregistrujte se pro všechny verze a odstraňte funkci náhledu režimu kanálu změn v předplatném zdrojového účtu.
Důležité
Za všechny operace zápisu do zdrojového kontejneru se budou účtovat dvojité ru, aby se zachovaly předchozí i aktuální verze změn položek v kontejneru. Toto zvýšení poplatků za RU se může v budoucnu změnit.
Kopírování dat kontejneru
- Vytvořte cílový kontejner Azure Cosmos DB pomocí nastavení, která chcete použít (klíč oddílu, členitost propustnosti, jednotky žádostí, jedinečný klíč atd.).
- Vytvořte úlohu kopírování kontejneru.
- Monitorujte průběh úlohy kopírování.
- Po zkopírování všech dokumentů zastavte aktualizace zdrojového kontejneru a pak zavolejte rozhraní API pro dokončování, které označí úlohu jako dokončenou.
- Pokračujte v operacích tím, že aplikaci nebo klienta odpovídajícím způsobem nasměrujte na zdrojový nebo cílový kontejner.
Jak funguje kopírování kontejneru?
- Platforma přiděluje cílovému účtu služby Azure Cosmos DB výpočetní instance na straně serveru ke spuštění úloh kopírování kontejneru.
- V každém okamžiku se spustí jedna úloha ve všech instancích.
- Online úlohy kopírování využívají všechny verze a odstraňují režim kanálu změn ke kopírování dat a replikaci přírůstkových změn ze zdrojového kontejneru do cílového kontejneru.
- Po dokončení úlohy platforma zruší přidělení těchto instancí po 15 minutách nečinnosti.
Offline úlohy kopírování kolekce můžete provádět pro kopírování dat ve stejném účtu Služby Azure Cosmos DB pro Mongo DB.
Kopírování dat kolekce
- Vytvořte cílovou kolekci Azure Cosmos DB pomocí nastavení, která chcete použít (klíč oddílu, členitost propustnosti, jednotky žádostí, jedinečný klíč atd.).
- Zastavte operace ve zdrojové kolekci pozastavením instancí aplikace nebo všech klientů, kteří se k ní připojují.
- Vytvořte úlohu kopírování.
- Sledujte průběh úlohy kopírování a počkejte, až se dokončí.
- Pokračujte v operacích tím, že odpovídajícím způsobem nasměrujte aplikaci nebo klienta na zdroj nebo cílovou kolekci podle očekávání.
Poznámka:
Důrazně doporučujeme, abyste před zahájením offline úlohy kopírování kolekce přestali provádět všechny operace ve zdrojové kolekci. Odstranění položek a aktualizace provedené ve zdrojové kolekci po spuštění úlohy kopírování nemusí být zachyceny. Pokud v průběhu úlohy kopírování pokračujete v provádění operací se zdrojovými kolekcemi, může dojít k duplikování nebo chybějícím datům v cílové kolekci.
Jak funguje kopírování kolekce?
- Platforma přidělí výpočetní instance na straně serveru pro cílový účet služby Azure Cosmos DB.
- Tyto instance jsou přiděleny při vytvoření jedné nebo více úloh kopírování kolekce v rámci účtu.
- Úlohy kopírování se spouštějí v těchto instancích.
- V každém okamžiku se spustí jedna úloha ve všech instancích.
- Instance jsou sdíleny všemi úlohami kopírování spuštěnými ve stejném účtu.
- Offline úlohy kopírování využívají ke kopírování dat streamy změn a replikaci přírůstkových změn ze zdrojové kolekce do cílové kolekce.
- Platforma může zrušit přidělení instancí, pokud jsou nečinné déle než 15 minut.
Kopírováním offline tabulek můžete kopírovat data z jedné tabulky do jiné tabulky ve stejném účtu Azure Cosmos DB for Apache Cassandra.
Kopírování dat tabulky
- Vytvořte cílovou tabulku Azure Cosmos DB pomocí nastavení, která chcete použít (klíč oddílu, členitost propustnosti, jednotky žádostí atd.).
- Zastavte operace ve zdrojové tabulce pozastavením instancí aplikace nebo všech klientů, kteří se k ní připojují.
- Vytvořte úlohu kopírování.
- Sledujte průběh úlohy kopírování a počkejte, až se dokončí.
- Pokračujte v operacích tím, že aplikaci nebo klienta odpovídajícím způsobem nasměrujte na zdroj nebo cílovou tabulku.
Poznámka:
Důrazně doporučujeme, abyste před zahájením offline úlohy kopírování tabulky přestali provádět všechny operace ve zdrojové tabulce. Odstranění položek a aktualizace provedené ve zdrojové tabulce po spuštění úlohy kopírování nemusí být zachyceny. Pokud budete pokračovat v provádění operací se zdrojovými tabulkami, zatímco probíhá úloha kopírování, můžete mít duplicitní nebo chybějící data v cílové tabulce.
Jak funguje kopírování tabulky?
- Platforma přidělí výpočetní instance na straně serveru pro cílový účet služby Azure Cosmos DB.
- Tyto instance se přidělují při vytvoření jedné nebo více úloh kopírování v rámci účtu.
- Úlohy kopírování se spouštějí v těchto instancích.
- V každém okamžiku se spustí jedna úloha ve všech instancích.
- Instance jsou sdíleny všemi úlohami kopírování spuštěnými ve stejném účtu.
- Offline úlohy kopírování využívají kanál změn ke kopírování dat a replikaci přírůstkových změn ze zdrojové tabulky do cílové tabulky.
- Platforma může zrušit přidělení instancí, pokud jsou nečinné déle než 15 minut.
Faktory, které ovlivňují rychlost úlohy kopírování
Rychlost průběhu úlohy kopírování kontejneru je určena těmito faktory:
Nastavení propustnosti zdrojového kontejneru nebo databáze
Nastavení propustnosti cílového kontejneru nebo databáze.
Tip
Nastavte propustnost cílového kontejneru na alespoň dvakrát propustnost zdrojového kontejneru.
Výpočetní instance na straně serveru, které jsou přiděleny k účtu služby Azure Cosmos DB pro provádění přenosu dat.
Důležité
Výchozí skladová položka nabízí pro každý účet dvě 16GB instance na straně serveru 4 vCPU.
Omezení
Kritéria způsobilosti pro verzi Preview
Úlohy kopírování kontejnerů nefungují s účty, které mají povolené následující funkce. Před spuštěním úloh kopírování kontejneru tyto funkce zakažte:
Konfigurace účtu
Nastavení TTL (Time to Live) se v cílovém kontejneru neupravuje. V důsledku toho, pokud ve zdrojovém kontejneru nevypršela platnost dokumentu, spustí se jeho odpočítávání znovu v cílovém kontejneru.
Nejčastější dotazy
Existuje smlouva o úrovni služeb pro úlohy kopírování kontejnerů?
Úlohy kopírování kontejnerů se v současné době podporují na základě maximálního úsilí. Neposkytujeme žádné záruky smlouvy o úrovni služeb (SLA) za dobu potřebnou k dokončení úloh.
Můžu v rámci účtu vytvořit více úloh kopírování kontejneru?
Ano, v rámci stejného účtu můžete vytvořit více úloh. Úlohy běží po sobě. Můžete zobrazit seznam všech úloh vytvořených v rámci účtu a sledovat jejich průběh.
Můžu zkopírovat celou databázi v rámci účtu služby Azure Cosmos DB?
Pro každý kontejner v databázi musíte vytvořit úlohu.
Mám účet služby Azure Cosmos DB s několika oblastmi. Ve které oblasti se spustí úloha kopírování kontejneru?
Úloha kopírování kontejneru se spustí v oblasti zápisu. V účtu, který je nakonfigurovaný pro zápisy do více oblastí, se úloha spustí v jedné z oblastí v seznamu oblastí zápisu.
Co se stane s úlohami kopírování kontejneru při změně oblasti zápisu účtu?
Oblast zápisu účtu se může změnit ve vzácném scénáři výpadku oblasti nebo kvůli ručnímu převzetí služeb při selhání. V tomto scénáři se nezdaří neúplné úlohy kopírování kontejneru vytvořené v rámci účtu. Tyto neúspěšné úlohy byste museli znovu vytvořit. Znovu vytvořené úlohy se pak spustí v nové (aktuální) oblasti zápisu.
Podporované oblasti
V současné době se kopírování kontejnerů podporuje v následujících oblastech:
Amerika | Evropa a Afrika | Asie a Tichomoří |
---|---|---|
Brazílie – jih | Francie – střed | Austrálie – střed |
Střední Kanada | Francie – jih | Austrálie – střed 2 |
Kanada – východ | Německo – sever | Austrálie – východ |
USA – střed | Německo – středozápad | Indie – střed |
USA – střed (EUAP) | Severní Evropa | Japonsko – východ |
USA – východ | Norsko – východ | Jižní Korea – střed |
USA – východ 2 | Norsko – západ | Southeast Asia |
USA – východ 2 (EUAP) | Švýcarsko – sever | Spojené arabské emiráty – střed |
Severní střed USA | Švýcarsko – západ | Západ Indie |
Středojižní USA | Velká Británie – jih | Východní Asie |
Středozápad USA | Velká Británie – západ | Malajsie – jih |
USA – západ | Západní Evropa | Japonsko – západ |
Západní USA 2 | Izrael - střed | Austrálie – jihovýchod |
Nepodporováno | Jižní Afrika – sever | Nepodporováno |
Známé a běžné problémy
Chyba – Prostředek vlastníka neexistuje.
Pokud se vytvoření úlohy nezdaří a zobrazí se chyba Vlastník prostředku neexistuje (kód chyby 404), cílový kontejner ještě nebyl vytvořen nebo název kontejneru použitý k vytvoření úlohy neodpovídá skutečnému názvu kontejneru.
Před spuštěním úlohy se ujistěte, že je cílový kontejner vytvořen, a ujistěte se, že název kontejneru v úloze odpovídá skutečnému názvu kontejneru.
"code": "404", "message": "Response status code does not indicate success: NotFound (404); Substatus: 1003; ActivityId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx; Reason: (Message: {\"Errors\":[\"Owner resource does not exist\"]
Chyba – Požadavek je neautorizovaný.
Pokud požadavek selže a zobrazí chybu Neautorizováno (kód chyby 401), může být místní autorizace zakázaná.
Úlohy kopírování kontejnerů používají k ověření primární klíče. Pokud je místní autorizace zakázaná, vytvoření úlohy se nezdaří. Aby úlohy kopírování kontejnerů fungovaly, musí být povolená místní autorizace.
"code": "401", "message": " Response status code does not indicate success: Unauthorized (401); Substatus: 5202; ActivityId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx; Reason: Local Authorization is disabled. Use an AAD token to authorize all requests."
Chyba – Chyba při získávání prostředků pro úlohu
K této chybě může dojít kvůli interním problémům se serverem. Pokud chcete tento problém vyřešit, obraťte se na podpora Microsoftu otevřením nové žádosti o podporu na webu Azure Portal. V případě typu problému vyberte Migraci dat. V podtypu Problém vyberte kopii kontejneru uvnitř účtu.
"code": "500" "message": "Error while getting resources for job, StatusCode: 500, SubStatusCode: 0, OperationId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, ActivityId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Další kroky
- Naučte se vytvářet, monitorovat a spravovat úlohy kopírování kontejnerů v účtu služby Azure Cosmos DB pomocí příkazů rozhraní příkazového řádku.