Gemini のアシスタント機能を使用してクエリを作成する
AI による支援を提供する Gemini for Google Cloud を使用すると、BigQuery で次のことができます。
- SQL クエリを生成する。
- SQL クエリを完成させる。
- SQL クエリについて説明する。
- Python コードを生成する。
- Python コードを完成させる。
Gemini for Google Cloud がいつどのようにデータを使用するかについては、こちらをご覧ください。
BigQuery の Gemini では、英語のプロンプトのみがサポートされます。このドキュメントは、SQL クエリと BigQuery の Colab Enterprise ノートブックを使用するデータ アナリスト、データ サイエンティスト、データ デベロッパーを対象としています。BigQuery SQL ワークスペースでデータをクエリする方法、またはノートブックで Python を使用して BigQuery データを分析する方法に関する知識があることを前提としています。
始める前に
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
- Google Cloud プロジェクトに Gemini が設定されていることを確認します。設定が完了するまで、Gemini のボタンは表示されません。
- Python コードで Gemini を使用する場合は、BigQuery Studio でアセット管理を有効にします。
必要なロール
Gemini の支援機能を利用してクエリを作成するために必要な権限を取得するには、プロジェクトに対する Cloud AI コンパニオン ユーザー(roles/cloudaicompanion.user
)IAM ロールを付与するよう管理者に依頼してください。ロールの付与の詳細については、アクセス権の管理をご覧ください。
この事前定義ロールには、Gemini の支援機能を利用してクエリを作成するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
Gemini の支援機能を使用してクエリを作成する場合は、次の権限が必要です。
-
cloudaicompanion.companions.generateCode
-
cloudaicompanion.entitlements.get
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
SQL クエリを生成する
データのスキーマに基づいて SQL クエリを生成するには、Gemini に自然言語のステートメントまたは質問(プロンプト)を提供します。コード不要で始める場合や、データスキーマの知識や GoogleSQL 構文の基本的な知識しかない場合でも、Gemini は、データの探索に役立つ 1 つ以上の SQL ステートメントを生成できます。「コーディング サポート」ツールを使用する
「コーディングをサポート」ツールを使用すると、自然言語を使用して SQL クエリを生成し、BigQuery Studio で実行できます。
「コーディングをサポート」ツールを使用するには、次の操作を行います。
Google Cloud コンソールで [BigQuery] ページに移動します。
BigQuery Studio のクエリエディタで、「SQL クエリを作成」アイコン
をクリックします。ツールバーで、Gemini ボタン pen_spark をクリックし、[コード生成ツール] を選択します(まだ選択していない場合)。
クエリエディタの横にある「コーディングをサポート」ボタン pen_spark をクリックします。
「コーディングをサポート」ツールで、プロンプトを入力します。例:
Using `bigquery-public-data.austin_bikeshare.bikeshare_trips`, show me the ten longest trip lengths by subscriber type.
[生成] をクリックします。
Gemini は、次のような SQL クエリを生成します。
SELECT subscriber_type, MAX(duration_minutes) AS longest_trip_duration FROM `bigquery-public-data.austin_bikeshare.bikeshare_trips` GROUP BY subscriber_type ORDER BY longest_trip_duration DESC LIMIT 10;
生成された SQL クエリを確認し、次のいずれかの操作を行います。
- 生成された SQL クエリを受け入れるには、[挿入] をクリックして、クエリエディタにステートメントを挿入します。[実行] をクリックして、提案された SQL クエリを実行します。
- 新しいクエリを生成するよう Gemini にリクエストするには、[編集] をクリックします。メッセージを編集したら、[更新] をクリックします。生成された新しいステートメントを受け入れるか、提案を閉じます。
- 提案を閉じるには、[コーディングをサポート] ウィンドウを閉じます。
特定のテーブルソースを使用して新しいクエリを生成するように Gemini に指示するには、[テーブルソースを編集] をクリックし、新しいテーブルソースを選択して [適用] をクリックします。新しいステートメントを受け入れるか、提案を閉じます。
「コーディング サポート」ツールを無効にする
「コーディングをサポート」ツールを無効にする方法については、Gemini の機能を無効にするをご覧ください。
SQL クエリを生成するプロンプト
SQL を生成するには、BigQuery クエリエディタに # 文字を入力し、その後に自然言語ステートメントまたは必要な情報に関する質問を入力します。Gemini は最近のクエリを確認して、プロンプトに関連する可能性のあるテーブル スキーマを見つけます。使用するテーブルがわかっている場合は、プロンプトのバッククォート(`
)でテーブル名を囲んで指定できます。
次の例では、BigQuery 公開テーブル bigquery-public-data.austin_bikeshare.bikeshare_trips
に対するクエリを生成します。
Google Cloud コンソールで [BigQuery Studio] ページに移動します。
残りの手順は、Google Cloud コンソールに表示されます。
SQL クエリエディタで、
[ をクリックします。 クエリを新規作成]ツールバー、
Gemini ボタン pen_spark をクリックし、[自動生成] を選択します(まだ選択されていない場合)。クエリエディタで、次の自然言語プロンプトを入力します。
# Using `bigquery-public-data.austin_bikeshare.bikeshare_trips`, calculate the # average trip length by subscriber type.
Enter キーを押します(macOS では Return)。
Gemini は次のような SQL クエリを提案します。
SELECT subscriber_type, AVG(duration_minutes) AS average_trip_length FROM `bigquery-public-data.austin_bikeshare.bikeshare_trips` GROUP BY subscriber_type
候補を採用するには、Tab キーを押します。
追加の候補を表示する
Gemini は、プロンプトに対して複数の SQL ステートメントを提案する場合があります。例:
クエリエディタで、次の自然言語プロンプトを入力して、Enter(macOS では Return)を押します。
# Write a query that creates a table in the dataset `1234` with a string column called "name"
Gemini が SQL クエリを提案します。
提案されている SQL クエリの上にポインタを置きます。
その他の候補をクリックして、次のいずれかを行います。
- Tab キーを押すと、提案を採用できます。
- 特定の単語を採用するには、Ctrl+右矢印(macOS では command+右矢印)を押します。
- 候補を閉じるには、Esc キーを押します。
SQL 生成のヒント
次のヒントを参考にして、BigQuery の Gemini から提案される候補を改善してください。
- データスキーマを指定する場合は、
`PROJECT.DATASET.TABLE`
のように、完全修飾されたテーブル名をバッククォート(`
)で囲んで指定します。 - 列名またはその意味関係が不明瞭または複雑な場合は、プロンプトでコンテキストを指定することで、Gemini を必要な答えに導くことができます。この手法は、プロンプト エンジニアリングと呼ばれています。たとえば、生成されたクエリで列名を参照するようにするには、列名と、求める回答との関連性を記述します。生涯価値や売上総利益のような複雑な用語を参照する回答を促すには、コンセプトと、データとの関連性を記述して、SQL の生成結果を改善します。
- プロンプトはクエリエディタ内の複数行に記述できますが、各行の先頭は
#
文字にする必要があります。
Gemini と BigQuery のデータ
BigQuery の Gemini は、アクセス権限のあるテーブルのメタデータにアクセスできます。これには、テーブル名、列名、データ型、列の説明などが含まれます。BigQuery の Gemini は、テーブル、ビュー、モデルのデータにアクセスできません。Gemini によるデータの使用方法の詳細については、Google Cloud の Gemini によるデータの使用方法をご覧ください。
SQL コードの生成を無効にする
BigQuery で SQL コードの生成を無効にする方法については、Gemini の機能を無効にするをご覧ください。
SQL クエリを完成させる
SQL の補完機能では、Query Editor のコンテンツに基づいて、コンテキストに応じた推奨事項の提供が試みられます。入力に応じて、Gemini は現在のクエリのコンテキストに関連する論理的な次のステップを提案するか、クエリを反復処理できるようにします。
Gemini で SQL の補完機能を試すには、次の操作を行います。
Google Cloud コンソールで [BigQuery Studio] ページに移動します。
残りの手順は、Google Cloud コンソールに表示されます。
ツールバーで、
Gemini ボタン pen_spark をクリックし、[予測入力] を選択します(まだ選択されていない場合)。クエリエディタで、次の内容をコピーします。
SELECT subscriber_type , EXTRACT(HOUR FROM start_time) AS hour_of_day , AVG(duration_minutes) AS avg_trip_length FROM `bigquery-public-data.austin_bikeshare.bikeshare_trips`
エラー メッセージは、
subscriber_type
がグループ化も集計もされていないことを示しています。クエリを適切に実行するためにサポートが必要になることは珍しくありません。Enter(macOS では Return)または Space キーを押します。
Gemini は、次のようなテキストで終わるクエリの修正を提案します。
GROUP BY subscriber_type, hour_of_day;
候補を採用するには、Tab キーを押すか、候補のテキストの上にポインタを置いて別の候補をクリックします。提案を拒否するには、Esc を押すか、入力を続けます。
SQL クエリについて説明する
BigQuery の Gemini で、SQL クエリを自然言語で説明するように指示できます。この説明は、クエリの長さや複雑さが原因で、構文、基礎となるスキーマ、ビジネス コンテキストの評価が難しいクエリを理解するのに役立ちます。
必要な追加の権限
SQL を説明するには、Gemini でクエリを記述するために必要な権限に加えて、cloudaicompanion.companions.generateChat
権限が必要です。この権限は、Cloud AI Companion ユーザー(roles/cloudaicompanion.user
)の IAM ロールに含まれています。
SQL クエリを説明する
SQL クエリを説明するには、次の操作を行います。
Google Cloud コンソールで [BigQuery Studio] ページに移動します。
残りの手順は、Google Cloud コンソールに表示されます。
ツールバーで、
Gemini ボタン pen_spark をクリックし、[説明] を選択します(まだ選択されていない場合)。クエリエディタで、説明するクエリを開くか貼り付けます。
Gemini に説明させるクエリをハイライト表示し、「
このクエリを説明する 」アイコン astrophotography_mode をクリックします。
SQL の説明が [Gemini] ペインに表示されます。
Python コードを生成する
Gemini では、自然言語のステートメントや質問を使用して Python コードを生成できます。Gemini は 1 つ以上の Python コード提案を返します。
必要な追加の権限
Gemini でクエリを作成するために必要な権限に加えて、Python コードを生成するための cloudaicompanion.instances.generateCode
権限が必要です。この権限は、Cloud AI Companion ユーザー(roles/cloudaicompanion.user
)の IAM ロールに含まれています。
Gemini を使用して Python コードを生成する
次の例では、BigQuery 一般公開データセット bigquery-public-data.ml_datasets.penguins
のコードを生成します。
[BigQuery Studio] ページに移動します。
ツールバーで、Gemini ボタン pen_spark をクリックします。[Gemini in Python notebooks] セクションで、[コード生成] を選択します(まだ選択していない場合)。
エディタペインのタブバーで、+ 記号の横にある
プルダウン矢印をクリックし、[Python ノートブックを作成] をクリックします。新しいノートブックが開き、
bigquery-public-data.ml_datasets.penguins
一般公開データセットに対するクエリの例を示すセルが含まれています。ツールバーで、[+ コード] をクリックして、新しいコードセルを挿入します。新しいコードセルに「Start coding or generate with AI」と表示されます。
新しいコードセルで、[生成] をクリックします。
コードエディタで、次の自然言語プロンプトを入力します。
Using bigquery magics query the `bigquery-public-data.ml_datasets.penguins` table
Enter キーを押します(macOS では Return)。
Gemini が、次のような Python コードを提案します。
%%bigquery SELECT * FROM `bigquery-public-data.ml_datasets.penguins` LIMIT 10
Python コードの補完
Python コードの補完では、クエリエディタのコンテンツに基づいて、コンテキストに応じた推奨事項の提供が試みられます。入力に応じて、Gemini は現在のコードのコンテキストに関連する論理的な次のステップを提案したり、コードを反復処理できるようにします。
必要な追加の権限
Gemini でクエリを記述するために必要な権限に加えて、Python コードを生成するための cloudaicompanion.instances.completeCode
権限が必要です。この権限は、Cloud AI Companion ユーザー(roles/cloudaicompanion.user
)の IAM ロールに含まれています。
Gemini を使用して Python コードを補完する
Gemini で Python コード補完機能を試すには、次の操作を行います。
[BigQuery Studio] ページに移動します。
ツールバーで、Gemini ボタン pen_spark をクリックします。[Gemini in Python notebook] セクションで、[コード補完] を選択します(まだ選択していない場合)。
エディタペインのタブバーで、+ 記号の横にある
プルダウン矢印をクリックし、[Python ノートブックを作成] をクリックします。新しいノートブックが開き、
bigquery-public-data.ml_datasets.penguins
一般公開データセットに対するクエリの例を示すセルが含まれています。コードエディタで Python コードの入力を開始します。入力中に、Gemini がインラインでコードの候補を表示します。候補を採用するには、Tab キーを押します。
Gemini の機能を無効にする
BigQuery で Gemini の機能を無効にする方法は次のとおりです。
SQL クエリエディタのツールバーで、
Gemini ボタン pen_spark をクリックします。無効にする Gemini の機能をクリアします。
フィードバックを送信する
Gemini の提案に関するフィードバックを送信できます。
- フィードバックを送信するには、ツールバーで
Gemini ボタン pen_spark をクリックし、[フィードバックを送信] を選択します。
候補の改善に協力する
プロンプト データを Google と共有することで、Gemini の候補の改善にご協力いただけます。プロンプト データを共有する手順は次のとおりです。
Google Cloud コンソールの [BigQuery Studio] ページのツールバーで、
Gemini ボタン pen_spark をクリックします。[Gemini 向上のためにデータを共有] を選択します。
データ使用の設定ダイアログでデータ使用の設定を更新します。
データ共有設定はプロジェクト全体に適用されます。これは、serviceusage.services.enable
と serviceusage.services.list
の IAM 権限を持つプロジェクト管理者のみ設定できます。Trusted Tester プログラムでのデータの使用について詳しくは、Google Cloud Trusted Tester プログラムの Gemini をご覧ください。
次のステップ
- Gemini for Google Cloud の詳細については、Gemini for Google Cloud の概要をご覧ください。
- Gemini データポリシーの詳細については、Gemini for Google Cloud によるデータの使用をご覧ください。