Översikt över massexecutor-biblioteket i Azure Cosmos DB

GÄLLER FÖR: NoSQL

Azure Cosmos DB är en snabb, flexibel och globalt distribuerad databastjänst som elastiskt skalas ut för att stödja:

  • Stort dataflöde för läsning och skrivning i storleksordningen miljontals åtgärder per sekund.
  • Lagra stora volymer transaktions- och driftdata, i storleksordningen hundratals terabyte eller ännu mer, med förutsägbar svarstid på millisekunder.

Massexekutorbiblioteket hjälper dig att använda det här enorma dataflödet och lagringen. Med massexecutor-biblioteket kan du utföra massåtgärder i Azure Cosmos DB med hjälp av API:er för massimport och massuppdatering. Du kan läsa mer om funktionerna i massexecutor-biblioteket i följande avsnitt.

Anteckning

Massexekutorbiblioteket stöder för närvarande import- och uppdateringsåtgärder. Azure Cosmos DB API stöder endast det här biblioteket för NoSQL- och Gremlin-konton.

Viktigt

Massexekutorbiblioteket stöds för närvarande inte på serverlösa konton. På .NET rekommenderar vi att du använder det massstöd som är tillgängligt i V3-versionen av SDK:et.

Viktiga funktioner i massexekutorbiblioteket

  • Om du använder massexekutorbiblioteket minskar du avsevärt de beräkningsresurser på klientsidan som behövs för att mätta dataflödet som allokerats till en container. Ett enda trådat program som skriver data med hjälp av MASSimport-API:et uppnår 10 gånger större skrivdataflöde jämfört med ett program med flera trådar som skriver data parallellt medan det mättar klientdatorns CPU.

  • Massexekutorbiblioteket abstraherar bort de omständliga uppgifterna att skriva programlogik för att hantera hastighetsbegränsning för begäran, tidsgränser för begäranden och andra tillfälliga undantag. Den hanterar dem effektivt i biblioteket.

  • Det ger en förenklad mekanism för program att utföra massåtgärder för att skala ut. En enskild massexekutorinstans som körs på en virtuell Azure-dator kan förbruka mer än 500 K RU/s. Du kan uppnå en högre dataflödeshastighet genom att lägga till fler instanser på enskilda virtuella klientdatorer.

  • Massexekutorbiblioteket kan massimportera mer än en terabyte data inom en timme med hjälp av en skalbar arkitektur.

  • Den kan massuppdatering av befintliga data i Azure Cosmos DB-containrar som korrigeringar.

Hur fungerar massexekutorn?

När en massåtgärd för att importera eller uppdatera dokument utlöses med en batch med entiteter blandas de ursprungligen i bucketar som motsvarar deras Azure Cosmos DB-partitionsnyckelintervall. Inom varje bucket som motsvarar ett partitionsnyckelintervall delas de upp i minibatchar.

Varje mini-batch fungerar som en nyttolast som checkas in på serversidan. Massexekutorbiblioteket har inbyggda optimeringar för samtidig körning av mini-batcharna både inom och över partitionsnyckelintervall.

Följande diagram illustrerar hur massexekutor batchar data till olika partitionsnycklar:

Diagram som visar arkitektur för massexekutorer.

Massexekutorbiblioteket ser till att maximalt använda dataflödet som allokerats till en samling. Den använder en MEKANISM för överbelastningskontroll i AIMD-stil för varje Azure Cosmos DB-partitionsnyckelintervall för att effektivt hantera hastighetsbegränsning och tidsgränser.

Mer information om exempelprogram som använder massexekutorbiblioteket finns i Använda massexekutorbiblioteket .NET för att utföra massåtgärder i Azure Cosmos DB och Utföra massåtgärder på Azure Cosmos DB-data.

Referensinformation finns i massexekutorbiblioteket för .NET och java-massexekutorbiblioteket.

Nästa steg