Udostępnij za pośrednictwem


.create-or-alter materialized-view

Tworzy zmaterializowany widok lub zmienia istniejący zmaterializowany widok.

Uprawnienia

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

Składnia

.create-or-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. Nazwa widoku nie może powodować konfliktu z nazwami tabel lub funkcji w tej samej bazie danych i musi być zgodna z regułami nazewnictwa identyfikatorów.
SourceTableName string ✔️ Nazwa tabeli źródłowej, w której zdefiniowano widok.
Zapytanie string ✔️ Definicja zapytania zmaterializowanego widoku.

Obsługiwane właściwości

Nowa tabela

Jeśli tabela jest nowa, następujące właściwości są obsługiwane w with(właściwości PropertyName = PropertyValue ). Wszystkie właściwości są opcjonalne.

Nazwisko Pisz Opis
wypełnienie wsteczne bool Czy utworzyć widok na podstawie wszystkich rekordów aktualnie w SourceTable (true) lub utworzyć go od teraz (false). Wartość domyślna to false. Aby uzyskać więcej informacji, zobacz Wypełnianie wsteczne zmaterializowanego widoku.
effectiveDateTime datetime Istotne tylko wtedy, gdy używasz polecenia backfill. Jeśli jest ustawiona, tworzenie wypełniania jest tworzone tylko z rekordami pozyskanymi po dacie/godziny. backfill musi być również ustawiona na truewartość . Ta właściwość oczekuje literału daty/godziny; na przykład effectiveDateTime=datetime(2019-05-01).
updateExtentsCreationTime bool Istotne tylko wtedy, gdy używasz polecenia backfill. Jeśli jest ustawiona na truewartość , czas tworzenia zakresu jest przypisywany na podstawie klucza grupowania daty/godziny w trakcie procesu wypełniania. Aby uzyskać więcej informacji, zobacz Wypełnianie wsteczne zmaterializowanego widoku.
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.
allowMaterializedViewsWithoutRowLevelSecurity bool Umożliwia utworzenie zmaterializowanego widoku w tabeli z włączonymi zasadami zabezpieczeń na poziomie wiersza.

Istniejąca tabela

Jeśli tabela już istnieje, w właściwości PropertyName = PropertyValue )są obsługiwane with(tylko następujące podzestaw właściwości . 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

Tworzenie lub zmienianie zmaterializowanego widoku

Następujące polecenie tworzy nowy lub zmienia istniejący zmaterializowany widok o nazwie ArgMax:

.create-or-alter materialized-view ArgMax on table T
{
    T | summarize arg_max(Timestamp, *) by User
}

Wyjście

Nazwisko Tabela źródłowa Query MaterializedTo LastRun LastRunResult IsHealthy IsEnabled Folder DocString AutoUpdateSchema EffectiveDateTime Wyszukiwanie zwrotne
ArgMax T T | summarize arg_max(Sygnatura czasowa, *) według użytkownika 2023-02-26T16:40:03.3345704Z 2023-02-26T16:44:15.9033667Z Ukończone prawda prawda fałsz 2023-02-23T14:01:42.5172342Z

Uwagi

Jeśli zmaterializowany widok nie istnieje, to polecenie działa tak samo jak .create materialized-view.

Aby uzyskać więcej informacji, zobacz sekcje Parametry zapytania i Właściwości .

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.