BigQuery でデータ分析情報を生成する

データ分析情報があると、データを自動的に探索して理解できます。データ分析情報を使用すると、Gemini はメタデータを使用してテーブルとクエリに関する自然言語の質問を生成し、それらの質問に回答します。これにより、パターンの検出、データ品質の評価、統計分析を行うことができます。

このドキュメントでは、データ分析情報の主な機能と、有益なデータ探索のためのクエリ生成を自動化するプロセスについて説明します。

始める前に

データ分析情報は Gemini in BigQuery を使用して生成されます。分析情報の生成を開始するには、まず BigQuery で Gemini を設定する必要があります。Gemini は、データが保存されているリージョンでデータを処理しない場合があります。詳細については、Gemini のサービス提供ロケーションをご覧ください。

必要なロール

データ分析情報を作成、管理、取得するには、次の IAM ロールを付与するよう管理者に依頼してください。

生成された分析情報への読み取り専用アクセス権を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。

ロールの付与の詳細については、サービス アカウントに対するアクセスの管理をご覧ください。

必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。分析情報を生成するために必要な権限を正確に確認するには、[必要な権限] セクションを開いてください。

必要な権限

  • bigquery.jobs.create
  • bigquery.tables.get
  • bigquery.tables.getData
  • dataplex.datascans.create
  • dataplex.datascans.get
  • dataplex.datascans.getData
  • dataplex.datascans.run

API を有効にする

データ分析情報を使用するには、プロジェクトで次の API を有効にします。

Gemini for Google Cloud API の有効化の詳細については、Google Cloud プロジェクトで Gemini for Google Cloud API を有効にするをご覧ください。

データ分析情報について

データ アナリストは、新しい未知のテーブルを探索するときに、コールド スタートの問題に直面することがよくあります。多くの場合、この問題には、データ構造、キーパターン、データ内の関連する分析情報に関する不確実性が伴い、クエリの作成を開始するのが困難になります。

データ分析情報は、テーブルのメタデータに基づいて自然言語クエリとその SQL 同等物を自動的に生成することで、コールド スタートの問題に対処します。空のクエリ エディタから始めるのではなく、有益な分析情報を提供する意味のあるクエリを使用して、データ探索をすばやく開始できます。詳しく調査するには、データ キャンバスでフォローアップの質問をします。

分析情報の実行例

次のメタデータを持つ telco_churn というテーブルについて考えてみましょう。

フィールド名 タイプ
CustomerID STRING
性別 STRING
在職期間 INT64
InternetService STRING
StreamingTV STRING
OnlineBackup STRING
契約 STRING
TechSupport STRING
PaymentMethod STRING
MonthlyCharges 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 テーブル内の列を分析し、一般的なデータ値やデータ分布などの一般的な統計特性を特定します。テーブルのデータ プロファイリング スキャンを作成するときに、スキャン結果を BigQuery と Dataplex Catalog に公開できます。BigQuery は、データ プロファイリングの結果を使用して、次の方法でより正確で関連性の高いクエリを作成します。

  1. データ プロファイリングの結果を分析して、データ内の興味深いパターン、傾向、外れ値を特定します。
  2. これらのパターン、傾向、外れ値に注目するクエリを生成して、分析情報を発見する
  3. 生成されたクエリをデータ プロファイリングの結果と照らし合わせて検証し、クエリが有意な結果を返すようにします。

データ プロファイリング スキャンがないと、Gemini が生成したクエリに不正確な句が含まれたり、意味のない結果が生成されたりする可能性が高くなります。

テーブルのデータ プロファイリング スキャンが最新であり、結果が BigQuery に公開されていることを確認します。

データ プロファイリングの設定を調整して、サンプリング サイズを増やし、行と列を除外できます。新しいデータ プロファイリング スキャンを実行したら、分析情報を再生成します。

テーブルの説明を追加する

テーブルで分析する内容を記述した詳細なテーブルの説明は、Gemini in BigQuery がより関連性の高い分析情報を生成するのに役立ちます。テーブルの説明を追加したら、分析情報を再生成します。

たとえば、telco_churn テーブルに次のような説明を追加できます。「このテーブルは、定期購入の詳細、在職期間、サービスの使用状況などの顧客離れデータを追跡し、顧客離れ行動を予測します。」

列の説明を追加する

