Überwachen von materialisierten Sichten

Gilt für: ✅Microsoft Fabric✅Azure Data Explorer

Überwachen Sie die Integrität der materialisierten Ansicht auf folgende Weise:

  • Überwachen Sie materialisierte Ansichtsmetriken im Azure-Portal.
    • Die materialisierte Ansichtsaltersmetrik MaterializedViewAgeSeconds sollte verwendet werden, um die Aktualität der Ansicht zu überwachen. Dies sollte die primäre Metrik sein, die überwacht werden soll.

Hinweis

Die Materialisierung überspringt niemals Daten, auch wenn konstante Fehler auftreten. Die Ansicht wird immer garantiert, die aktuellste Momentaufnahme der Abfrage basierend auf allen Datensätzen in der Quelltabelle zurückzugeben. Konstantenfehler beeinträchtigen die Abfrageleistung erheblich, verursachen aber keine falschen Ergebnisse in Ansichtsabfragen.

Problembehandlung für fehlerhafte materialisierte Ansichten

Die MaterializedViewHealth Metrik gibt an, ob eine materialisierte Ansicht fehlerfrei ist. Bevor eine materialisierte Ansicht ungesund wird, nimmt ihr Alter, das durch die MaterializedViewAgeSeconds Metrik festgestellt wird, allmählich zu.

Eine materialisierte Ansicht kann aus irgendeinem oder aus allen folgenden Gründen ungesund werden:

  • Der Materialisierungsprozess ist fehlgeschlagen. Die MaterializedViewResult-Metrik und der .show materialized-view failures Befehl können helfen, die Ursache des Fehlers zu identifizieren.
  • Möglicherweise hat das System die materialisierte Ansicht aufgrund von Änderungen an der Quelltabelle automatisch deaktiviert. Sie können überprüfen, ob die Ansicht deaktiviert ist, indem Sie die IsEnabled vom .show materialized-view Befehl zurückgegebene Spalte überprüfen. Weitere Details zu materialisierten Ansichteninschränkungen und bekannten Problemen
  • Die Datenbank verfügt nicht über ausreichende Kapazität, um alle eingehenden Daten rechtzeitig zu materialisieren. In diesem Fall gibt es möglicherweise keine Fehler bei der Ausführung. Das Alter der Ansicht nimmt jedoch allmählich zu, da es nicht in der Lage ist, mit der Aufnahmerate auf dem Laufenden zu bleiben. Es könnte mehrere Ursachen für diese Situation geben:
    • Es gibt mehr materialisierte Ansichten in der Datenbank, und die Datenbank verfügt nicht über ausreichende Kapazität, um alle Ansichten auszuführen. Siehe materialisierte Ansichtskapazitätsrichtlinie , um die Standardeinstellungen für die Anzahl der gleichzeitig ausgeführten materialisierten Ansichten zu ändern.
    • Die Materialisierung ist langsam, da sich die neu aufgenommenen Daten mit einem großen Teil der Ansicht überschneiden und es viele Datensätze gibt, die in jedem Materialisierungszyklus aktualisiert werden müssen. Weitere Informationen dazu, warum sich dies auf die Leistung der Ansicht auswirkt, erfahren Sie , wie materialisierte Ansichten funktionieren.

MaterializedViewResult-Metrik

Die MaterializedViewResult Metrik enthält Informationen zum Ergebnis eines Materialisierungszyklus und kann verwendet werden, um Probleme im materialisierten Ansichtsstatus zu identifizieren. Die Metrik enthält und Database MaterializedViewName eine Result Dimension.

Die Result Dimension kann einen der folgenden Werte aufweisen:

  • Erfolg: Materialisierung wurde erfolgreich abgeschlossen.

  • SourceTableNotFound: Die Quelltabelle der Materialisierungsansicht wurde gelöscht. Die materialisierte Ansicht wird dadurch automatisch deaktiviert.

  • SourceTableSchemaChange: Das Schema der Quelltabelle hat sich auf eine Weise geändert, die nicht mit der materialisierten Ansichtsdefinition kompatibel ist (materialisierte Ansichtsabfrage stimmt nicht mit dem materialisierten Ansichtsschema überein). Die materialisierte Ansicht wird dadurch automatisch deaktiviert.

  • Unzureichende Kapazität: Die Datenbank verfügt nicht über ausreichende Kapazität, um die materialisierte Ansicht zu materialisieren. Dies kann entweder auf fehlende Aufnahmekapazität oder fehlende Materialisierungskapazität hinweisen. Unzureichende Kapazitätsausfälle können vorübergehend sein, aber wenn sie häufig auftreten, empfehlen wir, die Datenbank zu skalieren oder die relevante Kapazität in der Richtlinie zu erhöhen.

  • Nicht genügend Ressourcen: Die Datenbank verfügt nicht über ausreichende Ressourcen (CPU/Arbeitsspeicher), um die materialisierte Ansicht zu materialisieren. Dieser Fehler kann vorübergehend sein, aber wenn es erneut auftritt, versuchen Sie, die Datenbank hoch oder außerhalb zu skalieren.

    • Wenn der Materialisierungsprozess auf Speichergrenzwerte trifft, können die $materialized-Ansichten-Workloadgruppengrenzwerte erhöht werden, um mehr Arbeitsspeicher oder CPU für den zu verbrauchden Materialisierungsprozess zu unterstützen.

    Mit dem folgenden Befehl wird beispielsweise die Workloadgruppe für materialisierte Ansichten so geändert, dass während der Materialisierung maximal 64 GIGABYTE (GB) Arbeitsspeicher pro Knoten verwendet werden (der Standardwert beträgt 15 GB):

    .alter-merge workload_group ['$materialized-views'] ```
    {
      "RequestLimitsPolicy": {
        "MaxMemoryPerQueryPerNode": {
          "Value": 68719241216
        }
      }
    } ```
    

    Hinweis

    MaxMemoryPerQueryPerNode kann nicht auf mehr als 50 % des Gesamtspeichers jedes Knotens festgelegt werden.

Materialisierte Ansichten in Folgedatenbanken

Materialisierte Ansichten können in Folgedatenbanken definiert werden. Die Überwachung dieser materialisierten Ansichten sollte jedoch auf der Leader-Datenbank basieren, in der die materialisierte Ansicht definiert ist. Speziell:

  • Metriken im Zusammenhang mit materialisierter Ansichtsausführung (MaterializedViewResult, MaterializedViewExtentsRebuild) sind nur in der Leader-Datenbank vorhanden. Metriken im Zusammenhang mit der Überwachung (MaterializedViewAgeSeconds, MaterializedViewHealth, MaterializedViewRecordsInDelta) werden auch in den Folgedatenbanken angezeigt.
  • Der Befehl ".show materialized-view"-Fehler funktioniert nur in der Füllzeichendatenbank.

Nachverfolgen des Ressourcenverbrauchs

Materialisierte Ansichten ressourcenverbrauch: Die ressourcen, die vom materialisierten Ansichtsmaterialisierungsprozess verbraucht werden, können mithilfe des .show commands-and-queries Befehls nachverfolgt werden. Filtern sie die Datensätze für eine bestimmte Ansicht mithilfe der folgenden Elemente (ersetzen DatabaseName und ViewName):

.show commands-and-queries 
| where Database  == "DatabaseName" and ClientActivityId startswith "DN.MaterializedViews;ViewName;"