Kopiera jobb i Azure Cosmos DB (förhandsversion)
Du kan utföra datakopiering i Azure Cosmos DB med hjälp av containerkopieringsjobb.
Du kan behöva kopiera data från ditt Azure Cosmos DB-konto om du vill uppnå något av följande scenarier:
- Kopiera alla objekt från en container till en annan.
- Ändra kornigheten där dataflödet etableras, från databas till container och vice versa.
- Ändra partitionsnyckeln för en container.
- Uppdatera de unika nycklarna för en container.
- Byt namn på en container eller databas.
- Ändra kapacitetsläget för ett konto från serverlös till etablerad eller vice versa.
- Anta nya funktioner som endast stöds för nya containrar, t.ex. hierarkiska partitionsnycklar.
Kopieringsjobb kan skapas och hanteras med hjälp av Azure CLI-kommandon.
Kom igång
Kom igång med onlinecontainerkopiering för Azure Cosmos DB för NoSQL API-konton genom att registrera dig för funktionsflaggan Förhandsgranskning av onlinecontainerkopiering (NoSQL) i förhandsversionsfunktioner i Azure Portal. När registreringen är klar gäller förhandsversionen för alla NoSQL API-konton i prenumerationen.
Förutsättningar
- Aktivera kontinuerlig säkerhetskopiering på Azure Cosmos DB-källkontot.
- Registrera dig för förhandsversionen av alla versioner och ta bort förhandsversionen av ändringsflödesläget i källkontots prenumeration.
Viktigt!
Alla skrivåtgärder till källcontainern debiteras dubbla RU:er för att bevara både tidigare och aktuella versioner av ändringar av objekt i containern. Denna RU-avgiftsökning kan komma att ändras i framtiden.
Kopiera en containers data
- Skapa Azure Cosmos DB-målcontainern med hjälp av de inställningar som du vill använda (partitionsnyckel, dataflödeskornighet, enheter för begäranden, unik nyckel och så vidare).
- Skapa containerkopieringsjobbet.
- Övervaka förloppet för kopieringsjobbet.
- När alla dokument har kopierats stoppar du uppdateringarna i källcontainern och anropar sedan API:et för slutförande för att markera jobbet som slutfört.
- Återuppta åtgärderna genom att rikta programmet eller klienten till käll- eller målcontainern på rätt sätt.
Hur fungerar containerkopiering?
- Plattformen allokerar beräkningsinstanser på serversidan för azure Cosmos DB-målkontot för att köra containerkopieringsjobben.
- Ett enda jobb körs över alla instanser när som helst.
- Onlinekopieringsjobben använder alla versioner och tar bort ändringsflödesläget för att kopiera data och replikera inkrementella ändringar från källcontainern till målcontainern.
- När jobbet har slutförts avallokerar plattformen dessa instanser efter 15 minuters inaktivitet.
Du kan utföra kopieringsjobb offline för att kopiera data i samma Azure Cosmos DB för Mongo DB-konto.
Kopiera en samlings data
- Skapa Azure Cosmos DB-målsamlingen med hjälp av de inställningar som du vill använda (partitionsnyckel, dataflödeskornighet, enheter för begäranden, unik nyckel och så vidare).
- Stoppa åtgärderna i källsamlingen genom att pausa programinstanserna eller alla klienter som ansluter till den.
- Skapa kopieringsjobbet.
- Övervaka förloppet för kopieringsjobbet och vänta tills det har slutförts.
- Återuppta åtgärderna genom att på lämpligt sätt peka programmet eller klienten mot käll- eller målsamlingen som avsett.
Kommentar
Vi rekommenderar starkt att du slutar utföra några åtgärder i källsamlingen innan du påbörjar kopieringsjobbet för offlinesamlingen. Objektborttagningar och uppdateringar som görs i källsamlingen när du har startat kopieringsjobbet kanske inte registreras. Om du fortsätter att utföra åtgärder i källsamlingen medan kopieringsjobbet pågår kan du ha duplicerade eller saknade data i målsamlingen.
Hur fungerar samlingskopiering?
- Plattformen allokerar beräkningsinstanser på serversidan för azure Cosmos DB-målkontot.
- Dessa instanser allokeras när ett eller flera samlingskopieringsjobb skapas i kontot.
- Kopieringsjobben körs på dessa instanser.
- Ett enda jobb körs över alla instanser när som helst.
- Instanserna delas av alla kopieringsjobb som körs inom samma konto.
- Offlinekopieringsjobben använder Ändringsströmmar för att kopiera data och replikera inkrementella ändringar från källsamlingen till målsamlingen.
- Plattformen kan avallokera instanserna om de är inaktiva i mer än 15 minuter.
Du kan utföra offlinetabellkopiering för att kopiera data från en tabell till en annan tabell i samma Azure Cosmos DB för Apache Cassandra-kontot.
Kopiera en tabells data
- Skapa Azure Cosmos DB-måltabellen med hjälp av de inställningar som du vill använda (partitionsnyckel, dataflödeskornighet, enheter för begäranden och så vidare).
- Stoppa åtgärderna i källtabellen genom att pausa programinstanserna eller klienter som ansluter till den.
- Skapa kopieringsjobbet.
- Övervaka förloppet för kopieringsjobbet och vänta tills det har slutförts.
- Återuppta åtgärderna genom att på lämpligt sätt peka programmet eller klienten mot käll- eller måltabellen som avsett.
Kommentar
Vi rekommenderar starkt att du slutar utföra åtgärder i källtabellen innan du påbörjar offline-tabellkopieringsjobbet. Objektborttagningar och uppdateringar som görs i källtabellen när du har startat kopieringsjobbet kanske inte registreras. Om du fortsätter att utföra åtgärder i källtabellen medan kopieringsjobbet pågår kan du ha duplicerade eller saknade data i måltabellen.
Hur fungerar tabellkopiering?
- Plattformen allokerar beräkningsinstanser på serversidan för azure Cosmos DB-målkontot.
- Dessa instanser allokeras när ett eller flera kopieringsjobb skapas i kontot.
- Kopieringsjobben körs på dessa instanser.
- Ett enda jobb körs över alla instanser när som helst.
- Instanserna delas av alla kopieringsjobb som körs inom samma konto.
- Offlinekopieringsjobben använder Ändringsflöde för att kopiera data och replikera inkrementella ändringar från källtabellen till måltabellen.
- Plattformen kan avallokera instanserna om de är inaktiva i mer än 15 minuter.
Faktorer som påverkar kopieringsjobbets hastighet
Frekvensen för förloppet för containerkopieringsjobb bestäms av följande faktorer:
Inställningen för källcontainer eller databasdataflöde.
Inställningen för målcontainer eller databasdataflöde.
Dricks
Ange målcontainerns dataflöde till minst två gånger källcontainerns dataflöde.
Beräkningsinstanser på serversidan som allokeras till Azure Cosmos DB-kontot för att utföra dataöverföringen.
Viktigt!
Standard-SKU:n erbjuder två 4-vCPU 16 GB instanser på serversidan per konto.
Begränsningar
Villkor för förhandsversion av berättigande
Containerkopieringsjobb fungerar inte med konton som har följande funktioner aktiverade. Inaktivera dessa funktioner innan du kör containerkopieringsjobb:
Kontokonfigurationer
TTL-inställningen (Time to Live) justeras inte i målcontainern. Om ett dokument inte har upphört att gälla i källcontainern startar det därför nedräkningen på nytt i målcontainern.
Vanliga frågor och svar
Finns det ett serviceavtal för containerkopieringsjobb?
Containerkopieringsjobb stöds för närvarande på bästa sätt. Vi tillhandahåller inga serviceavtalsgarantier (SLA) för den tid det tar för jobben att slutföras.
Kan jag skapa flera containerkopieringsjobb i ett konto?
Ja, du kan skapa flera jobb inom samma konto. Jobben körs i följd. Du kan visa en lista över alla jobb som skapas i ett konto och övervaka deras förlopp.
Kan jag kopiera en hel databas i Azure Cosmos DB-kontot?
Du måste skapa ett jobb för varje container i databasen.
Jag har ett Azure Cosmos DB-konto med flera regioner. I vilken region körs containerkopieringsjobbet?
Containerkopieringsjobbet körs i skrivregionen. I ett konto som har konfigurerats med skrivningar i flera regioner körs jobbet i en av regionerna i listan över skrivregioner.
Vad händer med containerkopieringsjobben när kontots skrivregion ändras?
Kontots skrivregion kan ändras i det sällsynta scenariot med ett regionstopp eller på grund av manuell redundans. I det här scenariot misslyckas ofullständiga containerkopieringsjobb som skapades i kontot. Du skulle behöva återskapa de här misslyckade jobben. Återskapade jobb körs sedan i den nya (aktuella) skrivregionen.
Regioner som stöds
För närvarande stöds containerkopiering i följande regioner:
Nord- och Sydamerika | Europa och Afrika | Asien och stillahavsområdet |
---|---|---|
Brasilien, södra | Frankrike, centrala | Australien, centrala |
Kanada, centrala | Frankrike, södra | Australien, centrala 2 |
Kanada, östra | Tyskland, norra | Australien, östra |
Central US | Tyskland, västra centrala | Indien, centrala |
Centrala USA EUAP | Europa, norra | Japan, östra |
USA, östra | Norge, östra | Sydkorea, centrala |
USA, östra 2 | Västra Norge | Sydostasien |
Östra USA 2 EUAP | Schweiz, norra | Förenade Arabemiraten, centrala |
Norra centrala USA | Schweiz, västra | Västra Indien |
USA, södra centrala | Södra Storbritannien | Asien, östra |
Västra centrala USA | Västra Storbritannien | Malaysia, södra |
Västra USA | Västeuropa | Västra Japan |
Västra USA 2 | Israel, centrala | Sydöstra Australien |
Stöds inte | Sydafrika, norra | Stöds inte |
Kända och vanliga problem
Fel – Ägarresursen finns inte.
Om jobbskapandet misslyckas och visar felet Ägarresurs finns inte (felkod 404) har målcontainern inte skapats än eller så matchar inte containernamnet som används för att skapa jobbet ett faktiskt containernamn.
Kontrollera att målcontainern har skapats innan du kör jobbet och se till att containernamnet i jobbet matchar ett faktiskt containernamn.
"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\"]
Fel – Begäran är obehörig.
Om begäran misslyckas och visar felet Obehörig (felkod 401) kan lokal auktorisering inaktiveras.
Containerkopieringsjobb använder primära nycklar för att autentisera. Om lokal auktorisering är inaktiverad misslyckas jobbskapandet. Lokal auktorisering måste vara aktiverat för att containerkopieringsjobb ska fungera.
"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."
Fel – Fel vid hämtar resurser för jobbet.
Det här felet kan inträffa på grund av interna serverproblem. Lös problemet genom att kontakta Microsoft Support genom att öppna en ny supportbegäran i Azure Portal. För Problemtyp väljer du Datamigrering. För Problemundertyp väljer du Containerkopiering för intrakonto.
"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
Nästa steg
- Lär dig hur du skapar, övervakar och hanterar containerkopieringsjobb i Azure Cosmos DB-kontot med hjälp av CLI-kommandon.