Dela via


Materialiserade vyer i Azure Cosmos DB för NoSQL (förhandsversion)

GÄLLER FÖR: NoSQL

Viktigt!

Azure Cosmos DB för NoSQL-materialiserade vyer är för närvarande i förhandsversion. Du kan aktivera den här funktionen med hjälp av Azure Portal. Den här förhandsversionen tillhandahålls utan ett serviceavtal. För närvarande rekommenderar vi inte att du använder materialiserade vyer för produktionsarbetsbelastningar. Vissa funktioner i den här förhandsversionen kanske inte stöds eller har begränsade funktioner. Mer information finns i de kompletterande användningsvillkoren för Förhandsversioner av Microsoft Azure.

Materialiserade vyer är skrivskyddade containrar som lagrar en beständig kopia av data från en källcontainer. Dessa vyer har egna inställningar, åtskilda från källcontainern, till exempel partitionsnyckel, indexeringsprincip, RU-gräns (Request Unit) och datamodell, som kan anpassas genom att välja en delmängd av objektegenskaper. Materialiserade vyer hålls automatiskt synkroniserade med källcontainern med hjälp av ändringsflöde som hanteras av den materialiserade vyverktyget. Byggare för materialiserade vyer är dedikerad beräkning som etableras för ditt Azure Cosmos DB-konto för att underhålla vyer.

Användningsfall

Program behöver ofta köra frågor mot data utan att ange en partitionsnyckel. Dessa frågor måste köras över alla partitioner, även om vissa partitioner inte innehåller data som matchar filtervillkoren. Därför förbrukar frågor som inte innehåller partitionsnyckeln fler RU:er och har högre svarstid.

Med en materialiserad vy kan du:

  • Underhålla en kopia av data med en annan partitionsnyckel, så att frågor mellan partitioner kan omdirigeras till vyn för effektivare sökningar.
  • Ange ett SQL-baserat predikat (utan villkor) för att endast fylla i specifika objektegenskaper.
  • Skapa realtidsvyer för att hantera händelsebaserade data, som ofta lagras i separata containrar.

Implementera det globala sekundära indexmönstret

Materialiserade vyer kan fungera som ett globalt sekundärt index (GSI), vilket möjliggör effektiv frågekörning på andra egenskaper än partitionsnyckeln för källcontainern. Genom att skapa en materialiserad vy med en annan partitionsnyckel kan du uppnå en liknande effekt som en GSI. När den materialiserade vyn har skapats kan frågor som annars skulle vara korspartitionerade omdirigeras till vycontainern, vilket leder till minskad RU-förbrukning och kortare svarstid.

Funktioner för materialiserade vyer

Azure Cosmos DB-materialiserade vyer erbjuder följande funktioner:

  • Automatisk synkronisering: Vyer synkroniseras automatiskt med källcontainern, vilket eliminerar behovet av anpassad logik i klientprogram.
  • Slutlig konsekvens: Vyerna överensstämmer så småningom med källcontainern oavsett vilken konsekvensnivå som angetts för kontot.
  • Prestandaisolering: Visa containrar har egna lagrings- och RU-gränser, vilket ger prestandaisolering.
  • Optimerad läsprestanda: Finjusterad datamodell, partitionsnyckel och indexeringsprincip för optimerad läsprestanda.
  • Förbättrad skrivprestanda: Klienter behöver bara skriva till källcontainern, vilket förbättrar skrivprestanda jämfört med en strategi för skrivning med flera containrar.
  • Skrivskyddade containrar: Skrivningar till vyn är asynkrona och hanteras av den materialiserade vyverktyget. Klientprogram kan inte skriva direkt till vyer.
  • Flera vyer: Du kan skapa flera vyer för samma källcontainer utan extra kostnad.

Definiera materialiserade vyer

Att skapa en materialiserad vy liknar att skapa en ny container, med krav för att ange källcontainern och en fråga som definierar vyn. Varje objekt i den materialiserade vyn har en en-till-en-mappning till ett objekt i källcontainern. För att upprätthålla den här mappningen fylls fältet id i materialiserade vyobjekt i automatiskt. Värdet id för från källsamlingen representeras som _id i vyn.

Frågan som används för att definiera en materialiserad vy måste följa följande begränsningar:

  • SELECT-instruktionen tillåter projektion av endast en egenskapsnivå i JSON-trädet, eller så kan den vara SELECT * för att inkludera alla egenskaper.
  • Alias för egenskapsnamn med AS stöds inte.
  • Frågor kan inte innehålla en WHERE-sats eller andra satser som JOIN, DISTINCT, GROUP BY, ORDER BY, TOP, OFFSET LIMIT och EXISTS.
  • Systemfunktioner och användardefinierade funktioner (UDF) stöds inte.

En giltig fråga kan till exempel vara: SELECT c.userName, c.emailAddress FROM c, som väljer userName egenskaperna och emailAddress från källcontainern c. Den här frågan definierar strukturen för den materialiserade vyn och avgör vilka egenskaper som ingår i vyn. Det går inte att ändra den materialiserade källcontainern och definitionsfrågan när den har skapats.

Lär dig hur du skapar materialiserade vyer.

Kommentar

När vyer har skapats måste du först ta bort alla materialiserade vyer som skapas för den om du vill ta bort källcontainern.

Etablera den materialiserade vyer builder

