.alter materialized-view

Zmiana zmaterializowanego widoku może służyć do zmiany zapytania zmaterializowanego widoku przy zachowaniu istniejących danych w widoku.

Ostrzeżenie

Podczas zmiany zmaterializowanego widoku należy zachować szczególną ostrożność. Nieprawidłowe użycie może prowadzić do utraty danych.

Uprawnienia

Aby uruchomić to polecenie, musisz mieć co najmniej zmaterializowany widok Administracja uprawnienia.

Składnia

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

Dowiedz się więcej o konwencjach składniowych.

Parametry

Nazwa Typ Wymagane Opis
PropertyName, PropertyValue string Lista właściwości w postaci par nazwa i wartość z listy obsługiwanych właściwości.
MaterializedViewName string ✔️ Nazwa zmaterializowanego widoku.
SourceTableName string ✔️ Nazwa tabeli źródłowej, w której zdefiniowano widok.
Zapytanie string ✔️ Definicja zapytania zmaterializowanego widoku.

Obsługiwane właściwości

Następujące właściwości są obsługiwane w klauzuli with(PropertyName=PropertyValue) . Wszystkie właściwości są opcjonalne.

Nazwa Typ Opis
lookback timespan Prawidłowe tylko dla arg_max//arg_mintake_any zmaterializowanych widoków. Ogranicza okres, w którym oczekiwane są duplikaty. Na przykład jeśli w widoku zostanie określone arg_max spojrzenie 6 godzin, deduplikacja między nowo pozyskanych rekordów a istniejącymi będzie uwzględniać tylko rekordy, które zostały pozyskane do 6 godzin temu.

Funkcja lookback jest względna względem .ingestion_time Niepoprawne zdefiniowanie okresu wyszukiwania może prowadzić do duplikatów w zmaterializowanym widoku. Jeśli na przykład rekord dla określonego klucza zostanie pozyskany 10 godzin po pozyskaniu rekordu dla tego samego klucza, a funkcja wyszukiwania zostanie ustawiona na 6 godzin, ten klucz będzie duplikatem w widoku. Okres wyszukiwania jest stosowany zarówno w czasie materializacji , jak i w czasie zapytania.
autoUpdateSchema bool Określa, czy widok ma być automatycznie aktualizowany w tabeli źródłowej. Wartość domyślna to false. Ta opcja jest prawidłowa tylko dla widoków typu arg_max(Timestamp, *)//arg_min(Timestamp, *)take_any(*) (tylko wtedy, gdy argument kolumny to ).* Jeśli ta opcja jest ustawiona na truewartość , zmiany w tabeli źródłowej zostaną automatycznie odzwierciedlone w zmaterializowanym widoku.
dimensionTables array Argument dynamiczny, który zawiera tablicę tabel wymiarów w widoku. Zobacz Parametr zapytania.
folder string Folder zmaterializowanego widoku.
docString string Ciąg, który dokumentuje zmaterializowany widok.

Zwraca

Schemat danych wyjściowych:

Nazwa Typ Opis
Nazwa string Nazwa zmaterializowanego widoku.
Sourcetable string Nazwa tabeli źródłowej, w której zdefiniowano widok.
Zapytanie string Definicja zapytania zmaterializowanego widoku.
MaterializedTo datetime Maksymalna zmaterializowana sygnatura czasowa ingestion_time() w tabeli źródłowej. Aby uzyskać więcej informacji, zobacz jak działają zmaterializowane widoki.
LastRun datetime Czas ostatniego uruchomienia materializacji.
LastRunResult string Wynik ostatniego uruchomienia. Zwraca wartość Completed dla pomyślnych przebiegów, w przeciwnym razie Failed.
IsHealthy bool true gdy widok jest uznawany za w dobrej kondycji, false w przeciwnym razie. Widok jest uznawany za w dobrej kondycji, jeśli został pomyślnie zmaterializowany do ostatniej godziny (MaterializedTo jest większy niż ago(1h)).
IsEnabled bool true po włączeniu widoku (zobacz Wyłączanie lub włączanie zmaterializowanego widoku).
Folder string Folder, w którym jest tworzony zmaterializowany widok.
DocString string Opis przypisany do zmaterializowanego widoku.
AutoUpdateSchema bool Określa, czy widok jest włączony dla automatycznych aktualizacji.
EffectiveDateTime datetime Data wejścia w życie widoku określona w czasie tworzenia (zobacz .create materialized-view).
Wyszukiwanie zwrotne timespan Przedział czasu ograniczający okres, w którym oczekiwane są duplikaty.

