スキャンでデータ プロファイルのインサイトを生成する

このドキュメントでは、データに関する理解を深めるために BigQuery と Dataplex を一緒に使用する方法について説明します。BigQuery では、Dataplex を使用して平均値、一意の値、最大値など、データの統計的特性を分析します。また、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. 省略可: ペインでその他のオプション設定を表示するには、[続行] をクリックして次の値を編集します。

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

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

データ プロファイルのスキャン権限を管理する

既存のプロファイル スキャンのアクセス権限を変更するには、次の操作を行います。

  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. [データ プロファイルのスキャン] > [すべてのスキャンを表示] をクリックします。