データ品質とデータメトリック関数の紹介

データ品質では、Snowflakeが提供するシステムDMFsとユーザー定義DMFsを含むデータ測定関数 (DMFs) を使用して、データの状態と統合を監視します。DMFsを使用して、重複、NULLs、行、一意な値を測定する鮮度やカウントなどの主要なメトリックを測定できますが、これに限定されません。

データ品質およびDMFsについて

データ品質は、データ駆動型の意思決定を行うために、データの状態や整合性(データの鮮度や、列のヌル値や空白フィールドと比較した真のデータ値に関する正確性など)を把握することに重点を置いています。DMFsを使ってデータの品質を測定できます。Snowflakeは、一般的なメトリックを定義しなくても測定できるように、SNOWFLAKE.COREスキーマで組み込みシステムDMFsを提供します。また、独自のカスタムDMFsを定義して、データ品質測定をより正確に微調整することもできます。これらのDMFsは、選択したデータベースとスキーマに保存されます。

システム DMFs 、カスタム DMFs 、またはその両方を使用する場合でも、 DMF をテーブルまたはビューに割り当てた後、Snowflakeは DMF をスケジューリングした結果を、 データメトリック関数専用のイベントテーブル に記録します。DMF が呼び出される頻度を指定できます。例えば、特定のテーブルの DMFs を毎日3回実行するようにスケジュールすることができます。この頻度は、社内のデータ品質要件に基づいて、必要に応じて変更することができます。テーブルに設定されたDMFsはすべて同じスケジュールに従います。

DMFsをスケジュールして実行した後、データ品質に変更が発生したときに通知するアラートを設定できます。DMFとアラート機能を組み合わせることで、測定テーブルのデータ品質に関する一貫した閾値通知を行うことができます。これらのインサイトは、以下を可能にすることで、データガバナンス態勢を強化します。

  • データスチュワードは、特定の指標に基づいてデータの現状を知ることができます。

  • データエンジニアは、重要なテーブルや表示に即座に対応できるようになります。

  • コスト、一貫性、パフォーマンスでデータ品質監視が行われるように徹底するプラットフォーム管理者。

データの定義、測定、監視というデータ品質ワークフローは、その後、追加のワークロードに適用することができます。

詳細については、以下をご参照ください。

サポートされるテーブルの種類

以下の種類のテーブルオブジェクトに DMF を設定できます:

  • 動的テーブル

  • イベントテーブル

  • 外部テーブル

  • Apache Iceberg™ テーブル

  • マテリアライズドビュー

  • テーブル(CREATE TABLE)、仮および一時テーブルを含む

  • ビュー

ハイブリッドテーブルやストリームオブジェクトに DMF を設定することはできません。

請求と価格設定

Snowflakeは、この機能をサポートする仮想ウェアハウスオブジェクトを作成し、管理します。この機能は、通常のクエリワークフロー(SQL)以外の仮想ウェアハウスリソースをプロビジョニングしたり、追加で使用したりすることなく使用できます。

DMF を呼び出すと、 Snowflakeサービス消費テーブル で詳しく説明されているように、サーバーレスのコンピューティングリソースが使用されます。テーブルは、 クラウドリージョン および Snowflake Edition ごとのクレジット価格です。

使用したクレジットは、毎月の請求書の「データ品質モニタリング」カテゴリーに記載されます。これらのクレジットには、使用するすべてのシステムまたはユーザー定義のデータ品質メトリックによって消費される計算が含まれます。DMFを作成しても請求されることはありません。

  • 課金は、スケジュールされたDMFがオブジェクトに対して計算された場合にのみ発生します。SELECTステートメントでDMFを呼び出すなど、スケジュール外のデータ メトリック関数使用については請求されません。

  • ログインフラストラクチャは、メトリック出力をイベントテーブルに統合します。ログサービスによって発生した消費は、毎月の請求書に「ログ」として表示されます。

詳細については、 サーバーレスのクレジット使用状況 をご参照ください。

Tip

DATA_QUALITY_MONITORING_USAGE_HISTORY をクエリして、アカウント内の DMFs の使用に関連するクレジット消費を追跡することができます。

利点

DMFsを使用することで、データ品質への取り組みが強化され、以下のようなメリットが得られます。