Przykłady

Modyfikowanie definicji zapytania zmaterializowanego widoku

Następujące polecenie modyfikuje definicję zapytania zmaterializowanego widoku MyView:

.alter materialized-view MyView on table MyTable
{
    MyTable | summarize arg_max(Column3, *) by Column1
}

Dane wyjściowe

Nazwa Sourcetable Zapytanie MaterializedTo LastRun LastRunResult IsHealthy IsEnabled Folder DocString AutoUpdateSchema EffectiveDateTime Wyszukiwanie zwrotne
Mój widok Mytable MyTable | summarize arg_max(Column3, *) by Column1 2023-02-26T16:40:03.3345704Z 2023-02-26T16:44:15.9033667Z Ukończone true true fałsz 2023-02-23T14:01:42.5172342Z

Przypadki zastosowań

  • Dodaj agregacje do widoku — na przykład dodaj avg agregację do T | summarize count(), min(Value) by Idelementu , zmieniając zapytanie widoku na T | summarize count(), min(Value), avg(Value) by Id.
  • Zmień operatory inne niż operator podsumowania. Na przykład odfiltruj niektóre rekordy, zmieniając T | summarize arg_max(Timestamp, *) by User wartość na T | where User != 'someone' | summarize arg_max(Timestamp, *) by User.
  • Zmień bez zmiany kwerendy z powodu zmiany w tabeli źródłowej. Załóżmy na przykład, że widok T | summarize arg_max(Timestamp, *) by Idelementu , który nie jest ustawiony na autoUpdateSchema wartość (zobacz .create materialized-view polecenie). Jeśli kolumna zostanie dodana lub usunięta z tabeli źródłowej widoku, widok zostanie automatycznie wyłączony. Wykonaj polecenie alter z dokładnie tym samym zapytaniem, aby zmienić schemat zmaterializowanego widoku w celu dostosowania go do nowego schematu tabeli. Widok nadal musi być jawnie włączony po zmianie przy użyciu polecenia włącz zmaterializowany widok .

Ograniczenia

  • Zmiany nie są obsługiwane:

    • Zmiany w zmaterializowanej grupie widoków według wyrażeń.
    • Zmiana typu kolumny.
    • Zmienianie nazw kolumn. Na przykład zmiana widoku w celu T | summarize Count=count() by Id porzucenia T | summarize count() by Id kolumny count_ i utworzenie nowej kolumny Count, która początkowo zawiera tylko wartości null.
  • Wpływ na istniejące dane:

    • Zmiana zmaterializowanego widoku nie ma wpływu na istniejące dane.
    • Dodawanie filtrów do zapytania dotyczy tylko nowo pozyskanych rekordów i nie zmienia rekordów, które zostały już zmaterializowane.
      • Nowe kolumny otrzymują wartości null dla wszystkich istniejących rekordów, dopóki rekordy nie zostaną pozyskane po zmodyfikowaniu wartości null przez polecenie alter.
      • Na przykład: widok T | summarize count() by bin(Timestamp, 1d) elementu jest zmieniany na T | summarize count(), sum(Value) by bin(Timestamp, 1d). W przypadku określonego Timestamp=T rekordu, dla którego rekordy zostały już przetworzone przed zmianą widoku, kolumna sum zawiera częściowe dane. Ten widok zawiera tylko rekordy przetwarzane po wykonaniu zmiany.