データセットの分析情報を生成する
このドキュメントでは、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 の有効化の詳細については、 Google Cloud プロジェクトで 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: クエリ アスペクトを使用する
データセットの分析情報を生成する
コンソール
Google Cloud コンソールで、[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: データセットが存在する 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 メソッドを使用して、スキャンジョブの実行の完了を確認します。分析情報や公開ステータスなどの結果をすべて取得するには、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 が構成された Google Cloudプロジェクトの ID
- LOCATION: エントリ グループが存在するリージョン
- DATASET_PROJECT_ID: BigQuery データセットが存在する Google Cloudプロジェクトの 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 データ プロファイリングの詳細を確認する。