データセットの分析情報を生成する
データ インサイトは、グラフ内のテーブル間の関係を検出して可視化し、スキーマ定義、使用状況ベース、AI 推論の関係を特定して、サンプル クロステーブル クエリを生成することで、BigQuery データセットと Apache Iceberg 名前空間のテーブル間の関係を把握するのに役立ちます。
テーブルとデータセットの分析情報の概要については、データ インサイトの概要をご覧ください。
データセットの分析情報を生成するモード
データセットの分析情報を生成する際、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: データスキャン リソースを作成する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: クエリアスペクトを使用する
データセットの分析情報を生成する
コンソール
Google Cloud コンソールで、[BigQuery Studio] に移動します。
[エクスプローラ] ペインで、生成インサイトを生成するプロジェクトとデータセットを選択します。Iceberg 名前空間の場合は、カタログ名前空間を表すデータセットを選択します。
[分析情報] タブをクリックします。
タブが空の場合、このデータセットの分析情報はまだ生成されていません。
[生成] をクリックします。
公開条件を選択します。
分析情報を生成してメタデータ アスペクトとしてアセットに永続的にアタッチするには、[公開条件] の切り替えをオンにします。これにより、分析情報がインデックスに登録され、検索可能になり、組織内の他のユーザーに表示されるようになります。
現在のセッション中に分析情報を一時的に生成して表示するには、[公開条件] 切り替えボタンをオフにします。
[生成して公開] モードと [公開せずに生成] モードの違いについては、データ分析情報を生成するモードをご覧ください。
省略可: [カスタム指示] フィールドに、Gemini が生成インサイトを生成する方法をカスタマイズするためのガイダンスとドメイン コンテキストを入力します。
たとえば、命名規則の適用、ビジネス定義の指定、結合キーの説明などを行うことができます。
LANGUAGE: Always write column descriptions in uppercase. DOMAIN_CONTEXT: - This dataset supports the Order-to-Cash process for the EMEA commercial sales team. - Primary consumers are finance analysts and regional sales managers, not engineers. RELATIONSHIPS: - returns.order_item_id → order_items.id (one-to-one; use LEFT JOIN to preserve unreturned items)データセットがマルチリージョンにある場合は、生成インサイトを生成するリージョンを選択するよう求められることがあります。分析情報のスキャンが作成されるマルチリージョンに対応するリージョンを選択します。
分析情報が生成されるまで数分かかります。データセット内のテーブルにデータ プロファイリングの結果がある場合、分析情報の品質が向上します。
分析情報が生成されると、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: データスキャンが構成された Google Cloudプロジェクトの ID
- LOCATION: エントリ グループが存在するリージョン
- DATASET_PROJECT_ID: BigQuery データセットが存在する Google Cloudプロジェクトの ID
- DATASET: BigQuery データセットの ID
Knowledge Catalog への公開が成功すると、次のアスペクトが BigQuery データセットにアタッチされます。
- 説明: データセットの AI 生成の説明が含まれます。
- Queries: データセットに関連する SQL クエリが含まれています。
- 関係: データセットに存在するテーブル間のエントリリンクとして保持されます。
データセットの説明を表示して保存する
Gemini は、データセットの自然言語による説明を生成し、データセットに含まれるテーブルの種類と、データセットが表すビジネス ドメインを要約します。この説明をデータセットのメタデータに保存するには、[詳細に保存] をクリックします。
詳細を保存する前に説明を編集できます。
関係グラフを調べる
[リレーションシップ] グラフは、データセット内のテーブルが相互にどのように関連しているかを視覚的に表したものです。最も接続されている上位 10 個のテーブルがノードとして表示され、それらの間の関係を表す線が表示されます。
- 2 つのテーブルを結合する列などの関係の詳細を表示するには、テーブルノードを接続するエッジにカーソルを合わせます。
- グラフを再配置して見やすくするには、テーブルノードをドラッグします。
関係テーブルを使用する
[関係テーブル] には、検出された関係が表形式で一覧表示されます。各行は 2 つのテーブル間の関係を表し、ソーステーブルと列、宛先テーブルと列を示します。[ソース] 列には、関係がどのように決定されたかが表示されます。
- LLM 推論。データセット全体のテーブル名、列名、説明に基づいて Gemini が推測した関係。
- 使用量ベース。頻繁な結合に基づいて、クエリログから抽出された関係。
- スキーマ定義。テーブル スキーマ内の既存の主キーと外部キーのマッピングから派生した関係。
特定のテーブルの関係をフィルタしたり、検出された関係の品質に関するフィードバックを送信したりできます。生成されたデータセットの説明と関係を JSON ファイルにエクスポートするには、[JSON にエクスポート] をクリックします。
クエリの推奨事項を使用する
検出された関係に基づいて、Gemini はサンプルクエリを生成します。これらは、データセット内の複数のテーブルを結合する、対応する SQL クエリを含む自然言語の質問です。
SQL クエリを表示するには、質問をクリックします。
BigQuery クエリエディタでクエリを開くには、[クエリにコピー] をクリックします。その後、クエリを実行または変更できます。
フォローアップの質問をするには、[追加で質問する] をクリックします。これにより、無題のデータ キャンバスが開き、Gemini とチャットしてデータを探索できます。
生成インサイトを管理する
データセットの生成インサイトを生成したら、Knowledge Catalog で管理、更新、削除できます。詳細については、データセットの分析情報を管理するをご覧ください。
次のステップ
- データ分析情報の概要について確認する。
- テーブルの分析情報を生成する方法を学習する。
- Knowledge Catalog のデータ プロファイリングの詳細を確認する。