Erkennen von Anomalien bei der Datenqualität

Das Zurückgeben eines Wertes aus einer Datenmetrikfunktion (DMF) liefert nützliche Informationen, aber es kann schwierig sein zu wissen, ob dies auf ein Problem mit der Datenqualität hinweist. Sie können eine Erwartung definieren, wenn Sie wissen, was ein akzeptabler Wert ist. Es könnte jedoch schwierig sein, genügend manuelle Regeln zu definieren, um alle möglichen Datenqualitätsprobleme zu identifizieren.

Als Lösung bietet Snowflake einen Algorithmus, der Anomalien in den von einer DMF zurückgegebenen Werten erkennen kann. Snowflake trainiert diesen Algorithmus mit historischen Daten und identifiziert dann automatisch Rückgabewerte, die über oder unter einem vorhergesagten Bereich liegen.

Sie können die Anomalieerkennung für die folgenden System-DMFs aktivieren:

  • ROW_COUNT: Verwenden Sie diese Funktion, um Anomalien beim Datenvolumen in einer Tabelle zu erkennen.

  • FRESHNESS: Verwenden Sie diese Funktion, um Anomalien anhand der Häufigkeit der Aktualisierung einer Tabelle zu erkennen.

Das folgende Beispiel zeigt, wie Sie die Anomalieerkennung für die Zuordnung zwischen der DMF ROW_COUNT und der Tabelle t1 aktivieren:

ALTER TABLE t1
  ADD DATA METRIC FUNCTION SNOWFLAKE.CORE.ROW_COUNT ON ()
    ANOMALY_DETECTION = TRUE;
Copy

Snowflake trainiert den Algorithmus und beginnt dann automatisch mit der Erkennung von Anomalien beim Volumen der Tabelle t1.

Der Trainingszeitraum

Wenn Sie die Anomalieerkennung aktivieren, trainiert Snowflake den Algorithmus zur Anomalieerkennung anhand historischer Daten. Die Länge des Trainingszeitraums hängt davon ab, wie häufig die DMF ausgeführt wird.

  • Für DMFs, die häufig ausgeführt werden, benötigt Snowflake mindestens zwei Wochen an DMF-Daten, um mit der Erkennung von Anomalien zu beginnen. Dieser Zeitraum von zwei Wochen ist wichtig, um die wöchentliche Saisonalität festzulegen. Wenn die DMF länger ausgeführt wird, trainiert Snowflake den Algorithmus mit Daten von bis zu 60 Tagen. Dieser längere Trainingszeitraum erzeugt monatliche Saisonalität und erhöht die Genauigkeit. Snowflake empfiehlt, den Algorithmus mit Daten von 60 Tagen zu trainieren, um Anomalien mit einem hohen Maß an Sicherheit zu erkennen.

  • Für DMFs ,die selten oder nach einem Trigger-basierten Zeitplan ausgeführt werden, muss Snowflake mindestens zwei Datenpunkte haben, um den Algorithmus zu trainieren. Wenn beispielsweise eine DMF jeden Monat ausgeführt wird, blickt Snowflake zwei Monate zurück, um den Algorithmus zu trainieren.

Sie können feststellen, ob sich Snowflake noch im Trainingszeitraum befindet, indem Sie die Funktion DATA_METRIC_FUNCTION_REFERENCES ausführen. Wenn die Anomalieerkennung aktiviert wurde, der Algorithmus aber noch trainiert wird, enthält die Spalte anomaly_detection_status der Ausgabe den Wert TRAINING_IN_PROGRESS.

Aktivieren der Anomalieerkennung

Sie können die Anomalieerkennung für eine DMF-Zuordnung aktivieren, wenn Sie die DMF zum ersten Mal einem Objekt zuordnen. Sie können sie aber auch noch später aktivieren.

Beispiel: Aktivieren der Anomalieerkennung beim Zuordnen der DMF

Um die Anomalieerkennung bei der Zuordnung der DMF FRESHNESS zur Ansicht v1 zu aktivieren, führen Sie den folgenden Befehl aus:

ALTER VIEW v1
  ADD DATA METRIC FUNCTION SNOWFLAKE.CORE.FRESHNESS ON (c_timestamp)
    ANOMALY_DETECTION = TRUE;
Copy
Beispiel: Aktivieren der Anomalieerkennung für eine bestehende Zuordnung

Zur Aktivierung der Anomalieerkennung bei einer bestehenden Zuordnung zwischen der DMF ROW_COUNT und der Tabelle t1 führen Sie den folgenden Befehl aus:

ALTER TABLE t1
  MODIFY DATA METRIC FUNCTION SNOWFLAKE.CORE.ROW_COUNT ON ()
    SET ANOMALY_DETECTION = TRUE;
Copy

Anpassen der Empfindlichkeitsstufen der Anomalieerkennung

