データセットの分析情報を生成する
このドキュメントでは、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 の有効化の詳細については、 プロジェクトで Gemini for Google Cloud API を有効にする Cloud de Confiance をご覧ください。
データ プロファイル スキャンを完了する
分析情報の品質を向上させるには、データセット内のテーブルの データ プロファイル スキャン を生成します。
必要なロール
データセットの分析情報を生成、管理、取得するために必要な権限を取得するには、次の 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: クエリ アスペクトを使用する
データセットの分析情報を生成する
コンソール
コンソールで、[BigQuery Studio] に移動します。 Cloud de Confiance
[エクスプローラ] ペインで、プロジェクトを選択し、分析情報を生成するデータセットを選択します。
[分析情報] タブをクリックします。
分析情報を生成して 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` メソッドを使用して、スキャンジョブの実行の完了を確認します。
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 つのテーブル間の関係を表し、ソーステーブルと列、宛先テーブルと列を示します。[ソース] 列は、関係がどのように決定されたかを示します。
- LLM 推論。Gemini によって推論された関係。データセット全体のテーブル名と列名、説明に基づいています。
- 使用量ベース。クエリログから抽出された関係。頻繁な結合に基づいています。
- スキーマ定義。テーブル スキーマ内の既存の主キーと外部キーのマッピングから派生した関係。
特定テーブルの関係をフィルタしたり、検出された関係の品質に関するフィードバックを提供したりできます。生成されたデータセットの説明と関係を JSON ファイルにエクスポートするには、[JSON にエクスポート] をクリックします。
クエリの推奨事項を使用する
検出された関係に基づいて、Gemini はサンプルクエリを生成します。これらは、データセット内の複数のテーブルを結合する対応する SQL クエリを含む自然言語の質問です。
SQL クエリを表示するには、質問をクリックします。
BigQuery クエリエディタでクエリを開くには、[クエリにコピー] をクリックします。その後、クエリを実行または変更できます。
さらに質問するには、[**もっと聞く**] をクリックします。これにより、タイトルなしのデータ キャンバスが開き、Gemini とチャットしてデータを探索できます。
次のステップ
- データ分析情報の概要を確認する。
- テーブルの分析情報を生成する方法を確認する。
- Knowledge Catalog のデータ プロファイリングの詳細を確認する。