.create-or-alter materialized-view
Dotyczy: ✅Microsoft Fabric✅Azure Data Explorer
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-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. 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 true wartość . 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 true wartość , 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_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 ingestion_time(). Jeśli zmaterializowane zapytanie widoku nie zachowuje ingestion_time() wartości, nie można zdefiniować odnośnika w widoku. Zobacz zmaterializowane ograniczenia widoków i znane problemy. 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_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
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 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.