各列の内容や、列同士の関係を説明する列の説明を追加すると、分析情報の質を高めることができます。テーブルの列の説明を更新したら、分析情報を再作成します。

たとえば、telco_churn テーブルの特定の列に次の説明を追加できます。

  • Tenure: 「お客様がサービスに加入してからの月数」
  • Churn: 「お客様がサービスの使用を停止したかどうか。TRUE は、お客様がサービスを使用していないことを示します。FALSE は、お客様がアクティブであることを示します。」

BigQuery テーブルの分析情報を生成する

BigQuery テーブルの分析情報を生成するには、BigQuery Studio を使用して BigQuery のテーブル エントリにアクセスする必要があります。

  1. Google Cloud コンソールで、[BigQuery Studio] に移動します。

    BigQuery Studio に移動

  2. [エクスプローラ] ペインで、分析情報を生成するテーブルを選択します。

  3. [分析情報] タブをクリックします。タブが空の場合、このテーブルの分析情報はまだ生成されていません。

  4. 分析情報パイプラインをトリガーするには、[分析情報を生成] をクリックします。

    分析情報が入力されるまで数分かかります。

    テーブルの公開データ プロファイリングの結果が利用可能な場合は、それを使用して分析情報を生成します。そうでない場合は、列名と説明に基づいて分析情報が生成されます。

  5. [分析情報] タブで、生成された自然言語の質問を確認します。

  6. 質問に回答する SQL クエリを表示するには、質問をクリックします。

  7. BigQuery でクエリを開くには、[クエリにコピー] をクリックします。

  8. フォローアップの質問を行うには、次の手順を行います。

    1. [追加で聞く] をクリックします。クエリが新しいデータ キャンバスで開きます。

    2. [実行]、[これらの結果に対してクエリを実行する] の順にクリックします。

    3. フォローアップの質問をするには、[自然言語] プロンプト フィールドにプロンプトを入力するか、クエリエディタで SQL を編集します。

  9. 新しいクエリのセットを生成するには、[分析情報を生成] をクリックして、パイプラインを再度トリガーします。

テーブルの分析情報を生成すると、dataplex.datascans.getData 権限とテーブルへのアクセス権を持つすべてのユーザーがその分析情報を表示できます。

BigQuery 外部テーブルの分析情報を生成する

BigQuery データ分析情報は、Cloud Storage にデータがある BigQuery 外部テーブルの分析情報を生成できます。ユーザーと現在のプロジェクトの Dataplex サービス アカウントには、データを含む Cloud Storage バケットに対するストレージ オブジェクト閲覧者roles/storage.objectViewer)ロールが必要です。詳細については、バケットレベルのポリシーにプリンシパルを追加するをご覧ください。

BigQuery 外部テーブルの分析情報を生成するには、このドキュメントの BigQuery テーブルの分析情報の生成の説明に従います。

BigLake テーブルの分析情報を生成する

BigLake テーブルの分析情報を生成する手順は次のとおりです。

  1. プロジェクトで BigQuery Connection API を有効にします。

    BigQuery Connection API を有効にする

  2. BigQuery Connection を作成します。詳細については、接続を管理するをご覧ください。

  3. 作成した BigQuery 接続に関連するサービス アカウントに Storage オブジェクト閲覧者(roles/storage.objectViewer)IAM ロールを付与します。

    サービス アカウント ID は、接続の詳細から取得できます。

  4. 分析情報を生成するには、このドキュメントの BigQuery テーブルの分析情報を生成するセクションの説明に従います。

料金

この機能の料金の詳細については、Gemini in BigQuery の料金の概要をご覧ください。

割り当てと上限

この機能の割り当てと上限については、Gemini in BigQuery の割り当てをご覧ください。

制限事項

  • データ分析情報は、BigQuery テーブル、BigLake テーブル、外部テーブル、ビューで使用できます。
  • マルチクラウドのお客様の場合、他のクラウドのデータは利用できません。
  • データ分析情報は、Geo または JSON の列タイプをサポートしていません。
  • 分析情報の実行で、毎回クエリが表示されるとは限りません。関連性のより高いクエリが生成されやすくするには、分析情報パイプラインを再起動します。
  • 列レベルのアクセス制御(ACL)と制限付きユーザー権限が設定されているテーブルの場合、テーブルのすべての列に対する読み取りアクセス権があれば、分析情報を生成できます。生成されたクエリを実行するには、十分な権限が必要です。

次のステップ