Versenden von Benachrichtigungen bei Datenqualitätsproblemen¶
Snowflake bietet die folgenden Features, die identifizieren, wann der von einer Datenmetrikfunktion zurückgegebene Wert (DMF) auf ein Problem mit der Datenqualität hinweist:
Erwartungen – Ermöglicht das Verwenden eines booleschen Ausdrucks zum Vergleichen der Ausgabe einer DMF mit einem erwarteten Wert. Ein Rückgabewert, der nicht mit dem booleschen Ausdruck übereinstimmt, wird als Erwartungsverstoß angesehen.
Anomalieerkennung – Snowflake erkennt automatisch, wenn die Ausgabe von DMF eine Anomalie darstellt. Eine Anomalie tritt auf, wenn der von einer zurückgegebene Wert DMF über oder unter einem erwarteten Bereich liegt, der aufgrund historischer Daten erwartet wird.
Sie können eine Benachrichtigung senden, wenn eines dieser Features ein Problem mit der Datenqualität feststellt. Nach der Konfiguration von Snowflake wird eine Benachrichtigung gesendet, wenn gegen eine Erwartung verstoßen wird oder Snowflake eine Anomalie feststellt.
Sie aktivieren Benachrichtigungen auf Datenbankebene. Nach der Aktivierung generieren alle Objekte mit einer zugehörigen DMF in dieser Datenbank Benachrichtigungen, wenn ein Qualitätsproblem vorliegt. Innerhalb einer Datenbank, die für Benachrichtigungen aktiviert ist, können Sie Benachrichtigungen für eine bestimmte Zuordnung zwischen einem Objekt in der Datenbank und einer DMF deaktivieren.
Workflow¶
Die Konfiguration von Snowflake zum Senden von Benachrichtigungen bei Datenqualitätsproblemen besteht aus den folgenden Aufgaben:
Erteilen von Zugriffssteuerungsrechten an den Datenbankeigentümer.
Ändern der Datenbank, um Benachrichtigungen zu konfigurieren und zu aktivieren.
Ein durchgängiges Beispiel für diesen Workflow finden Sie unter Erweitertes Beispiel.
Konfigurieren, wer Benachrichtigungen erhält¶
Definieren Sie die Benachrichtigungsempfänger, indem Sie E-Mail-Adressen direkt hinzufügen oder indem Sie eine Benachrichtigungsintegration erstellen.
Eine Benachrichtigungsintegration ist ein Snowflake-Objekt, das als Schnittstelle zwischen Snowflake und Nachrichtendiensten von Drittanbietern dient. Um Benachrichtigungen für Datenqualitätsprobleme zu versenden, erstellen Sie eine Benachrichtigungsintegration für den Nachrichtendienst. Die Überwachung der Datenqualität unterstützt die folgenden Benachrichtigungstypen:
E-Mail-Benachrichtigungen
Benachrichtigungen, die über externe Systeme wie Slack gesendet werden, unter Verwendung von Webhooks.
Wenn Sie E-Mail-Adressen hinzufügen möchten, ohne eine E-Mail-Integration zu erstellen, finden Sie entsprechende Informationen unter Datenbankeinstellungen für Datenqualitätsbenachrichtigungen konfigurieren.
Benachrichtigungen per E-Mail senden¶
Um Benachrichtigungen an eine Liste von E-Mail-Adressen zu senden, führen Sie eine CREATE NOTIFICATION INTEGRATION-Anweisung aus, um eine Integration vom Typ EMAIL zu erstellen. Ihre Integration muss den ALLOWED_RECIPIENTS Parameter verwenden, um eine Liste von E-Mail-Adressen anzugeben, an die Benachrichtigungen gesendet werden sollen. Sie können nur E-Mail-Adressen hinzufügen, die verifiziert sind. Informationen zur Verifizierung einer E-Mail-Adresse finden Sie unter E-Mail-Adressen der E-Mail-Benachrichtigungsempfänger verifizieren.
Tipp
Sie können E-Mail-Benachrichtigungen an eine Distributionsliste oder Gruppe senden, die außerhalb von Snowflake verwaltet wird. Weitere Informationen dazu finden Sie unter dem zugehörigen Artikel in der Knowledge Base.
Um beispielsweise eine Benachrichtigungsintegration so zu erstellen, dass der Benutzer joe.smith@example.com per E-Mail benachrichtigt werden kann, wenn ein Problem mit der Datenqualität vorliegt, führen Sie den folgenden Befehl aus:
Bemerkung
E-Mail-Benachrichtigungen werden über die Amazon Web Services (AWS) von Snowflake verarbeitet, die AWS Simple Email Service (SES) verwenden. Der Inhalt einer mit AWS gesendeten E-Mail-Nachricht kann von Snowflake bis zu dreißig Tage lang aufbewahrt werden, um die Zustellung der Nachricht zu verwalten. Nach Ablauf dieser Frist wird der Inhalt der Nachricht gelöscht.
Benachrichtigungen mithilfe eines Webhooks für ein externes System senden¶
Sie können Benachrichtigungen zur Datenqualität über ein externes System senden, indem Sie eine Webhook-Integration erstellen. Eine Liste der externen Systeme, die Sie verwenden können, finden Sie unter Versenden von Webhook-Benachrichtigungen.
Um Webhooks zum Versenden von Benachrichtigungen zur Datenqualität zu verwenden, führen Sie die folgenden Schritte aus:
Wenn Sie zum Beispiel Slack zum Senden von Benachrichtigungen verwenden möchten, können Sie die folgenden Befehle ausführen:
Berechtigungen erteilen¶
Um Benachrichtigungen für Objekte innerhalb einer Datenbank einzurichten, muss der Datenbankeigentümer über die folgenden Berechtigungen verfügen:
MANAGE DATA QUALITY für das Konto
USAGE für jede Benachrichtigungsintegration, die zum Senden von Benachrichtigungen verwendet wird. Dies ist nur erforderlich, wenn eine Benachrichtigungsintegration verwendet wird.
Angenommen, ein Benutzer mit der data_steward-Rolle ist der Eigentümer der Datenbank my_db. Um die Benachrichtigungsintegration my_email_int zu verwenden, um Benachrichtigungen zu Qualitätsproblemen zu senden, die von DMFs in Verbindung mit Tabellen und Ansichten in my_db entdeckt wurden, führen Sie die folgenden Befehle aus:
Datenbankeinstellungen für Datenqualitätsbenachrichtigungen konfigurieren¶
Sie können Benachrichtigungen für eine Datenbank aktivieren, indem Sie eine ALTER DATABASE-Anweisung mit der DATA_QUALITY_MONITORING_SETTINGS-Eigenschaft ausführen. Diese Eigenschaft verwendet eine in Dollarzeichen eingeschlossene YAML-Spezifikation, um die Benachrichtigungseinstellungen zu definieren.
DATA_QUALITY_MONITORING_SETTINGS gibt die folgenden Aspekte von Benachrichtigungen zur Datenqualität an:
Gibt an, ob Benachrichtigungen für die Datenbank aktiviert oder deaktiviert sind.
Welche E-Mail-Adressen Benachrichtigungen erhalten (angegeben ohne Benachrichtigungsintegration).
Welche Benachrichtigungsintegrationen, falls vorhanden, die Benachrichtigungen versenden. Sie können mehrere Benachrichtigungsintegrationen angeben, um Benachrichtigungen über verschiedene Kanäle zu versenden.
Wie oft Benachrichtigungen gesendet werden.
Ob die Benachrichtigungen den Namen der spezifischen Tabelle oder Ansicht enthalten, die das Datenqualitätsproblem aufweist. Diese Metadaten helfen, das Problem schnell zu identifizieren und zu beheben.
Beispiel:
Dieses Beispiel gibt die folgende Konfiguration an:
Benachrichtigungen sind für die Datenbank
my_dbaktiviert.Benachrichtigungen werden an zwei E-Mail-Adressen und einen externen Kanal gesendet.
Benachrichtigungen werden nicht häufiger als einmal alle vier Stunden gesendet.
Benachrichtigungen enthalten Metadaten, die das Objekt und die zugeordnete DMF identifizieren.
Benachrichtigungen für eine bestimmte DMF-Zuordnung deaktivieren¶
Nachdem Sie Benachrichtigungen für eine Datenbank aktiviert haben, wird standardmäßig bei Datenqualitätsproblemen in einem beliebigen Objekt innerhalb der Datenbank eine Benachrichtigung generiert. Sie können Benachrichtigungen für eine bestimmte Zuordnung zwischen einem Objekt und einer DMF deaktivieren, um zu verhindern, dass Benachrichtigungen gesendet werden. Um Benachrichtigungen für eine Zuordnung zu deaktivieren, führen Sie eine ALTER <object> MODIFY DATA METRIC FUNCTION-Anweisung aus, um den Parameter DATA_QUALITY_NOTIFICATION auf FALSE festzulegen.
Nehmen wir zum Beispiel an, dass Benachrichtigungen für die Datenbank aktiviert sind, welche die Ansicht v2 enthält. Wenn Sie nicht möchten, dass Benachrichtigungen gesendet werden, wenn die BLANK_COUNT DMF Qualitätsprobleme mit der Spalte c1 feststellt, führen Sie den folgenden Befehl aus:
Feststellen, ob Benachrichtigungen aktiviert sind¶
Die Funktion DATA_METRIC_FUNCTION_REFERENCES gibt Informationen über die Zuordnung zwischen einem Objekt und einer DMF zurück. Die Ausgabe enthält eine Spalte data_quality_notification_status, mit der Sie feststellen können, ob Benachrichtigungen für die Zuordnung aktiviert sind.
Erweitertes Beispiel¶
Angenommen, Sie haben folgende Elemente in Ihrem Konto:
Eine Datenbank
my_db, die zwei Tabellen (t1undt2) und eine Ansicht (v1) enthält.Tabellen
t1undt2, die mit der ROW_COUNT DMFverbunden sind; die Anomalieerkennung ist für beide Zuordnungen aktiviert.Rolle
analystist der Eigentümer vonmy_db.Ansicht
v1ist mit der NULL_COUNT DMF verknüpft, und es ist eine Erwartung für die Zuordnung definiert.
Sie möchten, dass Benutzer eine E-Mail erhalten, wenn es eine Anomalie in den Tabellen t1 oder t2 gibt, aber Sie möchten keine Benachrichtigung senden, wenn es ein Qualitätsproblem mit der Ansicht v1 gibt.
Bemerkung
Dieses Beispiel zeigt, wie Sie eine Benachrichtigungsintegration verwenden, um E-Mail-Adressen anzugeben. Sie können auch E-Mail-Adressen direkt angeben, wenn Sie den Befehl ALTER DATABASE ausführen.
Erstellen Sie eine Benachrichtigungsintegration, die angibt, wer Benachrichtigungen erhalten soll, wenn es ein Problem mit der Datenqualität gibt:
Erteilen Sie Berechtigungen für die Rolle
analyst, die im Besitz vonmy_dbist:Konfigurieren Sie die Datenbankeinstellungen, um Benachrichtigungen zu aktivieren. Diese Benachrichtigungen enthalten den Namen des Objekts, bei dem das Datenqualitätsproblem aufgetreten ist.
Deaktivieren Sie Benachrichtigungen für eine Zuordnung zwischen Ansicht
v1und der NULL_COUNT DMF: