.alter materialized-view
Platí pro: ✅Microsoft Fabric✅Azure Data Explorer
Změna materializovaného zobrazení se dá použít ke změně dotazu materializovaného zobrazení a zachování existujících dat v zobrazení.
Upozorňující
Při změně materializovaného zobrazení buďte opatrní. Nesprávné použití může vést ke ztrátě dat.
Oprávnění
Abyste mohli tento příkaz spustit, musíte mít alespoň materializovaná oprávnění správce zobrazení.
Syntaxe
.alter
materialized-view
[ with
(
PropertyName =
PropertyValue,
...)
] MaterializedViewName on table
SourceTableName{
– dotaz }
Přečtěte si další informace o konvencích syntaxe.
Parametry
Název | Type | Požadováno | Popis |
---|---|---|---|
PropertyName, PropertyValue | string |
Seznam vlastností ve formě párů názvů a hodnot ze seznamu podporovaných vlastností | |
MaterializedViewName | string |
✔️ | Název materializovaného zobrazení |
SourceTableName | string |
✔️ | Název zdrojové tabulky, na které je zobrazení definováno. |
Dotaz | string |
✔️ | Definice dotazu materializovaného zobrazení |
Podporované vlastnosti
Následující vlastnosti jsou podporovány v klauzuli with
(
PropertyName =
PropertyValue.)
Všechny vlastnosti jsou volitelné.
Name | Typ | Popis |
---|---|---|
lookback | timespan |
Platné pouze pro arg_max //arg_min take_any materializovaná zobrazení. Omezuje dobu, po kterou se očekávají duplicity. Pokud je například v zobrazení zadáno arg_max zpětné vyhledávání 6 hodin, odstranění duplicitních dat mezi nově přijatými záznamy a existujícími záznamy bude brát v úvahu pouze záznamy, které byly ingestovány až před 6 hodinami. Zpětné vyhledávání je relativní vzhledem k ingestion_time . Nesprávné definování období zpětného vyhledávání může vést k duplicitám v materializovaném zobrazení. Pokud se například záznam pro určitý klíč ingestuje 10 hodin po ingestování záznamu pro stejný klíč a zpětné vyhledávání je nastavené na 6 hodin, bude tento klíč v zobrazení duplicitní. Období zpětného vyhledávání se použije v době materializace i v době dotazu. |
autoUpdateSchema | bool |
Zda se má zobrazení u zdrojových tabulek automaticky aktualizovat. Výchozí hodnota je false . Tato možnost je platná pouze pro zobrazení typu arg_max(Timestamp, *) //arg_min(Timestamp, *) take_any(*) (pouze v případě, že argument sloupce je ).* Pokud je tato možnost nastavená na true , změny zdrojové tabulky se automaticky projeví v materializovaném zobrazení. |
DimensionTables | pole | Dynamický argument, který v zobrazení obsahuje pole tabulek dimenzí. Viz parametr dotazu. |
souborů | string |
Složka materializovaného zobrazení. |
docString | string |
Řetězec, který dokumentuje materializované zobrazení. |
Návraty
Výstupní schéma:
Name | Typ | Popis |
---|---|---|
Name | string |
Název materializovaného zobrazení |
Zdrojová tabulka | string |
Název zdrojové tabulky, na které je zobrazení definováno. |
Dotaz | string |
Definice dotazu materializovaného zobrazení |
MaterializedTo | datetime |
Maximální materializované časové razítko ingestion_time() ve zdrojové tabulce Další informace naleznete v tom , jak materializovaná zobrazení fungují. |
LastRun | datetime |
Čas posledního spuštění materializace |
LastRunResult | string |
Výsledek posledního spuštění Vrátí Completed pro úspěšná spuštění, jinak Failed . |
IsHealthy | bool |
true pokud je zobrazení považováno za zdravé, false jinak. Zobrazení je považováno za zdravé, pokud bylo úspěšně materializováno až do poslední hodiny (MaterializedTo je větší než ago(1h) ). |
IsEnabled | bool |
true při povolení zobrazení (viz Zakázání nebo povolení materializovaného zobrazení) |
Složka | string |
Složka, pod kterou se vytvoří materializované zobrazení. |
DocString | string |
Popis přiřazený materializovanému zobrazení |
AutoUpdateSchema | bool |
Určuje, jestli je zobrazení povolené pro automatické aktualizace. |
EffectiveDateTime | datetime |
Datum účinnosti zobrazení určeného během vytváření (viz .create materialized-view ). |
Zpětné vyhledávání | timespan |
Časový rozsah omezuje časové období, ve kterém jsou očekávány duplicity. |
Příklady
Úprava definice dotazu materializovaného zobrazení
Následující příkaz upraví definici dotazu materializovaného zobrazení MyView:
.alter materialized-view MyView on table MyTable
{
MyTable | summarize arg_max(Column3, *) by Column1
}
Výstup
Název | Zdrojová tabulka | Dotaz | MaterializedTo | LastRun | LastRunResult | IsHealthy | IsEnabled | Složka | DocString | AutoUpdateSchema | EffectiveDateTime | Zpětné vyhledávání |
---|---|---|---|---|---|---|---|---|---|---|---|---|
MyView | MyTable | Tabulka | summarize arg_max(Column3; *) by Column1 | 2023-02-26T16:40:03.3345704Z | 2023-02-26T16:44:15.9033667Z | Dokončeno | true | true | false (nepravda) | 2023-02-23T14:01:42.5172342Z |
Případy použití
- Přidání agregací do zobrazení – například přidání
avg
agregace doT | summarize count(), min(Value) by Id
, změnou dotazu zobrazení naT | summarize count(), min(Value), avg(Value) by Id
. - Změňte operátory jiné než operátor sumarizace. Například vyfiltrujte některé záznamy tak, že změníte
T | summarize arg_max(Timestamp, *) by User
naT | where User != 'someone' | summarize arg_max(Timestamp, *) by User
. - Změňte dotaz beze změny kvůli změně ve zdrojové tabulce. Předpokládejme například zobrazení
T | summarize arg_max(Timestamp, *) by Id
, které není nastavené naautoUpdateSchema
(viz.create materialized-view
příkaz). Pokud se sloupec přidá nebo odebere ze zdrojové tabulky zobrazení, zobrazení se automaticky zakáže. Provedením příkazu alter se stejným dotazem změňte schéma materializovaného zobrazení tak, aby odpovídalo novému schématu tabulky. Zobrazení musí být po změně explicitně povoleno pomocí příkazu povolit materializované zobrazení .
Omezení
Změny se nepodporují:
- Změny materializované skupiny zobrazení podle výrazů
- Změna typu sloupce
- Přejmenování sloupců Například změna zobrazení
T | summarize count() by Id
na pokles sloupcecount_
a vytvoření nového sloupceCount
, který zpočátku obsahujeT | summarize Count=count() by Id
pouze hodnoty null.
Dopad na existující data:
- Změna materializovaného zobrazení nemá žádný vliv na existující data.
- Přidání filtrů do dotazu se vztahuje pouze na nově ingestované záznamy a nemění záznamy, které už byly materializovány.
- Nové sloupce přijímají hodnoty null pro všechny existující záznamy, dokud záznamy ingestované po příkazu alter nezmění hodnoty null.
- Příklad: Zobrazení
T | summarize count() by bin(Timestamp, 1d)
je změněno naT | summarize count(), sum(Value) by bin(Timestamp, 1d)
. Pro konkrétníTimestamp=T
záznamy, které již byly zpracovány před změnou zobrazení,sum
sloupec obsahuje částečná data. Toto zobrazení obsahuje pouze záznamy zpracovávané po provedení změny.