スキャンによるデータ品質をモニタリングする

このドキュメントでは、BigQuery と Dataplex を組み合わせて使用し、データが品質要件を満たしていることを確認する方法について説明します。BigQuery は Dataplex を使用して、継続的なデータチェックの定義、結果のモニタリング、データ品質に関する問題のトラブルシューティングを行います。

自動データ品質の詳細については、自動データ品質についてをご覧ください。

始める前に

  • プロジェクトでスキャンを作成、変更する場合: Dataplex API を有効にします。

    Dataplex API を有効にする

  • プロジェクトをまたぐスキャンの場合: gcloud beta services identity create コマンドを使用して Dataplex サービス ID を作成します。Dataplex サービス識別子が存在しない場合、このコマンドは新しい識別子を返します。サービス ID がすでに存在する場合は、既存の ID が返されます。このコマンドにより、gcloud CLI ベータ版コマンド コンポーネントのインストールを求められる場合があります。

    gcloud beta services identity create
    --service=dataplex.googleapis.com
    

必要なロール

アクセスが必要なユースケースに基づいて、適切なアカウント プリンシパルへの次のロールの付与を管理者に依頼してください。ロールの付与の詳細については、アクセス権の管理に関する記事をご覧ください。

BigQuery のロール

  • テーブルの BigQuery データ閲覧者。結果を公開せずにそのテーブルのスキャンを作成します。
  • テーブルの BigQuery データ編集者。そのテーブルの公開を伴うスキャンを作成します。
  • BigQuery テーブルとデータ品質のスキャンが異なるプロジェクトにある場合は、Dataplex サービス アカウントに、対応する BigQuery テーブルの読み取り権限 bigquery.tables.getData(または BigQuery データ閲覧者ロール)を付与する必要があります。サービス アカウントのサービス ID を取得するには、始める前にをご覧ください。
  • Cloud Storage から BigQuery 外部テーブルをスキャンする場合は、Cloud Storage ロール(roles/storage.objectViewer)を Dataplex サービス アカウントに割り当てます。

Dataplex のロール

  • プロジェクト レベルの Dataplex DataScan 管理者 - スキャンを作成します。
  • スキャンに対する Dataplex DataScan 編集者 - スキャンのプロパティ(権限を除く)の編集、スキャンの実行、スキャンの削除を行います。
  • スキャンの Dataplex DataScan データ閲覧者 - スキャンの結果を表示します。

これらのロールには、以前のユースケースに必要な権限が含まれています。必要な権限を正確に確認するには、[必要な権限] セクションを開いてください。

必要な権限

データ品質スキャンのさまざまな要素を使用するには、次の権限が必要です。

  • データスキャンの構成を変更する: dataplex.datascans.update - datascan リソース
  • データスキャンのポリシーを変更する: dataplex.datascans.setIamPolicy - datascan リソース
  • BigQuery テーブルでデータスキャンを作成する: bigquery.tables.getData - スキャンするテーブル
  • プロジェクト内にデータスキャンを作成する: dataplex.datascans.create - プロジェクト
  • データスキャンを削除する: dataplex.datascans.delete - datascan リソース
  • データスキャンの結果を BigQuery データセットにエクスポートする: bigquery.datasets.getbigquery.tables.createbigquery.tables.getbigquery.tables.updatebigquery.tables.updateData - 宛先データセット
  • データスキャンの結果をテーブルにパブリッシュする: bigquery.tables.update - 宛先テーブル
  • データスキャンを実行する: dataplex.datascans.run - datascan リソース
  • Cloud Storage から外部テーブルをスキャンする: storage.buckets.getstorage.objects.get - スキャンするテーブルを含むバケット
  • データスキャンの結果を表示する: dataplex.datascans.getData - データスキャン リソース
  • データスキャンの結果を表示する: dataplex.datascans.get - データスキャン リソース
  • データスキャンの結果を表示する: dataplex.datascans.list - データスキャン リソース

カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。