コンプライアンスを促進する:

データの状態を把握することで、コンプライアンスや規制基準を遵守していることを示しやすくなります。これにより、リスクを低減し、データガバナンス態勢を強化することができます。

サービスレベル契約(SLAs)の遵守:

鮮度などの正確なデータメトリックにより、データプロバイダー、データコンシューマー、クライアント間のSLAsを満たすことができます。

信頼性:

DMFsは、信頼できるデータ主導の意思決定を促進するデータ検証を提供します。

一貫性:

システムDMFsを使用し、適切なカスタムDMFsを繰り返し使用することで、長期にわたって一貫したデータ品質評価が実現します。これにより、データの信頼性が向上します。

特定のユースケースのための最適化:

カスタムDMFsを使用することにより、データエンジニアはデータを測定するための正確なメトリックを設計することができ、データのターゲットアプリケーションのためのより正確な最適化につながります。

自動測定:

DMF をテーブルまたはビューに割り当て、 DMF の実行スケジュールを指定すると、 DMF の呼び出しが自動化されます。データ品質を積極的に測定するための追加作業は必要ありません。詳細については、 実行するDMFsをスケジュールする および DMF結果を表示する をご参照ください。

パフォーマンス管理:

Snowflakeは、DMFsの使用方法を評価し、クエリ評価を最適化して、最適なクエリパフォーマンスを提供します。

考慮事項

  • 複製と DMFs については、 データメトリック関数の複製(DMFs) をご参照ください。

  • テーブルに DMF を設定するには、テーブル所有者ロールにグローバル(アカウントレベル) EXECUTE DATA METRIC FUNCTION 権限が付与されていなければなりません。したがって、テーブル所有者ロールは、 CREATE ROLE コマンドで作成したユーザ定義のカスタムロールか、 SYSADMIN ロールのようなシステムロールでなければなりません。

    データベースロールはそのロールが存在するデータベースに対してスコープされるため、データベースロールにグローバル権限を付与することはできません。データベースロールが所有するテーブルがあり、そのテーブルに DMF を設定したい場合、テーブルの OWNERSHIP 権限をカスタムロールまたはシステムロールに移さなければなりません。詳細については、 GRANT OWNERSHIP をご参照ください。

制限事項

DMFsを使用する場合、以下の制限に注意してください。

  • オブジェクトでの DMFs の設定:

    オブジェクトに対する DMFs の関連付けはアカウントあたり合計10,000件までです。テーブルまたはビューにDMFを設定する各インスタンスは、1件の関連としてカウントされます。

  • データ共有:

    DMF に対する権限を付与して、共有テーブルやビューに対する DMF を共有または設定することはできません。

  • オブジェクトタグにDMFを設定することはサポートされていません。

  • クローニング:

    • CLONE 操作と CREATE TABLE ... LIKE 操作を使用しても、ターゲットオブジェクトに DMF が割り当てられることはありません。

    • DMFs を含むデータベースまたはスキーマをクローンする場合、 DMFs はターゲットのデータベースまたはスキーマにクローンされます。

  • リーダーアカウント のオブジェクトにDMFを設定することはできません。

  • トライアルアカウントはこの機能をサポートしていません。

DMFsの管理

これらのセクションでは、DMFsの管理方法に関する情報をまとめています。

さらに、アプリケーションロールを付与して、 DMFs の結果へのアクセスを管理することもできます。詳細については、 DMF 結果へのアクセスを管理する をご参照ください

DMF権限

Snowflakeは、DMFで使用する以下の権限をサポートしています。

スキーマ内の任意のオブジェクトを操作するには、親データベースとスキーマに対する USAGE 権限も必要であることに注意してください。

権限

オブジェクト

使用状況

CREATE DATA METRIC FUNCTION

スキーマ

スキーマで新しい DMF を作成できるようにします。

USAGE

データメトリック関数

DMFを呼び出せるようにします。

EXECUTE DATA METRIC FUNCTION

アカウント

DMFを呼び出す際に、サーバーレスコンピューティングリソースを使用できるようにします。

OWNERSHIP

データメトリック関数

DMFの所有権を譲渡します。これにより、DMFを包括的に制御できるようになります。DMFのほとんどのプロパティを変更するために必要です。

