.alter materialized-view

Změna materializovaného zobrazení se dá použít ke změně dotazu materializovaného zobrazení při zachování existujících dat v zobrazení.

Upozornění

Při změně materializovaného zobrazení buďte velmi opatrní. Nesprávné použití může vést ke ztrátě dat.

Oprávnění

Ke spuštění tohoto příkazu musíte mít aspoň oprávnění materializovaného zobrazení Správa.

Syntax

.altermaterialized-view [ with(PropertyName=PropertyValue,...)] MaterializedViewNameon tableSourceTableName{Dotazu}

Přečtěte si další informace o konvencích syntaxe.

Parametry

Název Typ Vyžadováno Popis
PropertyName, PropertyValue string Seznam vlastností ve formě párů název a hodnota ze seznamu podporovaných vlastností
MaterializedViewName string ✔️ Název materializovaného zobrazení
SourceTableName string ✔️ Název zdrojové tabulky, ve které je definováno zobrazení.
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é.

Název Typ Description
zpětné vyhledávání timespan Platí pouze pro arg_max//arg_mintake_any materializovaná zobrazení. Omezuje časové období, ve kterém se očekávají duplicity. Pokud je například v arg_max zobrazení zadané zpětné vyhledávání 6 hodin, bude odstranění duplicitních dat mezi nově přijatými a existujícími záznamy brát v úvahu pouze záznamy, které byly přijaty před 6 hodinami.

Lookback je relativní 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 je například záznam pro konkrétní klíč přijat 10 hodin po ingestování záznamu pro stejný klíč a zpětné vyhledávání je nastaveno na 6 hodin, bude tento klíč v zobrazení duplicitní. Období zpětného vyhledávání se použije jak v době materializace , tak v době dotazu.
autoUpdateSchema bool Jestli se má automaticky aktualizovat zobrazení pro změny zdrojové tabulky. Výchozí 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 ve zdrojové tabulce se automaticky projeví v materializovaném zobrazení.
dimensionTables array Dynamický argument, který obsahuje pole tabulek dimenzí v zobrazení. Viz Parametr dotazu.
Složky string Složka materializovaného zobrazení
docString string Řetězec, který dokumentuje materializované zobrazení.

Návraty

Výstupní schéma:

Název Typ Popis
Název string Název materializovaného zobrazení
Zdrojová tabulka string Název zdrojové tabulky, ve které je definováno zobrazení.
Dotaz string Definice dotazu materializovaného zobrazení
MaterializedTo datetime Maximální materializované časové razítko ingestion_time() ve zdrojové tabulce Další informace najdete v tématu o tom, jak fungují materializovaná zobrazení.
Poslední spuštění datetime Čas posledního spuštění materializace
LastRunResult string Výsledek posledního spuštění. Vrátí se Completed pro úspěšná spuštění, jinak Failed.
IsHealthy bool true pokud je zobrazení považováno za v pořádku, false jinak. Zobrazení se považuje za v pořádku, pokud bylo úspěšně materializováno až do poslední hodiny (MaterializedTo je větší než ago(1h)).
IsEnabled bool true pokud je zobrazení povolené (viz Zakázání nebo povolení materializovaného zobrazení).
Složka string Složka, pod kterou se materializované zobrazení vytvoří.
DocString string Popis přiřazený materializovanému zobrazení
AutoUpdateSchema bool Určuje, jestli je zobrazení povolené pro automatické aktualizace.
EffectiveDateTime datetime Efektivní datum a čas zobrazení určený během vytváření (viz .create materialized-view).
Lookback timespan Časový rozsah omezující časové období, ve kterém se očekávají 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

Name Zdrojová tabulka Dotaz MaterializedTo Poslední spuštění LastRunResult IsHealthy IsEnabled Složka DocString AutoUpdateSchema EffectiveDateTime Zpětné vyhledávání
MyView Mytable MyTable | 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řidejte do zobrazení agregace – například přidáním avg agregace do T | summarize count(), min(Value) by Idsouboru změnou dotazu na zobrazení na T | summarize count(), min(Value), avg(Value) by Id.
  • Změňte jiné operátory 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ěna dotazu bez změny z důvodu změny 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. Spuštění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 i po provedení změny explicitně povolené pomocí příkazu enable materialized view (povolit materializované zobrazení ).

Omezení

  • Změny se nepodporují:

    • Změny materializovaného zobrazení seskupí podle výrazů.
    • Změna typu sloupce
    • Přejmenování sloupců Například když změníte zobrazení T | summarize count() by Id , aby se T | summarize Count=count() by Id sloupec count_ zahodí a vytvoří se nový sloupec Count, který zpočátku obsahuje 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 týká jenom nově přijatých záznamů a nemění záznamy, které už byly materializované.
      • Nové sloupce přijímají hodnoty null pro všechny existující záznamy, dokud se záznamy ingestují po změně hodnot null příkazem alter.
      • Příklad: Zobrazení je T | summarize count() by bin(Timestamp, 1d) změněno na T | summarize count(), sum(Value) by bin(Timestamp, 1d). Pro konkrétní údaje Timestamp=T , pro které byly záznamy již zpracovány před změnou zobrazení, sum obsahuje sloupec částečná data. Toto zobrazení obsahuje pouze záznamy zpracované po provedení změny.