データ品質スキャンを作成する

  1. Google Cloud コンソールで [BigQuery] ページに移動します。

    [BigQuery] に移動

  2. [エクスプローラ] ペインで、データ品質スキャンのテーブルをクリックします。

  3. [データ品質] タブをクリックします。

  4. [データ品質スキャン] > [新しいスキャンを作成] をクリックします。

  5. 省略可: 次の値を編集します。

    • 表示名: コンソールの変更可能なリソースの名前。
    • ID: ロールの一意の識別子。スキャンの作成後は変更できません。
    • 説明: スキャンの説明。
    • リージョン: データスキャンが処理されるリージョンを定義します。
    • スコープ: スキャンできるデータの範囲。[インクリメンタル] または [データ全体] を選択します。[インクリメンタル] を選択する場合は、線形に増加する DATE 列または TIMESTAMP 列を含めることをおすすめします。この列を使用して、新しいレコードを識別できます。DATE 型または TIMESTAMP 型の列でパーティション分割されたテーブルでは、パーティション列をタイムスタンプ フィールドとして使用することをおすすめします。
    • フィルタ: スキャンが実行される前にデータに適用するフィルタ。行をフィルタするには、[行のフィルタリング] チェックボックスをオンにして、入力テキスト フィールドに有効な SQL 式を入力します。式は BigQuery 標準 SQL 構文にする必要があり、WHEREで使用できます。
    • サンプリング サイズ: サンプリングするデータの割合。増分データスキャンでは、最新の増分のみがサンプリングされます。
    • BigQuery と Dataplex Catalog UI への結果の公開: このオプションにより、BigQuery UI のソーステーブルに対する [データ プロファイル] タブで、データ品質スキャンの最新の結果を利用できるようになります。スキャンが実行され、公開に設定されている場合は、このオプションを使用できないことがあります。
    • スケジュール: [オンデマンド] (デフォルト)または [繰り返し]。[繰り返し] を選択した場合は、スケジュール スキャンの頻度を [毎日]、[毎週]、[毎月]、または [カスタム] に指定します。[カスタム] では、cron 時刻形式を使用してスケジュールを指定します。たとえば、月の第 2 火曜日の午前 1 時に実行されるスキャンセットは、「0 1 8-14 * 2」のようになります。
  6. ペインでデータ品質ルールの設定を表示するには、[続行] をクリックします。

  7. [ルールを追加] をクリックし、必要に応じて次のルールを 1 つ以上追加します。ルールは、 [削除] を使用して削除することもできます。

    • プロファイルに基づく推奨事項
    • 組み込みルールの種類
    • SQL 行チェックルール
    • SQL 集計チェックルール
  8. 省略可: ペインでその他のオプション設定を表示するには、[続行] をクリックして次の値を編集します。

    • スキャン結果を BigQuery テーブルにエクスポートする: BigQuery データセットとテーブルを選択して、品質スキャンの結果を保存します。データセットは定義されているが、テーブルが定義されていない場合は、Dataplex によってテーブルが作成されます。この方法で作成されたテーブルにより、ストレージ費用が発生する可能性があります。
    • ラベル: スキャンにラベルを追加します。
  9. 必要に応じて、次のいずれかのボタンをクリックします。

    • スキャン設定を保存するには、[作成] をクリックします。
    • スキャンを保存して実行するには、[実行] をクリックします。

データ品質スキャンの権限を管理する

既存の品質スキャンのアクセス権限を変更する手順は次のとおりです。

  1. BigQuery ページに移動します。

    [BigQuery] に移動

  2. [エクスプローラ] ペインで、データ品質スキャンのテーブルを選択します。

  3. [データ品質] タブをクリックします。

  4. [データ品質スキャン] > [スキャン権限を管理] をクリックします。新しいタブで Dataplex が開きます。

  5. [権限] タブをクリックします。

    • プリンシパルにアクセス権を付与するには、 [アクセスを許可] をクリックし、関連するプリンシパルに [Dataplex DataScan データ閲覧者] を付与します。
    • プリンシパルからアクセス権を削除するには、 [アクセス権を削除] をクリックし、関連するプリンシパルから [Dataplex DataScan データ閲覧者] を削除します。

既存のデータ品質スキャンを編集する

  1. Google Cloud コンソールで [BigQuery] ページに移動します。

    [BigQuery] に移動

  2. [エクスプローラ] ペインで、データ品質スキャンのテーブルを選択します。

  3. [データ品質スキャン] > [スキャン構成を編集] をクリックします。

これにより、データ品質スキャン設定が開きます。この設定は変更して将来のスキャン用に保存できます。

データ品質スキャンの結果を表示する

データ品質スキャン結果を表示するには、複数の方法があります。最適な方法を選択するようにしてください。

公開された結果を表示する

  1. Google Cloud コンソールで [BigQuery] ページに移動します。

    [BigQuery] に移動

  2. [エクスプローラ] ペインで、データ品質スキャンのテーブルを選択します。

  3. [データ品質] タブをクリックします。

最後に公開された結果がこのビューに表示されます。

スキャン結果の履歴を表示する

  1. Google Cloud コンソールで [BigQuery] ページに移動します。

    [BigQuery] に移動

  2. [エクスプローラ] ペインで、データ品質スキャンのテーブルを選択します。

  3. [データ品質] タブをクリックします。

  4. [データ品質スキャン] > [結果の履歴を表示] をクリックします。

テーブルのすべてのデータ品質スキャンを表示する

特定のテーブルのスキャン履歴で Dataplex を開く手順は次のとおりです。

  1. Google Cloud コンソールで [BigQuery] ページに移動します。

    [BigQuery] に移動

  2. [エクスプローラ] ペインで、データ品質スキャンのテーブルを選択します。

  3. [データ品質スキャン] > [すべてのスキャンを表示] をクリックします。