さらに、テーブルや表示に対するDMFの割り当てを管理する場合は、これらの権限を持つロールを使用します。

権限

オブジェクト

メモ

OWNERSHIP

テーブルまたはビュー

OWNERSHIP is a special privilege on an object that is automatically granted to the role that created the object, but can also be transferred using the GRANT OWNERSHIP command to a different role by the owning role (or any role with the MANAGE GRANTS privilege).

USAGE

データメトリック関数

この権限はユーザー定義DMFsのためです。

システムDMFsの場合、SNOWFLAKE.DATA_METRIC_USERデータベースロールにテーブル所有者ロールを付与します。

USAGE

データベース、スキーマ

これらのオブジェクトは、ユーザー定義のDMFを格納するデータベースとスキーマです。

EXECUTE DATA METRIC FUNCTION

アカウント

この権限により、どのロールがサーバーレスコンピューティングリソースにアクセスできるかを制御できます。

DMF コマンドリファレンス

Snowflakeは、DMFsを操作するための以下のコマンドをサポートしています。

さらに、以下を実行するために ALTER TABLEALTER VIEW コマンドを使用します。

  • データメトリック関数を列に追加またはドロップします。

  • テーブルまたはビュー自体にデータメトリック関数を追加またはドロップします。

  • データメトリック関数の実行をスケジュールします。

代表的な例については、 データメトリック関数の操作 をご参照ください。

GRANT <権限>REVOKE <権限> コマンドを使用すると、次のことができます。

  • アカウントロールまたはデータベースロールに権限を付与します。アプリケーションロールなど、その他のロールタイプはサポートされていません。

  • サポートされている DMF 権限または ALL PRIVILEGES を指定してください。

GRANT OWNERSHIP コマンドを使用して、所有権をアカウントロールに移すことができます。

GRANTとREVOKEコマンドでは、作成したユーザー定義DMFの引数を指定する必要があります。例:

GRANT USAGE ON FUNCTION
  governance.dmfs.count_positive_numbers(TABLE(NUMBER, NUMBER, NUMBER))
  TO data_engineer;
Copy

DMF コマンド、操作、および権限の概要

次のテーブルは、DMF 権限と DDL 操作の関係をまとめたものです。

スキーマ内の任意のオブジェクトを操作するには、親データベースとスキーマに対する USAGE 権限も必要であることに注意してください。

テーブルの要件に加えて、システムDMFを使用している場合は、ACCOUNTADMINロールまたは共有SNOWFLAKEデータベースでIMPORTEDPRIVILEGESが付与されるロールを使用します。

操作

必要な権限

システムDMFを使用します。

システムデータメトリック関数 をご参照ください。

CREATE DATA METRIC FUNCTION コマンドで DMF を作成します。

スキーマで CREATE DATA METRIC FUNCTION 権限を持つロール。

ALTER FUNCTIONコマンドでDMFを変更します。

DMF に対する OWNERSHIP 権限を持つロール。

ALTER TABLEまたはALTER VIEWコマンドを使用して、テーブルや表示に対してDMFを追加したり、DMFを削除したりします。

次の権限を持つロール:

  • テーブルに対する OWNERSHIP

  • DMF に対する USAGE

  • アカウントに対する EXECUTE DATA METRIC FUNCTION

DATA_METRIC_FUNCTION_REFERENCES 関数を呼び出してメトリック参照を識別します。

次の両方:

  • DMF に対する USAGE 権限を持つロール。

  • DMFが追加されるテーブルまたはビューに対する SELECT 権限を持つロール。

DESCRIBE FUNCTION コマンドで DMF を説明します。

DMF に対する USAGE 権限を持つロール。

DROP FUNCTIONコマンドを使用して、現在のスキーマまたは指定したスキーマからDMFを削除します。

DMF に対する OWNERSHIP 権限を持つロール。

SHOW DATA METRIC FUNCTIONS または SHOW FUNCTIONS コマンドを使用して、データメトリック関数をリストします。

DMF に対する USAGE 権限を持つロール。

SELECTを使ってDMFを手動で呼び出します。

グローバル EXECUTE DATA METRIC FUNCTION 権限を持つロール、 または DMF に対する USAGE 権限を持つロール。

DMF の結果を表示。

詳細については、 DMF結果を表示する をご参照ください。