Udostępnij za pośrednictwem


.alter materialized-view

Zmiana zmaterializowanego widoku może służyć do zmiany zapytania w zmaterializowanym widoku, zachowując istniejące dane w widoku.

Ostrzeżenie

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

Uprawnienia

Aby uruchomić to polecenie, musisz mieć co najmniej zmaterializowane uprawnienia administratora widoku.

Składnia

.altermaterialized-view [ with(PropertyName = PropertyValue,...)] Zmaterializowane zapytanie on table SourceTableName{ }

Dowiedz się więcej na temat konwencji składni.

Parametry

Nazwisko Type Wymagania opis
PropertyName, PropertyValue string Lista właściwości w postaci par nazw i wartości 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.

Nazwisko Pisz Opis
lookback timespan Prawidłowe tylko dla arg_max//arg_mintake_any zmaterializowanych widoków. Ogranicza okres, w którym oczekiwane są duplikaty. Jeśli na przykład w widoku zostanie określone arg_max spojrzenie zwrotne z 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 elementu 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 jest pozyskiwany 10 godzin po pozyskaniu rekordu dla tego samego klucza, a wyszukiwanie jest ustawione 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 Czy automatycznie zaktualizować widok 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 ma wartość true, zmiany w tabeli źródłowej zostaną automatycznie odzwierciedlone w zmaterializowanym widoku.
dimensionTables tablica Argument dynamiczny, który zawiera tablicę tabel wymiarów w widoku. Zobacz Parametr zapytania.
w folderze lokalnego systemu plików string Folder zmaterializowanego widoku.
docString string Ciąg, który dokumentuje zmaterializowany widok.

Zwraca

Schemat danych wyjściowych:

Nazwisko Pisz opis
Nazwa/nazwisko string Nazwa zmaterializowanego widoku.
Tabela źródłowa string Nazwa tabeli źródłowej, w której zdefiniowano widok.
Query 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 jeśli 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 gdy widok jest włączony (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 aktualizacji automatycznych.
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
}

Wyjście

Nazwisko Tabela źródłowa Query 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 prawda prawda fałsz 2023-02-23T14:01:42.5172342Z

Przypadki użycia

  • 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 zmian w kwerendzie 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, aby dopasować 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 T | summarize count() by Id w celu T | summarize Count=count() by Id porzucenia 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 zostały 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.