Nachdem Sie die Anomalieerkennung aktiviert haben, können Sie verfolgen, wie viele Anomalien in Ihrem Konto auftreten. Wenn die Anzahl der Anomalien zu niedrig oder zu hoch erscheint, können Sie die Empfindlichkeitsstufe des Anomalieerkennungsalgorithmus anpassen.

  • Wenn es zu viele falsch-positive Werte gibt (d. h. Werte, die fälschlicherweise als Anomalien identifiziert wurden), können Sie die Empfindlichkeit in LOW ändern, um weniger Anomalien zu finden.

  • Wenn es zu viele falsch-negative Ergebnisse gibt (d. h. Werte, die nicht als Anomalien identifiziert wurden, es aber tatsächlich sind), können Sie die Empfindlichkeit in HIGH ändern, um mehr Anomalien zu finden.

Der Standardwert für die Empfindlichkeitsstufe ist MEDIUM.

Um beispielsweise die Empfindlichkeit für eine DMF-Zuordnung zu erhöhen, die Anomalien beim Volumen der Tabelle t1 findet, führen Sie den folgenden Befehl aus:

ALTER TABLE t1
  MODIFY DATA METRIC FUNCTION SNOWFLAKE.CORE.ROW_COUNT ON ()
    SET SENSITIVITY = 'HIGH';
Copy

Deaktivieren der Anomalieerkennung

Sie können die Anomalieerkennung für eine DMF-Zuordnung jederzeit deaktivieren, indem Sie eine ALTER-Anweisung zum Ändern des Objekts verwenden.

Zur Aktivierung der Anomalieerkennung bei der Zuordnung zwischen der DMF ROW_COUNT und der Tabelle t1 führen Sie beispielsweise den folgenden Befehl aus:

ALTER TABLE t1
  MODIFY DATA METRIC FUNCTION SNOWFLAKE.CORE.ROW_COUNT ON ()
    SET ANOMALY_DETECTION = FALSE;
Copy

Identifizieren von Anomalien

Sie können Anomalien anhand folgender Tabellen und Ansichten identifizieren:

SNOWFLAKE.LOCAL.DATA_QUALITY_MONITORING_RESULTS_RAW

Die Ergebnisse der Datenqualität werden in der speziellen Ereignistabelle SNOWFLAKE.LOCAL.DATA_QUALITY_MONITORING_RESULTS_RAW erfasst.

Wenn die Anomalieerkennung für eine DMF-Zuordnung aktiviert ist, werden der Tabelle jedes Mal zwei Zeilen hinzugefügt, wenn Snowflake das Ergebnis der DMF berechnet. Die erste Zeile erfasst Informationen zu dem Objekt, mit dem die DMF, die DMF selbst und das Ergebnis der Datenqualitätsprüfung verbunden ist. Die zweite Zeile erfasst Informationen zur Anomalieerkennung.

Das Feld snow.data_metric.record_type in der Spalte record_attribute zeigt an, ob eine Zeile einer Anomalieerkennung entspricht. Dieses Feld hat zwei mögliche Werte:

  • ANOMALY_DETECTION_STATUS: Zeigt an, dass die Zeile einer Anomalieerkennung entspricht.

  • EVALUATION_RESULT: Zeigt an, dass die Zeile der Auswertung der DMF entspricht.

Identifizieren, ob es eine Anomalie gab

Nachdem Sie festgestellt haben, dass eine Zeile in der Ereignistabelle der Anomalieerkennung entspricht, können Sie das Feld snow.data_metric.evaluation_result in der Spalte resource_attribute überprüfen, um festzustellen, ob es eine Anomalie gab.

Dieses Feld enthält eine VARIANT, die den von der DMF zurückgegebenen Wert enthält, sowie einen BOOLEAN-Wert, der angibt, ob dieser Wert eine Anomalie war. Wenn beispielsweise der Wert des Felds snow.data_metric.evaluation_result den Wert 5, TRUE hat, dann war der zurückgegebene Wert 5 und Snowflake hat diesen als Anomalie identifiziert.

Zusätzliche Felder

Wenn die Zeile in der Ereignistabelle einer Anomalieerkennung entspricht, enthält die Spalte resource_attribute auch die folgenden Felder:

  • snow.data_metric.upper_bound: Höchster Wert, der von der DMF basierend auf dem Anomalieerkennungsalgorithmus zurückgegeben werden soll. Wenn der von der DMF zurückgegebene Wert über dieser Obergrenze liegt, handelt es sich um eine Anomalie.

  • snow.data_metric.lower_bound: Minimaler Wert, der von der DMF basierend auf dem Anomalieerkennungsalgorithmus zurückgegeben werden soll. Wenn der von der DMF zurückgegebene Wert unter dieser unteren Grenze liegt, handelt es sich um eine Anomalie.

  • snow.data_metric.forecast: Der Wert, von dem der Anomalieerkennungsalgorithmus vorhergesagt hat, dass er von der DMF zurückgegeben wird.

Ansicht DATA_QUALITY_MONITORING_ANOMALY_DETECTION

Die Ansicht Ansicht DATA_QUALITY_MONITORING_ANOMALY_DETECTION, die im Schema SNOWFLAKE.LOCAL vorhanden ist, vereinfacht die Informationen in der Ereignistabelle, um den Zugriff auf die DMF-Ergebnisse zu erleichtern.