.alter materialized-view
Dotyczy: ✅Microsoft Fabric✅Azure Data Explorer
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
.alter
materialized-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_min take_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ę 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 zmian w kwerendzie 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, 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 celuT | summarize Count=count() by Id
porzucenia 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 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 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.