.alter materialized-view
Gilt für: ✅Microsoft Fabric✅Azure Data Explorer
Durch Ändern der materialisierten Sicht kann die Abfrage einer materialisierten Sicht geändert werden, ohne die vorhandenen Daten in der Sicht zu verlieren.
Warnung
Seien Sie beim Ändern einer materialisierten Ansicht besonders vorsichtig. Falsche Verwendung kann zu Datenverlust führen.
Berechtigungen
Sie müssen mindestens über Berechtigungen für den Administrator für materialisierte Ansicht verfügen, um diesen Befehl auszuführen.
Syntax
.alter
materialized-view
[ with
(
PropertyName =
PropertyValue,
...)
] MaterializedViewName SourceTableName-Abfrage on table
{
}
Erfahren Sie mehr über Syntaxkonventionen.
Parameter
Name | Type | Erforderlich | Beschreibung |
---|---|---|---|
PropertyName, PropertyValue | string |
Liste der Eigenschaften in Form von Namen- und Wertpaaren aus der Liste der unterstützten Eigenschaften. | |
MaterializedViewName | string |
✔️ | Name der materialisierten Ansicht. |
SourceTableName | string |
✔️ | Name der Quelltabelle, für die die Ansicht definiert ist. |
Abfrage | string |
✔️ | Abfragedefinition der materialisierten Ansicht. |
Unterstützte Eigenschaften
Die folgenden Eigenschaften werden in der with
(
PropertyName =
PropertyValue-Klausel)
unterstützt. Alle Eigenschaften sind optional.
Name | Typ | Beschreibung |
---|---|---|
Lookback | timespan |
Nur für arg_max //arg_min take_any materialisierte Ansichten gültig. Er begrenzt den Zeitraum, in dem Duplikate erwartet werden. Wenn beispielsweise ein Lookback von 6 Stunden in einer arg_max Ansicht angegeben ist, berücksichtigt die Deduplizierung zwischen neu aufgenommenen Datensätzen und vorhandenen Datensätzen nur Datensätze, die vor bis zu 6 Stunden aufgenommen wurden. Lookback ist relativ zu ingestion_time . Das Falsche Definieren des Lookbackzeitraums kann zu Duplikaten in der materialisierten Ansicht führen. Wenn z. B. ein Datensatz für einen bestimmten Schlüssel 10 Stunden nach aufnahme eines Datensatzes für denselben Schlüssel aufgenommen wurde und der Lookback auf 6 Stunden festgelegt ist, wird dieser Schlüssel in der Ansicht ein Duplikat sein. Der Lookbackzeitraum wird sowohl während der Materialisierungszeit als auch während der Abfragezeit angewendet. |
autoUpdateSchema | bool |
Gibt an, ob die Ansicht bei Änderungen der Quelltabelle automatisch aktualisiert werden soll. Der Standardwert ist false . Diese Option ist nur für Ansichten des Typs arg_max(Timestamp, *) //arg_min(Timestamp, *) take_any(*) gültig (nur wenn das Argument der Spalte lautet).* Wenn diese Option auf true festgelegt ist, werden Änderungen an der Quelltabelle automatisch in der materialisierten Ansicht angezeigt. |
dimensionTables | array | Ein dynamisches Argument, das ein Array von Dimensionstabellen in der Ansicht enthält. Siehe Abfrageparameter. |
folder | string |
Der Ordner der materialisierten Ansicht. |
docString | string |
Eine Zeichenfolge, die die materialisierte Ansicht dokumentiert. |
Gibt zurück
Ausgabeschema:
Name | Typ | BESCHREIBUNG |
---|---|---|
Name | string |
Name der materialisierten Ansicht. |
SourceTable | string |
Name der Quelltabelle, für die die Ansicht definiert ist. |
Abfrage | string |
Abfragedefinition der materialisierten Ansicht. |
MaterializedTo | datetime |
Maximale materialisierte ingestion_time() Zeitstempel in der Quelltabelle. Weitere Informationen finden Sie unter materialisierte Ansichten. |
LastRun | datetime |
Zeitpunkt der letzten Ausführung der Materialisierung. |
LastRunResult | string |
Ergebnis der letzten Ausführung. Gibt für erfolgreiche Ausführungen Completed zurück, andernfalls Failed . |
IsHealthy | bool |
true wenn die Ansicht als fehlerfrei betrachtet wird, false andernfalls. Die Ansicht gilt als fehlerfrei, wenn sie bis zur letzten Stunde erfolgreich materialisiert wurde (MaterializedTo ist größer als ago(1h) ). |
IsEnabled | bool |
true wenn die Ansicht aktiviert ist (siehe Deaktivieren oder Aktivieren der materialisierten Ansicht). |
Ordner | string |
Ordner, unter dem die materialisierte Ansicht erstellt wird. |
DocString | string |
Beschreibung, die der materialisierten Ansicht zugewiesen ist. |
AutoUpdateSchema | bool |
Gibt an, ob die Ansicht für automatische Updates aktiviert ist. |
EffectiveDateTime | datetime |
Effektive Datumszeit der Ansicht, bestimmt während der Erstellungszeit (siehe .create materialized-view ). |
Rückblick | timespan |
Die Zeitspanne begrenzt den Zeitraum, in dem Duplikate erwartet werden. |
Beispiele
Ändern der Abfragedefinition einer materialisierten Ansicht
Mit dem folgenden Befehl wird die Abfragedefinition der materialisierten Ansicht MyView geändert:
.alter materialized-view MyView on table MyTable
{
MyTable | summarize arg_max(Column3, *) by Column1
}
Output
Name | SourceTable | Abfrage | MaterializedTo | LastRun | LastRunResult | IsHealthy | IsEnabled | Ordner | DocString | AutoUpdateSchema | EffectiveDateTime | Rückblick |
---|---|---|---|---|---|---|---|---|---|---|---|---|
MyView | MyTable | MyTable | zusammenfassen arg_max(Spalte3, *) nach Spalte1 | 2023-02-26T16:40:03.3345704Z | 2023-02-26T16:44:15.9033667Z | Abgeschlossen | true | true | false | 2023-02-23T14:01:42.5172342Z |
Anwendungsfälle
- Fügen Sie der Ansicht Aggregationen hinzu , z. B. Hinzufügen von
avg
Aggregation zuT | summarize count(), min(Value) by Id
, durch Ändern der Ansichtsabfrage zuT | summarize count(), min(Value), avg(Value) by Id
. - Ändern Sie andere Operatoren als den Zusammenfassungsoperator. Filtern Sie z. B. einige Datensätze durch Ändern in
T | summarize arg_max(Timestamp, *) by User
T | where User != 'someone' | summarize arg_max(Timestamp, *) by User
. - Ändern Sie die Abfrage aufgrund einer Änderung in der Quelltabelle ohne Änderung. Angenommen, eine Ansicht von
T | summarize arg_max(Timestamp, *) by Id
, die nicht auf (siehe.create materialized-view
Befehl) festgelegtautoUpdateSchema
ist. Wenn eine Spalte aus der Quelltabelle der Ansicht hinzugefügt oder entfernt wird, wird die Ansicht automatisch deaktiviert. Führen Sie den Änderungsbefehl mit derselben Abfrage aus, um das Schema der materialisierten Ansicht so zu ändern, dass es mit dem neuen Tabellenschema übereinstimmt. Die Ansicht muss nach der Änderung weiterhin explizit aktiviert werden. Verwenden Sie dazu den Befehl "Materialisierte Ansicht aktivieren".
Begrenzungen
Änderungen werden nicht unterstützt:
- Änderungen an der materialisierten Ansichtsgruppe nach Ausdrücken.
- Ändern des Spaltentyps.
- Umbenennen von Spalten Beispielsweise wird durch Ändern einer Ansicht von
T | summarize count() by Id
"T | summarize Count=count() by Id
Spaltenabbruch"count_
eine neue SpalteCount
erstellt, die anfänglich nur NULL-Werte enthält.
Auswirkungen auf vorhandene Daten:
- Das Ändern der materialisierten Ansicht hat keine Auswirkungen auf vorhandene Daten.
- Das Hinzufügen von Filtern zur Abfrage gilt nur für neu aufgenommene Datensätze und ändert keine Datensätze, die bereits materialisiert wurden.
- Neue Spalten erhalten Nullwerte für alle vorhandenen Datensätze, bis Datensätze, die nach dem Änderungsbefehl aufgenommen wurden, die NULL-Werte ändern.
- Beispiel: Eine Ansicht von
T | summarize count() by bin(Timestamp, 1d)
wird geändert inT | summarize count(), sum(Value) by bin(Timestamp, 1d)
. Für einen bestimmten DatensatzTimestamp=T
, für den Datensätze bereits verarbeitet wurden, bevor die Ansicht geändert wird, enthält diesum
Spalte Teildaten. Diese Ansicht enthält nur Datensätze, die nach der Änderungsausführung verarbeitet wurden.