BigQuery でデータ分析情報を生成する
データ分析情報を使用すると、データを自動的に探索、理解、キュレートできます。 Gemini in BigQuery は、データ分析情報を使用して、テーブルのメタデータに基づいて自然言語の質問と、それらに対する回答となる SQL クエリを生成します。これらの分析情報は、パターンの検出、データ品質の評価、統計分析に役立ちます。
データ分析情報を使用して、テーブルのメタデータに基づいてテーブルと列の説明を生成することもできます。この機能を使用すると、有意義な分析のためにデータを文書化し、データセットの検出可能性を高めることができます。
このページでは、データ分析情報の主な機能と、有益なデータ探索のためのクエリ生成を自動化するプロセスについて説明します。
始める前に
データ分析情報は Gemini in BigQuery を使用して生成されます。分析情報の生成を開始するには、まず Gemini in BigQuery を設定する必要があります。
必要なロール
データ分析情報を作成、管理、取得するには、次の IAM ロールを付与するよう管理者に依頼してください。
分析情報を生成するプロジェクトに対する Dataplex DataScan 編集者(
roles/dataplex.dataScanEditor)または Dataplex DataScan 管理者(roles/dataplex.dataScanAdmin)分析情報を生成する BigQuery テーブルに対する BigQuery データ閲覧者(
roles/bigquery.dataViewer)分析情報を生成する BigQuery テーブルに対する BigQuery データ編集者(
roles/bigquery.dataEditor)分析情報を生成するプロジェクトに対する BigQuery ユーザー(
roles/bigquery.user)または BigQuery Studio ユーザー(roles/bigquery.studioUser)。
生成された分析情報への読み取り専用アクセス権を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。
- 分析情報を表示する BigQuery テーブルを含むプロジェクトに対する Dataplex DataScan データ閲覧者(
roles/dataplex.dataScanDataViewer)
API を有効にするには、次の IAM ロールを付与するよう管理者に依頼してください。
- 分析情報を生成するプロジェクトに対する Service Usage 管理者(
roles/serviceusage.serviceUsageAdmin)。
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。分析情報を生成するために必要な正確な権限については、「必要な権限」セクションを開いてください。
必要な権限
bigquery.jobs.createbigquery.tables.getbigquery.tables.getDatadataplex.datascans.createdataplex.datascans.getdataplex.datascans.getDatadataplex.datascans.run
API を有効にする
データ分析情報を使用するには、プロジェクトで Dataplex API、BigQuery API、Gemini for Google Cloud API を有効にします。
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM
role (roles/serviceusage.serviceUsageAdmin), which
contains the serviceusage.services.enable permission. Learn how to grant
roles.
Gemini for Google Cloud API の有効化の詳細については、 Cloud de Confiance プロジェクトで Gemini for Google Cloud API を有効にするをご覧ください。
データ分析情報について
データ アナリストは、新しい不慣れなテーブルを探索するときに、コールド スタートの問題に直面することがよくあります。多くの場合、この問題には、データ構造、キーパターン、データ内の関連する分析情報に関する不確実性が伴い、クエリの作成を開始するのが困難になります。
データ分析情報は、テーブルのメタデータに基づいて自然言語クエリとそれに対応する SQL の要素を自動的に生成することで、コールド スタートの問題に対処します。空のクエリエディタから始めるのではなく、有益な分析情報を提供する意味のあるクエリを使用して、データ探索をすばやく開始できます。詳しく調査するには、データ キャンバスでフォローアップの質問をします。
分析情報の実行例
次のメタデータを持つ telco_churn というテーブルについて考えてみましょう。
| フィールド名 | タイプ |
|---|---|
| 顧客 ID | STRING |
| 性別 | STRING |
| 加入期間 | INT64 |
| InternetService | STRING |
| StreamingTV | STRING |
| OnlineBackup | STRING |
| 契約 | STRING |
| テクニカル サポート | STRING |
| 支払い方法 | STRING |
| 月額料金 | FLOAT |
| チャーン | BOOLEAN |
データ分析情報によってこのテーブルに対して生成されるクエリのサンプルを次に示します。
すべてのプレミアム サービスを定期購入していて、50 か月以上定期購入している顧客を特定します。
SELECT CustomerID, Contract, Tenure FROM agentville_datasets.telco_churn WHERE OnlineBackup = 'Yes' AND TechSupport = 'Yes' AND StreamingTV = 'Yes' AND Tenure > 50;解約した顧客が最も多いインターネット サービスを特定します。
SELECT InternetService, COUNT(DISTINCT CustomerID) AS total_customers FROM agentville_datasets.telco_churn WHERE Churn = TRUE GROUP BY InternetService ORDER BY total_customers DESC LIMIT 1;価値の高い顧客のセグメント別解約率を特定します。
SELECT Contract, InternetService, Gender, PaymentMethod, COUNT(DISTINCT CustomerID) AS total_customers, SUM(CASE WHEN Churn = TRUE THEN 1 ELSE 0 END) AS churned_customers, (SUM(CASE WHEN Churn = TRUE THEN 1 ELSE 0 END) / COUNT(DISTINCT CustomerID)) * 100 AS churn_rate FROM agentville_datasets.telco_churn WHERE MonthlyCharges > 100 GROUP BY Contract, InternetService, Gender, PaymentMethod;
生成された分析情報を改善するためのベスト プラクティス
生成される分析情報の精度を高めるには、次のおすすめの方法を参考にしてください。
分析情報をデータ プロファイリングの結果に反映する
生成 AI において、グラウンディングとは、モデルの出力を検証可能な情報源に紐付ける仕組みを指します。生成された分析情報をデータ プロファイリングの結果に関連付けることができます。データ プロファイリングは、BigQuery テーブル内の列を分析し、一般的なデータ値やデータの分散などの一般的な統計特性を特定します。テーブルのデータ プロファイリング スキャンを作成するときに、スキャン結果を Cloud de Confiance コンソールの BigQuery ページと Dataplex Universal Catalog ページに公開できます。BigQuery は、データ プロファイリングの結果を使用して、次の方法でより正確で関連性の高いクエリを作成します。
- データ プロファイリングの結果を分析して、データ内の興味深いパターン、傾向、外れ値を特定します。
- これらのパターン、傾向、外れ値に注目するクエリを生成して、分析情報を発見します。
- 生成されたクエリをデータ プロファイリングの結果と照らし合わせて検証し、クエリが有意義な結果を返すようにします。
データ プロファイリング スキャンがないと、次のようになります。
- 生成されるクエリに不正確な句が含まれる可能性や、意味のない結果が生成される可能性が高くなります。
- 生成される列の説明は、列名のみに基づいています。
テーブルのデータ プロファイリング スキャンが最新であり、結果が BigQuery に公開されていることを確認します。
データ プロファイリングの設定を調整して、サンプリング サイズを大きくして、行と列を除外できます。新しいデータ プロファイリング スキャンを実行したら、分析情報を再生成します。
テーブルの説明を追加する
テーブルで分析する内容を記述した詳細なテーブルの説明は、Gemini in BigQuery でより関連性の高い分析情報を生成するのに役立ちます。テーブルの説明を追加したら、分析情報を再生成します。
たとえば、telco_churn テーブルに次のような説明を追加できます。「このテーブルは、定期購入の詳細、加入期間、サービスの使用状況などの顧客離脱データを追跡し、顧客離脱行動を予測します。」
Gemini が生成したテーブルの説明を保存すると、その説明を使用して今後の分析情報が生成されます。
列の説明を追加する
各列の内容や、列同士の関係を説明する列の説明を追加すると、分析情報の質を高めることができます。テーブルの列の説明を更新したら、分析情報を再作成します。
たとえば、telco_churn テーブルの特定の列に次の説明を追加できます。
Tenure: 「お客様がサービスに加入してからの月数」Churn: 「お客様がサービスの使用を停止したかどうか。TRUE は、お客様がサービスを使用していないことを示します。FALSE は、お客様がービスを使用していることを示します。」
Gemini が生成した列の説明を保存すると、その説明は今後の分析情報の生成に使用されます。
BigQuery テーブルの分析情報を生成する
コンソール
BigQuery テーブルの分析情報を生成するには、BigQuery Studio を使用して BigQuery のテーブル エントリにアクセスする必要があります。
- Cloud de Confiance コンソールで、[BigQuery Studio] に移動します。
- 左側のペインで、 [エクスプローラ] をクリックします。

