Begränsningar för materialiserade vyer och kända problem
Den materialiserade vykällan
- Källtabellen för en materialiserad vy:
- Måste vara en tabell där data matas in direkt med hjälp av en uppdateringsprincip eller matas in från frågekommandon.
- Att använda flyttområden eller ersätta utrymmen från andra tabeller till källtabellen i den materialiserade vyn stöds endast om du använder
setNewIngestionTime
egenskapen som en del av kommandot för flyttområden (mer information finns i .move-utrymmen och .replace-utrymmeskommandon ). - Flytt av utrymmen till källtabellen i en materialiserad vy, men om du inte använder
setNewIngestionTime
kan det misslyckas med något av följande fel:Cannot drop/move extents from/to table 'TableName' since Materialized View 'ViewName' is currently processing some of these extents
.Cannot move extents to 'TableName' since materialized view 'ViewName' will not process these extents (can lead to data loss in the materialized view)
.
- Att använda flyttområden eller ersätta utrymmen från andra tabeller till källtabellen i den materialiserade vyn stöds endast om du använder
- Måste vara en tabell där data matas in direkt med hjälp av en uppdateringsprincip eller matas in från frågekommandon.
- Källtabellen i en materialiserad vy måste ha IngestionTime-principen aktiverad (den är aktiverad som standard).
- Källtabellen för en materialiserad vy kan inte vara en tabell med åtkomstprincip för begränsad vy.
- Det går inte att skapa en materialiserad vy ovanpå en annan materialiserad vy, såvida inte den första materialiserade vyn är av typen
take_any(*)
aggregering. Se materialiserad vy över materialiserad vy. - Materialiserade vyer kan inte definieras över externa tabeller.
Varning
- En materialiserad vy inaktiveras automatiskt av systemet om ändringar i källtabellen i den materialiserade vyn eller ändringar i data leder till inkompatibilitet mellan den materialiserade vyfrågan och den förväntade materialiserade vyns schema.
- För att undvika det här felet måste den materialiserade vyfrågan vara deterministisk. Till exempel resulterar bag_unpack- eller pivot-plugin-program i ett icke-deterministiskt schema.
- När du använder en
arg_max(Timestamp, *)
aggregering och närautoUpdateSchema
är falskt kan ändringar i källtabellen också leda till schemamatchningar.- Undvik det här felet genom att definiera visningsfrågan som
arg_max(Timestamp, Column1, Column2, ...)
eller med hjälpautoUpdateSchema
av alternativet .
- Undvik det här felet genom att definiera visningsfrågan som
- Användning
autoUpdateSchema
kan leda till oåterkallelig dataförlust när kolumner i källtabellen tas bort. - Övervaka automatisk inaktivering av materialiserade vyer med hjälp av måttet MaterializedViewResult.
- När du har åtgärdat inkompatibilitetsproblem bör vyn uttryckligen återaktiveras med hjälp av kommandot aktivera materialiserad vy .
Påverkan av poster som matas in till eller tas bort från källtabellen
- En materialiserad vy bearbetar endast nya poster som matas in i källtabellen. Poster som tas bort från källtabellen, antingen genom att köra datarensningförmjuk borttagning//, eller på grund av kvarhållningsprincip eller någon annan orsak, har ingen inverkan på den materialiserade vyn.
- Den materialiserade vyn har en egen kvarhållningsprincip, som är oberoende av källtabellens kvarhållningsprincip. Den materialiserade vyn kan innehålla poster som inte finns i källtabellen.
Uppföljningsdatabaser
- Det går inte att skapa materialiserade vyer i följande databaser. Uppföljningsdatabaser är skrivskyddade och materialiserade vyer kräver skrivåtgärder.
- Materialiserade vyer som definieras på ledardatabaser kan efterfrågas från sina följare, precis som andra tabeller i ledaren.
- Använd leaderklustret för att övervaka materialiserade vyer för uppföljningsdatabasen. Mer information finns i Materialiserade vyer i följande databaser.
Övrigt
- Markörfunktioner kan inte användas ovanpå materialiserade vyer.
- Kontinuerlig export från en materialiserad vy stöds inte.
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för