Byggare för materialiserade vyer är ett dedikerat beräkningslager som etablerats för ditt Azure Cosmos DB-konto som automatiskt underhåller vyer som definierats för källcontainrar. Byggaren läser från ändringsflödet för källcontainern och skriver ändringar i de materialiserade vyerna enligt vydefinitionen och håller dem synkroniserade. Uppdatering av vyer är asynkront och påverkar inte skrivningar till källcontainern. Uppdateringar av vyerna överensstämmer så småningom med källcontainern oavsett vilken konsekvensnivå som angetts för kontot.

Du måste etablera en materialiserad vybyggare för ditt Azure Cosmos DB-konto för att vyer ska börja fyllas i. Mängden beräkning som etablerats i byggaren, inklusive SKU:n och antalet noder, samt de RU:er som etablerats i vycontainern, avgör hur snabbt vyerna är hydratiserade och synkroniserade. Byggaren kan ha upp till fem noder som standard och du kan lägga till eller ta bort noder när som helst. Genom att skala upp och ned antalet noder kan du styra hur snabbt vyer skapas.

Byggare för materialiserade vyer är tillgänglig i följande storlekar:

SKU-namn vCPU Minne
D2s 2 8 GB
D4s 4 16 GB
D8s 8 32 GB
D16s 16 64 GB

Dricks

När du har skapat kan du lägga till eller ta bort builder-noder, men du kan inte ändra nodernas storlek. Om du vill ändra storleken på dina materialiserade vybyggarenoder kan du avetablera byggaren och etablera den igen i en annan storlek. Vyer behöver inte återskapas och kommer ikapp källan när byggaren har etablerats igen.

Materialiserade vyer byggare i konton i flera regioner

För Azure Cosmos DB-konton med en enda region etableras byggverktyget för materialiserade vyer i den regionen. I ett konto med flera regioner med en enda skrivregion etableras byggverktyget i skrivregionen och läser ändringsflödet därifrån. I ett konto med flera skrivregioner etableras byggverktyget i en av skrivregionerna och läser ändringsflödet från samma region som den etableras i.

Lär dig hur du etablerar den materialiserade vyer builder.

Viktigt!

I händelse av en redundansväxling för ditt konto avetableras den materialiserade vyverktyget och etableras på nytt i den nya skrivregionen.

Manuella redundansväxlingar (ändringsskrivningsregionåtgärd) är graciösa åtgärder och vyerna är garanterat konsekventa med källan. Tjänsthanterade redundansväxlingar är dock inte garanterade att vara graciösa och kan leda till inkonsekvenser mellan käll- och visningscontainrarna. I sådana fall rekommenderar vi att du återskapar visningscontainrarna och återgår till att köra frågor mellan partitioner på källcontainern tills vyn har uppdaterats.

Läs mer om tjänsthanterad redundans.

Övervakning

Du kan övervaka fördröjningen i byggnadsvyer och hälsotillståndet för den materialiserade vybyggaren via Mått i Azure Portal. Mer information om dessa mått finns i Mått som stöds för Microsoft.DocumentDB/DatabaseAccounts.

Skärmbild av måttet Materialized Views Builder Average CPU Usage i Azure Portal.

Felsök vanliga problem

Jag vill förstå fördröjningen mellan min källcontainer och vyer

Måttet MaterializedViewCatchupGapInMinutes visar den maximala skillnaden i minuter mellan data i en källcontainer och en vy. Det kan finnas flera vyer som skapats i ett enda konto, men det här måttet visar den högsta fördröjningen bland alla vyer. Ett högt värde anger att byggaren behöver mer beräkning för att hålla jämna överensstämmelse med volymen av ändringar i källcontainrar. Ru:er som etablerats på käll- och visningscontainrar kan också påverka den hastighet med vilken ändringar sprids till vyn. Kontrollera måttet Totalt antal förfrågningar och dela upp efter StatusCode för att avgöra om det finns begränsade begäranden på dessa containrar. Begränsade begäranden har statuskod 429.

Jag vill veta om min materialiserade vybyggare har rätt antal noder

Måtten MaterializedViewsBuilderAverageCPUUsage och MaterializedViewsBuilderAverageMemoryUsage visar den genomsnittliga CPU-användningen och minnesförbrukningen för alla noder i byggaren. Om dessa mått är för höga lägger du till noder för att skala upp klustret. Om dessa mått visar underutnyttjande av processor och minne tar du bort noder genom att skala ned klustret. För optimala prestanda bör CPU-användningen inte vara högre än 70 procent.

Begränsningar

Det finns några begränsningar med den materialiserade vyfunktionen i Azure Cosmos DB for NoSQL API när den är i förhandsversion:

  • Rollbaserad åtkomstkontroll stöds inte för materialiserade vyer.
  • Materialiserade vyer kan inte aktiveras på konton som har partitionssammanslagning, analysarkiv eller kontinuerliga säkerhetskopior.
  • Återställning till tidpunkt, hierarkisk partitionering och kryptering från slutpunkt till slutpunkt stöds inte på källcontainrar som har materialiserade vyer associerade med dem.
  • Kryptering mellan klientorganisationer med kundhanterad nyckel (CMK) stöds inte i materialiserade vyer.
  • Tillgänglighetszoner
    • Materialiserade vyer kan inte aktiveras för ett konto som har tillgänglighetszonaktiverade regioner.
    • Det går inte att lägga till en ny region med en tillgänglighetszon när materialiserade vyer har aktiverats för ett konto.
  • Regelbunden säkerhetskopiering och återställning
    • Materialiserade vyer återställs inte automatiskt under återställningsprocessen. Du måste aktivera funktionen materialiserade vyer på det återställda kontot när återställningsprocessen är klar. Sedan kan du skapa de materialiserade vyerna och byggaren igen.

Nästa steg