Sdílet prostřednictvím


.alter materialized-view

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

.altermaterialized-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_mintake_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 do T | summarize count(), min(Value) by Id, změnou dotazu zobrazení na T | 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 na T | 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é na autoUpdateSchema (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 sloupce count_ a vytvoření nového sloupce Count, který zpočátku obsahuje T | 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 na T | 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.