データ品質問題の通知送信¶
Snowflakeは、データメトリック関数(DMF)によって返される値がデータ品質に問題があることを示す場合を識別する次の機能を提供します。
期待 --- ブール式を使用してDMFの出力を予想値と比較できます。ブール式と一致しない戻り値は、期待値違反と見なされます。
異常検出 --- Snowflakeは、DMFの出力が異常を構成した場合、それを自動的に検出します。DMFによって返された値が、過去のデータに基づき、予想範囲を上回るまたは下回る場合に異常が発生します。
これらの機能のいずれかがデータ品質の問題を特定した場合に、通知を送信できます。Snowflakeが構成された後、期待違反があるか、Snowflakeが異常を識別するたびに、通知が送信されます。
データベースレベルで通知を有効にします。有効にすると、そのデータベースの中の関連付けられたDMFを持つすべてのオブジェクトが品質に問題がある場合に通知を生成します。通知が有効になっているデータベース内では、データベースとDMFのオブジェクト間の特定の関連付けについて、通知をオフにすることができます。
ワークフロー¶
データ品質問題に関する通知を送信するためのSnowflakeの構成は、次のタスクで構成されます。
データベース所有者に アクセス制御権限を付与します 。
データベースを変更して、通知を構成しオンにします。
このワークフローのエンドツーエンドの例については、 拡張例 を参照してください。
通知受信者の構成¶
メールアドレスを直接追加するか、通知の統合を作成して、通知受信者を定義します。
通知統合は、Snowflakeとサードパーティのメッセージングサービス間のインターフェースを提供するSnowflakeオブジェクトです。データ品質問題に関する通知を送信するには、メッセージングサービスの通知統合を作成します。データ品質モニタリングは、以下のタイプの通知をサポートします。
メール通知
ウェブフックを使用して、Slackなどの外部システム経由で送信される通知。
メール統合を作成せずにメールアドレスを追加する方法について詳しくは、:ref:`label-data_quality_notifications_database`を参照してください。
メールで通知を送信する¶
メールアドレスのリストに通知を送信するには、 CREATE NOTIFICATION INTEGRATION ステートメントを実行して型 EMAIL の統合を作成します。統合では、ALLOWED_RECIPIENTSパラメーターを使用して、通知が送信されるメールアドレスのリストを指定する必要があります。確認済みメールアドレスのみを追加できます。メールアドレスの確認については、 メール通知受信者のメールアドレスを認証します。 をご参照ください。
Tip
Snowflakeの外部で管理されている配信リストやグループにメール通知を送信することができます。詳細については、関連する ナレッジベース記事 をご参照ください。
例えば、データ品質に問題があった場合にユーザー joe.smith@example.com にメールを送信できるようにするために通知統合を作成するには、次のコマンドを実行してください。
注釈
メール通知は、SnowflakeのAmazon Web Services(AWS)デプロイメントで、 AWS Simple Email Service(SES)を使用して処理されます。AWS を使用して送信されたメールメッセージのコンテンツは、メッセージの配信を管理するために最大30日間Snowflakeによって保持される場合があります。この期間を過ぎると、メッセージのコンテンツは削除されます。
外部システムのWebhookを使用した通知の送信¶
Webhook統合を作成することで、外部システムを介してデータ品質通知を送信することができます。使用できる外部システムのリストについては、 Webhook通知の送信 をご参照ください。
Webhookを使用してデータ品質通知を送信するには、以下のステップを完了します。
例えば、Slackを使用して通知を送信したい場合は、以下のコマンドを実行できます。
権限を付与する¶
データベース内のオブジェクトの通知を設定するには、データベース所有者に次の権限が必要です。
アカウントに対する MANAGE DATA QUALITY
通知の送信に使用される通知統合に対するUSAGE。これは、通知の統合を使用する場合にのみ必要です。
例えば、 data_steward ロールを持つユーザーがデータベース my_db の所有者だとします。通知統合 my_email_int を使用して、 my_db のテーブルとビューに関連付けられたDMFsによって発見された品質問題について通知を送信するには、次のコマンドを実行します。
データ品質通知用のデータベース設定の構成¶
DATA_QUALITY_MONITORING_SETTINGSプロパティを使用して:doc:ALTER DATABASE</sql-reference/sql/alter-database>`ステートメントを実行することで、データベースの通知をオンにできます。このプロパティは :ref:`ドル引用符付き <label-dollar_quoted_string_constants> YAML仕様を使用して通知設定を定義します。
DATA_QUALITY_MONITORING_SETTINGSは、データ品質通知における次の要素を指定します。
データベースに対して通知が有効になっているか無効になっているか。
通知を受け取るメールアドレス(通知の統合を使用せずに指定)。
どの:doc:`通知の統合</sql-reference/sql/create-notification-integration>`が通知を送信するか(存在する場合)。複数の通知統合を指定して、異なるチャネルから通知を送信することができます。
どれくらいの頻度で通知を送信するか。
通知に、データ品質に問題がある特定のテーブルやビューの名前が含まれるかどうか。このメタデータは、問題をすばやく特定して対処するのに役立ちます。
例:
この例では、次の構成を指定します。
データベース
my_dbに対して通知が有効になっています。通知は2つのメールアドレスと1つの外部チャネルに送信されます。
通知は、4時間に1回より高い頻度で送信されることはありません。
通知には、オブジェクトとその関連するDMFを識別するメタデータが含まれます。
特定のDMF関連付けの通知をオフにする¶
デフォルトでは、データベースの通知をオンにすると、データベース内のオブジェクトのデータ品質に問題がある場合に通知が生成されます。オブジェクトとDMFの間の特定の関連付けの通知をオフにして、通知の送信を防ぐことができます。関連付けの通知をオフにするには、ALTER <object> MODIFY DATA METRIC FUNCTIONステートメントを実行して、DATA_QUALITY_NOTIFICATIONパラメーターをFALSEに設定します。
たとえば、ビュー v2 を含むデータベースに対して通知がオンになっているとします。BLANK_COUNT DMFが列 c1 の品質問題を検出した場合に通知の送信を希望しない場合は、次のコマンドを実行します。
通知がオンになっているかどうかを確認する¶
DATA_METRIC_FUNCTION_REFERENCES 関数は、オブジェクトとDMFの関連付けに関する情報を返します。出力には列 data_quality_notification_status が含まれ、これを使用して、関連付けで通知がオンになっているかどうかを判断できます。
拡張例¶
アカウントに以下のようなアイテムがあるとします。
2つのテーブル(
t1およびt2)および1つのビュー(v1)を含むデータベースmy_db。両方の関連付けに対して異常検出がオンのROW_COUNT DMFに関連付けられているテーブル
t1およびt2。ロール
analystがmy_dbの所有者です。ビュー
v1はNULL_COUNT DMFに関連付けられており、関連付けに定義された期待があります。
テーブル t1 または t2 に異常があった場合にユーザーがメールを受信できるようにしたいですが、ビュー v1 に品質問題がある場合に通知を送信することは希望しません。
注釈
この例では、通知の統合を使用してメールアドレスを指定する方法を示します。ALTER DATABASEコマンドを実行する際に、メールアドレスを直接指定することもできます。
データ品質に問題がある場合に誰が通知を受け取るべきかを示す:ref:
通知の統合を作成します<label-data_quality_notifications_create>。``my_db``の所有者である``analyst``ロールに:ref:`権限を付与<label-data_quality_notifications_grant>`します。
データベースの設定を構成して 通知をオンにします。これらの通知には、データ品質に問題があったオブジェクトの名前が含まれます。
ビュー
v1およびNULL_COUNT DMF間の関連付けの 通知をオフにします 。