データセットの分析情報を生成する
このドキュメントでは、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 権限が必要です。プロジェクトを作成した場合は、オーナーロール(roles/owner)を通じてこの権限が付与されている可能性があります。それ以外の場合は、Service Usage 管理者ロール(roles/serviceusage.serviceUsageAdmin)を通じてこの権限を取得できます。ロールを付与する方法をご覧ください。
Gemini for Google Cloud API の有効化の詳細については、 プロジェクトで Gemini for Google Cloud API を有効にする Google Cloud をご覧ください。
データ プロファイル スキャンを完了する
分析情報の品質を向上させるには、データセット内のテーブルの データ プロファイル スキャン を生成します。
必要なロール
データセットの分析情報を生成、管理、取得するために必要な権限を取得するには、次の 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: データスキャン リソースを作成するdataplex.datascans.get: データスキャン リソースのメタデータを読み取るdataplex.datascans.getData: データスキャン実行結果を読み取るdataplex.datascans.run: オンデマンド データスキャンを実行する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] に移動します。 Google Cloud
[エクスプローラ] ペインで、プロジェクトを選択し、分析情報を生成するデータセットを選択します。
[分析情報] タブをクリックします。
分析情報を生成して 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: データセットが存在する Google Cloudプロジェクトの 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: データスキャンが構成された Google Cloud プロジェクトの ID
- LOCATION: エントリ グループが存在するリージョン
- DATASET_PROJECT_ID: BigQuery データセットが存在する Google Cloud プロジェクトの ID
- DATASET: BigQuery データセットの ID
Knowledge Catalog への公開が成功すると、次のアスペクトが BigQuery データセットにアタッチされます。
- 説明: データセットの AI 生成による説明が含まれます
- クエリ: データセットに関連する関連する SQL クエリが含まれます
- 関係: データセット内のテーブル間のエントリリンクとして保持されます
データセットの説明を表示して保存する
Gemini は、データセットの自然言語による説明を生成し、含まれるテーブルの種類と、それが表すビジネス ドメインを要約します。この説明をデータセットのメタデータに保存するには、[詳細に保存] をクリックします。
説明は、詳細を保存する前に編集できます。
関係グラフを確認する
[関係] グラフは、データセット内のテーブルが相互にどのように関連しているかを視覚的に表現します。接続数の多い上位 10 個のテーブルがノードとして表示され、それらの間の関係が線で表されます。
- 2 つのテーブルを結合する列など、関係の詳細を表示するには、テーブルノードを接続するエッジにカーソルを合わせます。
- グラフを見やすくするために、テーブルノードをドラッグして配置を変更します。
関係テーブルを使用する
[関係テーブル] には、検出された関係が表形式で一覧表示されます。各行は 2 つのテーブル間の関係を表し、ソーステーブルと列、宛先テーブルと列を示します。[ソース] 列は、関係がどのように決定されたかを示します。
- LLM 推論。Gemini によって推論された関係。データセット全体のテーブル名と列名、説明に基づいています。
- 使用量ベース。クエリログから抽出された関係。頻繁な結合に基づいています。
- スキーマ定義。テーブル スキーマ内の既存の主キーと外部キーのマッピングから派生した関係。
特定テーブルの関係をフィルタしたり、検出された関係の品質に関するフィードバックを提供したりできます。生成されたデータセットの説明と関係を JSON ファイルにエクスポートするには、[JSON にエクスポート] をクリックします。
クエリの推奨事項を使用する
検出された関係に基づいて、Gemini はサンプルクエリを生成します。これらは、データセット内の複数のテーブルを結合する対応する SQL クエリを含む自然言語の質問です。
SQL クエリを表示するには、質問をクリックします。
BigQuery クエリエディタでクエリを開くには、[クエリにコピー] をクリックします。その後、クエリを実行または変更できます。
フォローアップの質問をするには、[もっと聞く] をクリックします。これにより、無題のデータ キャンバスが開き、Gemini とチャットしてデータを探索できます。
生成インサイトを管理する
データセットの分析情報を生成したら、Knowledge Catalog で管理、更新、削除できます。 詳細については、 データセットの分析情報を管理するをご覧ください。
次のステップ
- データ分析情報の概要を確認する。
- テーブルの分析情報を生成する方法を確認する。
- Knowledge Catalog データ プロファイリングの詳細を確認する。