データセットの分析情報を生成する
このドキュメントでは、BigQuery データセットのデータセット分析情報を生成する方法について説明します。データセットの分析情報は、関係グラフとテーブル間クエリを生成することで、データセット内のテーブル間の関係を把握するのに役立ちます。
データセットの分析情報を使用すると、複数のテーブルを含むデータセットの探索を迅速に行うことができます。これは、テーブル間の関係をグラフで自動的に検出して可視化し、主キーと外部キーの関係を特定し、テーブル間のクエリのサンプルを生成することで実現されます。これは、ドキュメントなしでデータ構造を理解したり、スキーマ定義、使用状況ベース、AI 推論によるテーブル間の関係を検出したり、複数のテーブルを結合する複雑なクエリを生成したりするのに役立ちます。
テーブルとデータセットの分析情報の概要については、データ分析情報の概要をご覧ください。
データセットの分析情報を生成するモード
BigQuery では、データセットの分析情報を生成する際に次の 2 つのモードが用意されています。
| モード | 説明 | 用途 |
|---|---|---|
| 生成して公開 |
生成されたデータセットの分析情報をメタデータ アスペクトと関係として Knowledge Catalog に保持します。公開するには、必要な権限が付与されている必要があります。[生成して公開] を使用すると、BigQuery は次の処理を行います。
|
このモードは、永続化して再利用できる全社的なデータ ドキュメントや、カタログ主導のガバナンス ワークフローを構築する場合に使用します。 |
| 公開せずに生成 |
説明、自然言語の質問、関係、SQL クエリなどのデータセット分析情報をオンデマンドで作成します。[公開せずに生成] を選択すると、分析情報は Knowledge Catalog に公開されません。 |
このモードは、アドホックな探索をすばやく行う場合に使用し、カタログが煩雑になるのを防ぎます。 |
始める前に
データ分析情報は Gemini in BigQuery を使用して生成されます。分析情報の生成を開始するには、まず Gemini in BigQuery を設定する必要があります。
API を有効にする
データ分析情報を使用するには、プロジェクトで Dataplex API、BigQuery API、Gemini for Google Cloud API を有効にします。
API を有効にするために必要なロール
API を有効にするには、serviceusage.services.enable 権限を含む Service Usage 管理者 IAM ロール(roles/serviceusage.serviceUsageAdmin)が必要です。詳しくは、ロールを付与する方法をご覧ください。
Gemini for Google Cloud API の有効化の詳細については、 Cloud de Confiance プロジェクトで Gemini for Google Cloud API を有効にするをご覧ください。
データ プロファイル スキャンを完了する
分析情報の品質を向上させるには、データセット内のテーブルのデータ プロファイル スキャンを生成します。
必要なロール
データセットの分析情報の生成、管理、取得に必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。
-
分析情報を生成、管理、取得するには:
- プロジェクトに対する Dataplex DataScan 編集者(
roles/dataplex.dataScanEditor)または Dataplex DataScan 管理者(roles/dataplex.dataScanAdmin) - テーブルに対する BigQuery データ編集者 (
roles/bigquery.dataEditor) - プロジェクトに対する BigQuery ユーザー(
roles/bigquery.user)または BigQuery Studio ユーザー(roles/bigquery.studioUser) - プロジェクトに対する BigQuery リソース閲覧者 (
roles/bigquery.resourceViewer)
- プロジェクトに対する Dataplex DataScan 編集者(
-
分析情報を表示する手順は次のとおりです。
- プロジェクトに対する Dataplex DataScan データ閲覧者 (
roles/dataplex.dataScanDataViewer) - データセットに対する BigQuery データ閲覧者 (
roles/bigquery.dataViewer)
- プロジェクトに対する Dataplex DataScan データ閲覧者 (
-
分析情報を Knowledge Catalog に公開するには: エントリ グループに対する Dataplex エントリ / エントリリンク オーナー (
roles/dataplex.entryOwner)
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
分析情報を生成するために必要な正確な権限については、「必要な権限」セクションを開いてください。
必要な権限
bigquery.datasets.get: データセットのメタデータを読み取るbigquery.jobs.create: ジョブを作成するbigquery.jobs.listAll: プロジェクト内のすべてのジョブを一覧表示するbigquery.tables.get: テーブルのメタデータを取得するbigquery.tables.getData: テーブルのデータとメタデータを取得するdataplex.datascans.create: DataScan リソースを作成するdataplex.datascans.get: DataScan リソース メタデータを読み取るdataplex.datascans.getData: DataScan 実行結果を読み取るdataplex.datascans.run: オンデマンド DataScan を実行するdataplex.entryGroups.useSchemaJoinEntryLink:schema-joinエントリリンクを使用するdataplex.entryGroups.useSchemaJoinAspect: スキーマ結合アスペクトを使用するdataplex.entryLinks.create: エントリリンクを作成するdataplex.entryLinks.update: エントリリンクを更新dataplex.entryLinks.delete: エントリリンクを削除dataplex.entries.link: リンク エントリdataplex.entries.update: エントリを更新するdataplex.entryGroups.useDescriptionsAspect: 説明アスペクトを使用するdataplex.entryGroups.useQueriesAspect: クエリ アスペクトを使用する
データセットの分析情報を生成する
コンソール
Cloud de Confiance コンソールで、[BigQuery Studio] に移動します。
[エクスプローラ] ペインで、分析情報を生成するプロジェクトとデータセットを選択します。
[分析情報] タブをクリックします。
分析情報を生成して Knowledge Catalog に公開するには、[生成して公開] をクリックします。
Knowledge Catalog に公開せずに分析情報を生成するには、[公開せずに生成] をクリックします。
[生成して公開] モードと [公開せずに生成] モードの違いについては、データセットの分析情報を生成するモードをご覧ください。
データセットがマルチリージョンにある場合は、分析情報を生成するリージョンを選択するよう求められることがあります。分析情報のスキャンが作成されるマルチリージョンに対応するリージョンを選択します。
分析情報が生成されるまで数分かかります。データセット内のテーブルにデータ プロファイリングの結果が含まれている場合、分析情報の品質が向上します。
分析情報が生成されると、BigQuery にデータセットの説明、関係グラフ、関係テーブル、テーブル間のクエリのサンプルが表示されます。
REST
分析情報をプログラムで生成するには、Knowledge Catalog の DataScans API を使用します。その方法は次のとおりです。
BigQuery データセットのデータ ドキュメント データスキャンを生成する
dataScans.createメソッドを使用して、データ ドキュメント データスキャンを作成します。必要に応じて、catalog_publishing_enabledパラメータをtrueに設定して、これらの分析情報を Knowledge Catalog に公開できます。次に例を示します。
alias gcurl='curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"' gcurl -X POST \ https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/\ dataScans?dataScanId=DATASCAN_ID \ -d '{ "data": { "resource": "//bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID" }, "executionSpec": { "trigger": { "onDemand": {} } }, "type": "DATA_DOCUMENTATION", "dataDocumentationSpec": { "catalog_publishing_enabled": true } }'次のように置き換えます。
- PROJECT_ID: データセットが存在する Cloud de Confiance by S3NSプロジェクトの ID
- LOCATION: データスキャンが実行されるリージョン
- DATASCAN_ID: このスキャンに指定する一意の名前
- DATASET_ID: スキャン対象の BigQuery データセットの ID
dataScans.runメソッドを使用して、データ ドキュメント スキャンジョブを開始します。例:
gcurl -X POST \ https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/\ dataScans/DATASCAN_ID:runこのリクエストは、初期状態とともに一意のジョブ ID を返します。
データ ドキュメントのスキャンのステータスを確認する
dataScans.get メソッドを使用して、スキャンジョブの実行の完了を確認します。分析情報や公開ステータスなどの結果をすべて取得するには、view パラメータを FULL に設定します。
ジョブ ID を使用して、ジョブのステータスを取得します。例:
gcurl -X GET https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataScans/DATASCAN_ID/jobs/JOB_ID?view=FULL
ステータスが SUCCEEDED または FAILURE になると、ジョブは完了します。
ジョブが成功すると、生成された分析情報が dataDocumentationResult フィールドに格納されます。
Knowledge Catalog への公開を確認する
catalog_publishing_enabled が true に設定されている場合、データスキャン ジョブの完了後に分析情報は Knowledge Catalog に非同期で公開されます。分析情報が永続化されたことを確認するには、Dataplex API を使用してデータセットの側面を検査します。
分析情報はデータセット レベルのデータスキャンから生成されますが、結果のエントリリンクは、接続するテーブル間に保存されます。これらの関係を確認するには、lookupEntryLinks メソッドを使用して、特定のテーブル エントリに関連付けられたエントリリンクを取得します。
BigQuery データセットのメタデータを取得するには、entries.get メソッドを使用します。すべての側面を含めるには、view パラメータを FULL に設定します。次に例を示します。
gcurl -X GET https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/entryGroups/@bigquery/entries/bigquery.googleapis.com/projects/DATASET_PROJECT_ID/datasets/DATASET_ID?view=FULL
次のように置き換えます。
- PROJECT_ID: DataScan が構成された Cloud de Confiance by S3NSプロジェクトの ID
- LOCATION: エントリ グループが存在するリージョン
- DATASET_PROJECT_ID: BigQuery データセットが存在する Cloud de Confiance by S3NSプロジェクトの ID
- DATASET: BigQuery データセットの ID
Knowledge Catalog への公開が成功すると、次の側面が BigQuery データセットに付加されます。
- 説明: データセットの AI 生成による説明が含まれます
- クエリ: データセットに関連する SQL クエリが含まれています
- 関係: データセット内のテーブル間のエントリ リンクとして保持されます
データセットの説明を表示して保存する
Gemini は、データセットの自然言語による説明を生成し、含まれているテーブルの種類と、それが表すビジネス ドメインを要約します。この説明をデータセットのメタデータに保存するには、[詳細に保存] をクリックします。
説明は、詳細を保存する前に編集できます。
関係グラフを確認する
[リレーションシップ] グラフには、データセット内のテーブル間の関連性が視覚的に表示されます。最も関連性の高い上位 10 個のテーブルがノードとして表示され、それらの関係が線で表されます。
- 2 つのテーブルを結合する列など、リレーションシップの詳細を表示するには、テーブルノードを接続するエッジにカーソルを合わせます。
- グラフを見やすくするために、テーブルノードをドラッグしてグラフを再配置します。
リレーションシップ テーブルを使用する
関係テーブルには、検出された関係が表形式で一覧表示されます。各行は 2 つのテーブル間の関係を表し、ソーステーブルと列、宛先テーブルと列を示します。[Source] 列には、関係がどのように決定されたかが示されます。
- LLM が推論しました。データセット全体のテーブル名、列名、説明に基づいて Gemini が推測したリレーション。
- 使用量ベース。頻繁な結合に基づいて、クエリログから抽出された関係。
- スキーマ定義。テーブル スキーマ内の既存の主キーと外部キーのマッピングから派生した関係。
特定のテーブルの関係をフィルタしたり、検出された関係の品質に関するフィードバックを提供したりできます。生成されたデータセットの説明とリレーションシップを JSON ファイルにエクスポートするには、[JSON にエクスポート] をクリックします。
クエリの推奨事項を使用する
検出された関係に基づいて、Gemini はサンプルクエリを生成します。これらは、データセット内の複数のテーブルを結合する対応する SQL クエリを含む自然言語の質問です。
SQL クエリを表示するには、質問をクリックします。
BigQuery クエリエディタでクエリを開くには、[クエリにコピー] をクリックします。その後、クエリを実行するか、変更します。
フォローアップの質問をするには、[もっと聞く] をクリックします。これにより、無題のデータ キャンバスが開きます。ここで Gemini とチャットして、データを調べることができます。
生成された分析情報を管理する
データセットの分析情報を生成したら、Knowledge Catalog で管理、更新、削除できます。詳細については、データセットの分析情報を管理するをご覧ください。
次のステップ
- データ分析情報の概要について学習する。
- テーブルの分析情報を生成する方法を学習する。
- Knowledge Catalog データ プロファイリングの詳細を確認する。