Freigeben über


.disable | .enable materialized-view

Deaktiviert oder aktiviert den Materialisierungsprozess für eine materialisierte Ansicht.

Hinweis

Da es einige wichtige Leistungsauswirkungen im Zusammenhang mit dem Deaktivieren/Aktivieren einer materialisierten Ansicht gibt, stellen Sie sicher, dass Sie mit diesen vertraut sind, bevor Sie mit der Verwendung dieses Befehls fortfahren. Weitere Informationen finden Sie unter den Leistungsauswirkungen des Abschnitts "Materialisierte Ansichten aktivieren/deaktivieren".

Berechtigungen

Sie müssen mindestens über materialisierte Ansichtsadministrator verfügen, um diese Befehle auszuführen.

Syntax

.enable | disablematerialized-view MaterializedViewName

Erfahren Sie mehr über Syntaxkonventionen.

Parameter

Name Type Erforderlich Beschreibung
MaterializedViewName string ✔️ Name der materialisierten Ansicht.

Gibt zurück

Wenn sich die materialisierte Ansicht bereits im Zustand befindet, in dem der Befehl versucht, sie festzulegen, schlägt der Befehl mit einem Fehler fehl, der angibt, dass dies der Fall ist.

Andernfalls werden die Details zur materialisierten Ansicht zurückgegeben, deren IsEnabled-Eigenschaft geändert wurde.

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

Aktivieren einer materialisierten Ansicht

Mit dem folgenden Befehl wird ansichtsname für materialisierte Ansicht aktiviert:

.enable materialized-view ViewName

Output

Name SourceTable Abfrage MaterializedTo LastRun LastRunResult IsHealthy IsEnabled Ordner DocString AutoUpdateSchema EffectiveDateTime Rückblick
Ansichtsname TableName TableName | 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

Deaktivieren einer materialisierten Ansicht

Mit dem folgenden Befehl wird die materialisierte Ansicht "ViewName" deaktiviert:

.disable materialized-view ViewName

Output

Name SourceTable Abfrage MaterializedTo LastRun LastRunResult IsHealthy IsEnabled Ordner DocString AutoUpdateSchema EffectiveDateTime Rückblick
Ansichtsname TableName TableName | zusammenfassen arg_max(Spalte3, *) nach Spalte1 2023-02-26T16:40:03.3345704Z 2023-02-26T16:44:15.9033667Z Abgeschlossen true false false 2023-02-23T14:01:42.5172342Z

Hinweise

Deaktivieren von materialisierten Ansichten

Eine materialisierte Ansicht kann auf eine der folgenden Arten deaktiviert werden:

  • Automatische Deaktivierung durch das System: Materialisierte Ansicht wird automatisch deaktiviert, wenn die Materialisierung mit einem dauerhaften Fehler fehlschlägt. Dieser Vorgang kann in den folgenden Instanzen auftreten:
    • Schemaänderungen, die mit der Ansichtsdefinition inkonsistent sind.
    • Änderungen an der Quelltabelle, die dazu führen, dass die materialisierte Ansichtsabfrage semantisch ungültig ist.
  • Deaktivieren Sie die materialisierte Ansicht explizit: Wenn sich die materialisierte Ansicht negativ auf die Integrität des Clusters auswirkt (z. B. zu viel CPU verbrauchen), deaktivieren Sie die Ansicht mit dem .disable materialized-view Befehl.

Materialisierte Ansichten und Sicherheit auf Zeilenebene

Wenn eine materialisierte Ansicht deaktiviert ist und während die Ansicht deaktiviert ist, definiert jemand eine Sicherheitsrichtlinie auf Zeilenebene in der Quelltabelle der Ansicht, aber die materialisierte Ansicht hat keine Sicherheitsrichtlinie auf Zeilenebene definiert, und das Aktivieren der Ansicht schlägt aus Sicherheitsgründen fehl. Um diesen Fehler zu beheben, können Sie Folgendes tun:

  • Definieren Sie die Sicherheitsrichtlinie auf Zeilenebene über die materialisierte Ansicht.
  • Wählen Sie aus, den Fehler zu ignorieren, indem Sie dem Befehl "Richtlinie aktivieren" eine Eigenschaft hinzufügen allowMaterializedViewsWithoutRowLevelSecurity . Zum Beispiel:
    .enable materialized-view MV with (allowMaterializedViewsWithoutRowLevelSecurity=true)

Leistungsauswirkungen der Aktivierung/Deaktivierung materialisierter Ansichten

  • Wenn eine materialisierte Ansicht deaktiviert ist, wird die Materialisierung angehalten und verbraucht keine Ressourcen aus dem Cluster. Das Abfragen der materialisierten Ansicht ist auch dann möglich, wenn sie deaktiviert ist, aber die Leistung kann schlecht sein. Die Leistung einer deaktivierten materialisierten Ansicht hängt von der Anzahl der Datensätze ab, die in die Quelltabelle aufgenommen wurden, da sie deaktiviert wurde.
  • Sie können eine materialisierte Ansicht aktivieren, die zuvor deaktiviert wurde. Wenn sie wieder aktiviert ist, wird die materialisierte Ansicht von dem Punkt, an dem sie unterbrochen wurde, weiterhin materialisiert, und es werden keine Datensätze übersprungen. Wenn die Ansicht lange deaktiviert wurde, kann es sehr lange dauern, bis sie nachholen kann.
  • Das Deaktivieren einer Ansicht wird nur empfohlen, wenn Sie vermuten, dass sich die Ansicht auf die Integrität Ihres Clusters auswirkt.