SnowflakeでData Metric Functionsによりデータ品質問題を検知したらメール通知できる機能を試してみた

SnowflakeでData Metric Functionsによりデータ品質問題を検知したらメール通知できる機能を試してみた

2026.02.27

さがらです。

先日のアップデートにより、SnowsightからCortex AIの機能を用いてData Metric Functionsを簡単に定義できる機能がプレビューでリリースされました。下記は実際に私が試した際のブログです。

https://dev.classmethod.jp/articles/snowflake-setup-data-quality-checks-in-snowsight/

この機能を試した際に「問題を検知した時に通知ができると嬉しいな」と強く感じたのですが、@jimatomo93さんから、プレビュー機能でデータ品質チェックで問題を検知した場合に通知する機能がリリースされていることを伺いました。

https://docs.snowflake.com/ja/user-guide/data-quality-notifications

「これはとてもありがたい機能だ!」と感じたので、実際に試してみました。その内容について本記事でまとめてみます。

事前準備

宛先のメールアドレスをユーザーとして登録

Snowflakeではメールを送信する際に宛先のメールアドレスをユーザーとして登録しておく必要があります。

こちらの手順については、以下のブログの「Snowflakeでユーザーを作成」章をご確認ください。

※もし、メールアドレスの確認処理がうまく送信されない場合は、SYSTEM$START_USER_EMAIL_VERIFICATION関数を使うことでも、メールアドレスの確認処理を行なうことが可能です。

https://dev.classmethod.jp/articles/snowflake-send-slack-messege-by-send-email/#Snowflake%25E3%2581%25A7%25E3%2583%25A6%25E3%2583%25BC%25E3%2582%25B6%25E3%2583%25BC%25E3%2582%2592%25E4%25BD%259C%25E6%2588%2590

Data Metric Functionsをテーブルに設定

続いて、Data Metric Functionsをテーブルに設定します。

こちらは現在Snowsightから簡単に設定できます。以下のブログが参考になると思います。

https://dev.classmethod.jp/articles/snowflake-setup-data-quality-checks-in-snowsight/

Notification Integrationを設定

まず、対象のメールアドレスに対するNotification Integrationを設定します。

以下は公式Docのサンプルクエリですが、このようなクエリでNotification Integrationを設定します。ALLOWED_RECIPIENTSで通知先となるメールアドレスを設定するのがポイントです。

USE ROLE ACCOUNTADMIN;

CREATE NOTIFICATION INTEGRATION my_email_int
  TYPE=EMAIL
  ENABLED=TRUE
  ALLOWED_RECIPIENTS = ('joe.smith@example.com');

データベース所有者のロールに対して権限を付与

次に、Data Metric Functionsを設定しているテーブルが属するデータベースの所有者に対して必要な権限を付与します。

今回はSYSADMINがデータベースの所有者であったため、以下のクエリを実行しました。

USE ROLE ACCOUNTADMIN;

GRANT MANAGE DATA QUALITY ON ACCOUNT TO ROLE SYSADMIN;
GRANT USAGE ON INTEGRATION my_email_int TO ROLE SYSADMIN;

データ品質問題の検知時に通知するようにデータベースを設定変更

以下のようなクエリを実行して、データ品質問題の検知時に通知するようにデータベースを設定変更します。

USE ROLE SYSADMIN;

ALTER DATABASE data_quality_demo SET DATA_QUALITY_MONITORING_SETTINGS =
  $$
  notification:
    enabled: TRUE
    integrations:
      - MY_EMAIL_INT
    metadata_included: TRUE
  $$

設定値の確認

以下のようにDATA_METRIC_FUNCTION_REFERENCES関数を使うことで、通知設定がされているかを確認可能です。

USE DATABASE data_quality_demo;
USE SCHEMA INFORMATION_SCHEMA;

SELECT *
  FROM TABLE(
    INFORMATION_SCHEMA.DATA_METRIC_FUNCTION_REFERENCES(
      REF_ENTITY_NAME => 'data_quality_demo.public.orders',
      REF_ENTITY_DOMAIN => 'table'
    )
  );

下図のようにdata_quality_notification_status列がENABLEDになっていれば問題ないです。

2026-02-27_16h30_34

動作確認

対象のテーブルに対するデータ品質チェックを5分ごとに設定した上で、動作確認します。

このテーブルでは、必ずデータ品質チェックが失敗するようなデータを登録しております。

2026-02-27_16h14_06

約5分後、下図のようにメールが届きました!

2026-02-27_16h52_29

最後に

SnowflakeでData Metric Functionsによりデータ品質問題を検知したらメール通知できる機能を試してみました。

Data Metric Functionsを使う場合は、ぜひ併せてご活用ください!

この記事をシェアする

FacebookHatena blogX

関連記事