はじめに
BigQueryのデータチェックを自動で実行したい場合に Dataplex Universal Catalog の自動データ品質機能を使用することで、データチェックの定義・スケジューリング・結果通知まで容易に作成することが可能です。本記事ではDataplexの自動データ品質機能(データ品質スキャン)を設定する方法について解説します。
データ品質スキャンの作成手順
データ品質スキャンの作成手順の流れは次の通りです。
- スキャンの定義
- データ品質ルールの追加
- スキャン結果の通知設定(省略可)
スキャンの定義
Google Cloud コンソールの BigQuery の [メタデータのキュレーション] ページで、[データのプロファイリングと品質] タブを選択した後、[データ品質スキャンの作成] をクリックします。
また、チェック対象テーブルの[データ品質]タブを選択して、[データ品質スキャンの作成] をクリックすることも可能です。
[スキャンの定義] ウィンドウで、次のフィールドに入力します。
- (省略可)表示名を入力します。
- ID を入力します。最初の文字は英字小文字にする必要があり、その後の文字はすべてハイフン、英字小文字、数字にする必要があります。
- (省略可)説明を入力します。
- [テーブル] フィールドで、[参照] をクリックします。スキャンするテーブルを選択し、[選択] をクリックします。
- [範囲] フィールドで、[インクリメンタル] または [データ全体] を選択します。
増分データに対してスキャンしたい場合は[インクリメンタル] を選択します。[タイムスタンプ列] フィールドで、増分レコードの識別に使用できるDATE 型または TIMESTAMP 型の列を選択します。 - (任意)データをフィルタするには、[行のフィルタリング] チェックボックスをオンにします。SQL の WHERE 句の一部として使用できる有効な SQL 式で指定します。複数の列条件を組み合わせることもできます。例: col1 >= 0 AND col2 < 10
- (任意)データをサンプリングするには、[サンプリング サイズ] リストでサンプリング率を選択します。
- (任意)データ品質スキャンの結果を Dataplex Universal Catalog メタデータとして公開するには、[BigQuery と Dataplex Catalog に結果を公開する] チェックボックスをオンにします。最新のスキャン結果は、ソーステーブルの BigQuery ページと Dataplex Universal Catalog ページの [データ品質] タブで表示できます。
- [スケジュール] セクションで、次のいずれかのオプションを選択します。
・繰り返し: スキャンの実行頻度と時間を指定します。実行頻度は1時間ごと、毎日、毎週、毎月、カスタムのいずれかを指定します。[カスタム] を選択した場合は、cron 形式を使用してスケジュールを指定します。
・オンデマンド: スキャンをオンデマンドで実行します。 - [続行] をクリックします。
データ品質ルールの追加
[データ品質ルール] ウィンドウで、このデータ品質スキャン用に構成するルールを定義します。
[ルールを追加] をクリックし、次のいずれかのオプションを選択します。
- プロフィールに基づく推奨事項: 既存のデータ プロファイリング スキャンに基づいて、推奨事項からルールを作成します。
- 組み込みルールの種類: 次の事前定義ルールを選択してルールを作成します。
NULLチェック/値セットチェック/正規表現チェック/一意性チェック/範囲チェック(最小~最大)/集計統計チェック(平均/最小/最大いずれかの範囲チェック) (参考)事前定義ルール - SQL行チェックルール: 各行に適用するカスタムSQLルールを作成します。
- SQL集計チェックルール: テーブルに適用するカスタムSQLルールを作成します。
- SQLアサーションルール: 不適合データの存在を確認するカスタムSQLアサーションルールを作成します。
今回はSQL行チェックルールを選択して解説します。[Add/edit SQL row check rule] ウィンドウで、次のフィールドに入力します。
- [ディメンション] で、ディメンションを 1 つ選択します。(完全性/精度/一貫性/有効性/一意性/鮮度/ボリューム) (参考)ディメンションの詳細
- (省略可)モニタリングとアラートに使用するルール名
- (省略可)ルールの説明
- [合格のしきい値] で、チェックに合格する必要があるレコードの割合を選択します。
- [列名] で列を選択します。
- [SQL 式を指定] フィールドに、満たすべき条件をSQL式で入力します。 (参考)サポートされているカスタムSQLルール
- [Add] をクリックします。
スキャン結果の通知設定(省略可)
[追加設定] ウィンドウで、スキャン結果のエクスポートや通知レポートを設定できます。
- (省略可)スキャン結果を BigQuery のテーブルにエクスポートする場合、[スキャン結果を BigQuery テーブルにエクスポートする] セクションで、スキャン結果を保存する BigQuery データセット及びテーブルを指定します。指定したテーブルが存在しない場合は、Dataplex Universal Catalog によって作成されます。
なお、複数のデータ品質スキャンで同じ結果テーブルを使用できます。 - (省略可)ラベルを追加します。
- (省略可)データ品質スキャンジョブのステータスと結果に関するアラートをメールで通知する場合、[通知レポート] セクションで [+メール ID を追加] をクリックし、最大5つのメールアドレスを入力します。
次に通知レポートのトリガーを選択します。(複数選択可)
・品質スコア(<=): ジョブが成功し、データ品質スコアが指定された目標スコアより低い場合にレポートを送信します。0~100 のターゲット品質スコアを入力します。
・ジョブの失敗: データ品質の結果に関係なく、ジョブ自体が失敗するとレポートが送信されます。
・ジョブの完了(成功または失敗): データ品質の結果に関係なく、ジョブが終了するとレポートが送信されます。
注:[ジョブの失敗]のみを選択した場合、データ品質スキャンの結果がNGでもレポートは送信されません。[品質スコア(<=)]との併用や、[ジョブの完了(成功または失敗)]の選択を検討してください。 - [作成] をクリックします。
作成手順は以上です。
オンデマンドの場合、スキャンが作成されたら[今すぐ実行] をクリックすることで、いつでもスキャンを実行できます。
データ品質スキャン結果NGの場合、次のようなメールで通知されます。[Data Quality Status]は Failed となっています。なお、トリガーは[ジョブの完了]を選択しています。
データ品質スキャン結果OKの場合、次のようなメールで通知されます。[Data Quality Status]は Passed となっています。なお、トリガーは[ジョブの完了]を選択しています。
コンソールでは次のように[結果を表示]をクリックすることで確認できます。
データ品質スキャンの結果がNGとなった場合、Dataplex Universal Catalog は[失敗したレコードを取得するクエリ]を生成します。このクエリを BigQuery Studio で実行すればルールと一致しなかったレコードを確認できます。
まとめ
Dataplex Universal Catalog の自動データ品質機能を使用したBigQueryのデータチェック自動化を解説しました。コンソールで設定できるので容易に作成することが可能です。なお、今回はコンソールで作成する方法を記載しましたが、コードで定義することでパイプラインに組み込むことも可能です。
データ品質スキャンの結果を Dataplex Universal Catalog メタデータとして公開した場合、データの品質を誰もが簡単に確認することができるようになります。また、BigQuery にエクスポートしてチェック結果を分析することで、データ品質の劣化を早期に検知したり、品質改善後の効果を定量的に評価することも可能です。
Dataplexは、BigQueryを含むGoogle Cloud上のデータ資産の品質を管理するための強力なツールです。本記事で紹介した手順に従うことで、BigQueryデータの自動データチェックを効果的に実装し、データドリブンな意思決定の信頼性を高めることができます。
参考
Dataplex Universal Catalog ガイド 自動データ品質の概要
Dataplex Universal Catalog ガイド 自動データ品質を使用する
Google Cloud、Google Workspace に関するご相談はXIMIXへ!
Google Cloud、Google Workspaceに関する お問い合わせはこちら
XIMIX(サイミクス)は商標登録出願中です
- カテゴリ:
- Google Cloud
- キーワード:
- Google Cloud
- BigQuery