データ品質とデータメトリック関数の紹介¶
データ品質では、データ測定関数 (DMFs)、Snowflakeが提供するシステム DMFs とユーザー定義 DMFs を含む、データの状態と統合を監視します。DMFsを使用して、重複、NULLs、行、一意な値を測定する鮮度やカウントなどの主要なメトリックを測定できますが、これに限定されません。
データ品質および DMFs について¶
データ品質は、データの状態や整合性を把握することに重点を置いています。これには、列のヌル値や空白フィールドと比較した真のデータ値に関するデータの鮮度や正確性が含まれます。データ駆動型の意思決定を行うためです。DMFsを使ってデータの品質を測定できます。Snowflakeは、一般的なメトリックを定義しなくても測定できるように、SNOWFLAKE.COREスキーマで組み込みシステムDMFsを提供します。また、独自のカスタムDMFsを定義して、データ品質測定をより正確に微調整することもできます。これらのDMFsは、選択したデータベースとスキーマに保存されます。
システム DMFs 、カスタム DMFs 、またはその両方を使用する場合でも、 DMF をテーブルまたはビューに割り当てた後、Snowflakeは DMF をスケジューリングした結果を、 データメトリック関数専用のイベントテーブル に記録します。DMF が呼び出される頻度を指定できます。例えば、特定のテーブルの DMFs を毎日3回実行するようにスケジュールすることができます。この頻度は、社内のデータ品質要件に基づいて、必要に応じて変更することができます。テーブルに設定されたDMFsはすべて同じスケジュールに従います。
DMFsをスケジュールして実行した後、データ品質に変更が発生したときに通知するアラートを設定できます。DMFとアラート機能を組み合わせることで、測定テーブルのデータ品質に関する一貫した閾値通知を行うことができます。これらのインサイトは、以下を可能にすることで、データガバナンス態勢を強化します。
データスチュワードは、特定の指標に基づいてデータの現状を知ることができます。
データエンジニアは、重要なテーブルや表示に即座に対応できるようになります。
コスト、一貫性、パフォーマンスでデータ品質監視が行われるように徹底するプラットフォーム管理者。
データの定義、測定、監視というデータ品質ワークフローは、その後、追加のワークロードに適用することができます。
品質チェックの定義¶
DMF は、たとえば列の NULL 値の数など、値を返します。ただし、DMF によって返されることを期待する値を定義するわけではありません。
DMF の値がデータ品質チェックに合格するかどうかの基準を定義する場合、DMF と テーブル間の関連付けの*期待*を作成できます。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 の呼び出しが自動化されます。データ品質を積極的に測定するための追加作業は必要ありません。詳細については、 DMF 実行スケジュール および データ測定関数の結果表示 をご参照ください。
- パフォーマンス管理:
Snowflakeは、DMFsの使用方法を評価し、クエリ評価を最適化して、最適なクエリパフォーマンスを提供します。
考慮事項¶
複製と DMFs については、 データメトリック関数の複製(DMFs) をご参照ください。
テーブルに DMF を設定するには、テーブル所有者ロールにグローバル(アカウントレベル) EXECUTE DATA METRIC FUNCTION 権限が付与されていなければなりません。したがって、テーブル所有者ロールは、 CREATE ROLE コマンドで作成したユーザ定義のカスタムロールか、 SYSADMIN ロールのようなシステムロールでなければなりません。
データベースロールはそのロールが存在するデータベースに対してスコープされるため、データベースロールにグローバル権限を付与することはできません。データベースロールが所有するテーブルがあり、そのテーブルに DMF を設定したい場合、テーブルの OWNERSHIP 権限をカスタムロールまたはシステムロールに移さなければなりません。詳細については、 GRANT OWNERSHIP をご参照ください。
制限事項¶
DMFsを使用する場合、以下の制限に注意してください。