左側のペインが表示されていない場合は、 [左ペインを開く] をクリックしてペインを開きます。
[エクスプローラ] ペインで、[データセット] をクリックし、データセットを選択します。
[概要] > [テーブル] をクリックし、分析情報を生成するテーブルを選択します。
[分析情報] タブをクリックします。タブが空の場合、このテーブルの分析情報はまだ生成されていません。
分析情報パイプラインをトリガーするには、[分析情報を生成] をクリックします。
分析情報が入力されるまで数分かかります。
テーブルの公開されているデータ プロファイリングの結果が利用可能な場合は、それを使用して分析情報を生成します。そうでない場合は、列名と説明に基づいて分析情報が生成されます。
[分析情報] タブで、生成された自然言語の質問を確認します。
質問に回答する SQL クエリを表示するには、質問をクリックします。
BigQuery でクエリを開くには、[クエリにコピー] をクリックします。
フォローアップの質問を行うには、次の手順を行います。
[追加で質問する] をクリックします。クエリが新しいデータ キャンバスで開きます。
[実行]、[これらの結果に対してクエリを実行する] の順にクリックします。
フォローアップの質問をするには、[自然言語] プロンプト フィールドにプロンプトを入力するか、クエリエディタで SQL を編集します。
新しいクエリのセットを生成するには、[分析情報を生成] をクリックして、パイプラインを再度トリガーします。
テーブルの分析情報を生成すると、dataplex.datascans.getData 権限とテーブルへのアクセス権を持つすべてのユーザーがその分析情報を表示できます。
REST
BigQuery テーブルの分析情報を生成するには、Dataplex Universal Catalog の DataScans API でサポートされている DATA_DOCUMENTATION スキャンタイプを使用します。これらのスキャンでは、データ探索に役立つ SQL クエリ、スキーマの説明、テーブルレベルの概要などのメタデータが生成されます。
BigQuery テーブルのデータ分析情報を生成する手順は次のとおりです。
省略可: テーブルのデータ プロファイル スキャンを作成します。これらのスキャンが存在することで、Gemini のハルシネーションと近似が減ります。これは、出力がデータ内の実際の値に基づいているためです。
dataScans.createメソッドを使用して、データ プロファイル スキャンを作成します。dataScans.runメソッドを使用してデータ プロファイル スキャンを実行します。実行が完了するまで待ちます。次のデータ プロファイリング ラベルをテーブルに付加して、スキャン結果を BigQuery テーブルに公開します。
- dataplex-dp-published-scan:DATASCAN_ID
- dataplex-dp-published-project:PROJECT_ID
- dataplex-dp-published-location:LOCATION
詳細については、テーブルとビューにラベルを追加するをご覧ください。
BigQuery テーブルのデータ ドキュメント データスキャンを生成します。
dataScans.createメソッドを使用して、データ ドキュメント データスキャンを作成します。例:
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/tables/TABLE_ID" }, "executionSpec": { "trigger":{ "onDemand":{} } }, "type":"DATA_DOCUMENTATION", "dataDocumentationSpec":{}}'次のように置き換えます。
- PROJECT_ID: データセットが存在する Cloud de Confiance by S3NSプロジェクトの ID
- LOCATION: データスキャンが実行されるリージョン
- DATASCAN_ID: このスキャンに指定する一意の名前
- DATASET_ID: スキャン対象の BigQuery データセットの ID
- TABLE_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メソッドを使用して、スキャンジョブの実行の完了を確認します。ジョブ ID を使用して、ジョブのステータスを取得します。例:
gcurl -X GET https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataScans/DATASCAN_ID/jobs/JOB_IDステータスが
SUCCEEDEDまたはFAILUREになると、ジョブは完了します。次のデータ ドキュメント ラベルをテーブルに付加して、スキャン結果を BigQuery テーブルに公開します。
- dataplex-data-documentation-published-scan:DATASCAN_ID
- dataplex-data-documentation-published-project:PROJECT_ID
- dataplex-data-documentation-published-location:LOCATION
BigQuery 外部テーブルの分析情報を生成する
BigQuery データ インサイトは、Cloud Storage にデータがある BigQuery 外部テーブルのインサイトを生成できます。ユーザーと現在のプロジェクトの Dataplex Universal Catalog サービス アカウントには、データを含む Cloud Storage バケットに対するストレージ オブジェクト閲覧者ロール(roles/storage.objectViewer)が必要です。詳細については、バケットレベルのポリシーにプリンシパルを追加するをご覧ください。
BigQuery 外部テーブルの分析情報を生成するには、このドキュメントの BigQuery テーブルの分析情報の生成の説明に従います。
BigLake テーブルの分析情報を生成する
BigLake テーブルの分析情報を生成する手順は次のとおりです。
プロジェクトで BigQuery Connection API を有効にします。
BigQuery Connection を作成します。詳細については、接続を管理するをご覧ください。
作成した BigQuery 接続に関連するサービス アカウントに Storage オブジェクト閲覧者(
roles/storage.objectViewer)IAM ロールを付与します。サービス アカウント ID は、接続の詳細から取得できます。
分析情報を生成するには、このドキュメントの BigQuery テーブルの分析情報を生成するセクションの説明に従います。
テーブルと列の説明を生成する
Gemini in BigQuery は、データ分析情報を生成するときに、テーブルと列の説明を自動的に生成します。必要に応じてこれらの説明を編集し、テーブルのメタデータに保存できます。保存された説明は、今後の分析情報を生成するために使用されます。
生成言語を制御する
特定の言語でテーブルと列の説明を生成するように Gemini に指示できます。これを行うには、データ分析を生成する前に、テーブルの既存の説明に短い指示を追加します(たとえば、「フランス語でテーブルと列の説明を生成して」など)。
分析情報を生成すると、Gemini はこのディレクティブを解釈し、リクエストされた言語でメタデータを生成します。Gemini は、新しいテーブルの説明を生成するときに既存のテーブルの説明をコンテキストとして使用するため、このメカニズムが機能します。
サポートされている言語の一覧については、Gemini の言語サポートをご覧ください。
説明を生成する
テーブルと列の説明を生成する手順は次のとおりです。
このドキュメントの関連セクションに記載されている手順に沿って、分析情報を生成します。
[スキーマ] タブをクリックします。
[列の説明を表示] をクリックします。
Gemini によって生成されたテーブルの説明と列の説明が表示されます。
生成されたテーブルの説明を編集して保存する手順は次のとおりです。
[テーブルの説明] セクションで、[詳細に保存] をクリックします。
現在の説明を生成された説明に置き換えるには、[Copy suggested description] をクリックします。
必要に応じてテーブルの説明を編集し、[詳細に保存] をクリックします。
テーブルの説明はすぐに更新されます。
生成された列の説明を編集して保存する手順は次のとおりです。
[列の説明] セクションで、[スキーマに保存] をクリックします。
生成された列の説明は、各列の [新しい説明] フィールドに入力されます。
必要に応じて列の説明を編集し、[保存] をクリックします。
列の説明はすぐに更新されます。
プレビュー パネルを閉じるには、(閉じる)をクリックします。
料金
この機能の料金の詳細については、Gemini in BigQuery の料金の概要をご覧ください。
割り当てと上限
この機能の割り当てと上限については、Gemini in BigQuery の割り当てをご覧ください。
制限事項
- データ分析情報は、BigQuery テーブル、BigLake テーブル、外部テーブル、ビューで使用できます。
- マルチクラウドのお客様の場合、他のクラウドのデータは利用できません。
- データ分析情報は、
GeoまたはJSONの列タイプをサポートしていません。 - 分析情報の実行で、毎回クエリが表示されるとは限りません。関連性のより高いクエリが生成されやすくするには、分析情報パイプラインを再起動します。
- 列レベルのアクセス制御(ACL)と制限付きユーザー権限が設定されているテーブルの場合、テーブルのすべての列に対する読み取りアクセス権があれば、分析情報を生成できます。生成されたクエリを実行するには、十分な権限が必要です。
- 列の説明は、テーブル内の最大 350 個の列に対して生成されます。
ロケーション
データ分析情報は、すべての BigQuery ロケーションで使用できます。Gemini in BigQuery はグローバルに運用されるため、データ処理を特定のリージョンに制限することはできません。Gemini in BigQuery がデータを処理するロケーションの詳細については、Gemini のサービス提供ロケーションをご覧ください。
次のステップ
- Dataplex Universal Catalog データ プロファイリングの詳細を学習する。
- BigQuery で Gemini の支援機能を使用してクエリを作成する方法を学習する。
- Gemini in BigQuery の詳細を確認する。
- データ キャンバスを使用して、自然言語の質問でクエリ結果を反復処理する方法を学習する。