Ö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 skalar ut för att stödja:
- Stort dataflöde för läsning och skrivning i storleksordningen miljontals åtgärder per sekund.
- Lagring av stora mängder 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.
Kommentar
Massexekutorbiblioteket stöder för närvarande import- och uppdateringsåtgärder. Azure Cosmos DB API stöder det här biblioteket endast 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.
Viktiga funktioner i massexekutorbiblioteket
Om du använder massexekutorbiblioteket minskas avsevärt de beräkningsresurser på klientsidan som behövs för att mätta det dataflöde som allokerats till en container. Ett enda trådat program som skriver data med massimport-API:et uppnår 10 gånger större skrivgenomflöde jämfört med ett program med flera trådar som skriver data parallellt medan det mättar klientdatorns PROCESSOR.
Massexekutorbiblioteket abstraherar bort de omständliga uppgifterna att skriva programlogik för att hantera hastighetsbegränsning för begäranden, 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 massuppdatera 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 först i bucketar som motsvarar deras Azure Cosmos DB-partitionsnyckelintervall. Inom varje bucket som motsvarar ett partitionsnyckelintervall delas de upp i minibatch.
Varje mini-batch fungerar som en nyttolast som har checkats in på serversidan. Massexekutorbiblioteket har inbyggda optimeringar för samtidig körning av minibatcherna både inom och över partitionsnyckelintervall.
Följande diagram visar hur massexekutor batchar data till olika partitionsnycklar:
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 masskörningsbiblioteket .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 .NET massexekutorbibliotek och Java massexekutorbibliotek.