.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
.alter
materialized-view
[ with
(
PropertyName=
PropertyValue,
...)
] MaterializedViewNameon table
SourceTableName{
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_min take_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 true wartość , 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ę doT | summarize count(), min(Value) by Id
elementu , zmieniając zapytanie widoku naT | 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ść naT | 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 Id
elementu , który nie jest ustawiony naautoUpdateSchema
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
porzuceniaT | summarize count() by Id
kolumnycount_
i utworzenie nowej kolumnyCount
, 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 naT | summarize count(), sum(Value) by bin(Timestamp, 1d)
. W przypadku określonegoTimestamp=T
rekordu, dla którego rekordy zostały już przetworzone przed zmianą widoku, kolumnasum
zawiera częściowe dane. Ten widok zawiera tylko rekordy przetwarzane po wykonaniu zmiany.
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla