Gemini のアシスタント機能を使用してクエリを作成する
このドキュメントでは、Gemini in BigQuery で AI による支援機能を使用して、SQL クエリと Python コードでデータをクエリする方法について説明します。Gemini in BigQuery は、クエリとコードの生成と説明、入力中のクエリとコードの補完、コードエラーの修正を行うことができます。
このタスクを Google Cloud コンソールで直接行う際の順を追ったガイダンスについては、「ガイドを表示」をクリックしてください。
Gemini for Google Cloud が、お客様の明示的な許可なく、モデルをトレーニングするためにプロンプトやそのレスポンスをデータとして使用することはありせん。Google によるデータ使用の詳細については、Gemini for Google Cloud によるデータの使用をご覧ください。
。Gemini in BigQuery では、英語のプロンプトのみがサポートされます。
このドキュメントは、SQL クエリと BigQuery の Colab Enterprise ノートブックを使用するデータ アナリスト、データ サイエンティスト、データ デベロッパーを対象としています。BigQuery Studio 環境でデータをクエリする方法、または Python ノートブックで BigQuery データを分析する方法に関する知識があることを前提としています。
始める前に
- Google Cloud プロジェクトに Gemini in BigQuery が設定されていることを確認します。この手順は通常、管理者が行います。このセクションの残りの手順を完了するまで、Gemini in BigQuery の機能は無効になるか、使用できない場合があります。
- Gemini Cloud Assist を使用して Gemini Cloud Assist ペインでコードを記述するには、Gemini Cloud Assist を設定する手順も行う必要があります。
Gemini を使用して BigQuery の Colab Enterprise ノートブックで Python コードを説明して修正するには、プロジェクト用に Gemini in Colab Enterprise を設定するの手順も実施する必要があります。
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Google Cloud コンソールで、[BigQuery Studio] ページに移動します。
BigQuery ツールバーで、[pen_spark Gemini] をクリックします。
機能のリストで、次の機能が選択されていることを確認します。
SQL クエリの Gemini リスト:
- 自動補完(プレビュー版): クエリエディタに入力するとき、Gemini は現在のクエリのコンテキストに関連する論理的な次のステップを提案する、またはクエリを繰り返し実行するための支援を行えます。
- 自動生成: BigQuery クエリエディタで、自然言語のコメントにより Gemini in BigQuery にプロンプトを送り、SQL クエリを生成できます。
- SQL 生成ツール: ツールに自然言語のテキストを入力して SQL クエリを生成できます。クエリ結果の絞り込み、テーブルソースの選択、結果の比較を行うオプションもあります。
- 説明: Gemini in BigQuery で SQL クエリを自然言語で説明するように指示できます。
Python ノートブックの Gemini リスト:
- コード補完(プレビュー版): Gemini は、ノートブックのコンテンツに基づき、コンテキストに応じた推奨を行います。
- コード生成: Gemini では、自然言語のステートメントや質問を使用して Python コードを生成できます。
このドキュメントのタスクを完了するために必要な Identity and Access Management(IAM)権限が付与されていることを確認します。
必要なロール
Gemini の支援機能を利用してクエリを作成するために必要な権限を取得するには、プロジェクトに対する Gemini for Google Cloud ユーザー(roles/cloudaicompanion.user
)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
この事前定義ロールには、Gemini の支援機能を利用してクエリを作成するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
Gemini の支援機能を使用してクエリを作成する場合は、次の権限が必要です。
-
cloudaicompanion.entitlements.get
-
cloudaicompanion.instances.completeTask
- SQL クエリを説明する:
cloudaicompanion.companions.generateChat
-
SQL または Python コードを完成させる:
cloudaicompanion.instances.completeCode
-
SQL または Python コードを生成する:
cloudaicompanion.instances.generateCode
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
BigQuery における IAM ロールと権限の詳細については、IAM の概要をご覧ください。
SQL クエリを生成する
データのスキーマに基づいて SQL クエリを生成するには、Gemini in BigQuery に自然言語のステートメントまたは質問(プロンプト)を提供します。コードなしで始める場合や、データスキーマの知識が限られている、または GoogleSQL 構文の基本的な知識しかない場合でも、Gemini in BigQuery はデータの探索に役立つ SQL を生成できます。
SQL 生成ツールを使用する
SQL 生成ツールでは、最近表示またはクエリしたテーブルに関する SQL クエリの生成に自然言語を使用できます。このツールを使用して、既存のクエリの変更、SQL を生成するテーブルの手動での指定もできます。
SQL 生成ツールの使用手順は次のとおりです。
Google Cloud コンソールで、[BigQuery Studio] ページに移動します。
クエリエディタの横にある pen_spark(SQL 生成ツール)をクリックします。
[Gemini を使用して SQL を生成] ダイアログで、最近表示またはクエリしたテーブルに関する自然言語プロンプトを入力します。たとえば、最近
bigquery-public-data.austin_bikeshare.bikeshare_trips
テーブルを表示した場合は、次のように入力します。Show me the duration and subscriber type for the ten longest trips.
[生成] をクリックします。
生成された SQL クエリは次のようになります。
SELECT subscriber_type, duration_sec FROM `bigquery-public-data.san_francisco_bikeshare.bikeshare_trips` ORDER BY duration_sec DESC LIMIT 10;
生成された SQL クエリを確認し、次のいずれかの操作を行います。
- 生成された SQL クエリを受け入れるには、[挿入] をクリックして、クエリエディタにステートメントを挿入します。その後 [実行] をクリックして、提案された SQL クエリを実行できます。
- プロンプトを編集するには、[編集] をクリックして、最初のプロンプトを変更または置き換えます。プロンプトを編集してから、[更新] をクリックして新しいクエリを生成します。
- 提案された SQL クエリを生成するためのコンテキストとして使用されたテーブルのソースを更新するには、[テーブルのソースを編集] をクリックし、適切なチェックボックスをオンにして選択してから、[適用] をクリックします。
- 生成されたクエリの概要を自然言語で表示するには、[クエリの概要] をクリックします。
- 提案された SQL クエリを絞り込むには、[絞り込み] フィールドに絞り込みの条件を入力してから、
limit to 1000
と入力すると、クエリ結果の数を制限できます。クエリの変更を比較するには、[差分を表示] チェックボックスをオンにします。
[絞り込み] をクリックします。たとえば、 - 提案されたクエリを閉じるには、SQL 生成ツールを閉じます。
SQL 生成ツールをオフにする
SQL 生成ツールを無効にする方法については、Gemini クエリ アシスタントの機能を無効にするをご覧ください。
コメントから SQL を生成する
クエリエディタで SQL を生成するには、コメントで必要なクエリを記述します。
Google Cloud コンソールで、[BigQuery Studio] ページに移動します。
クエリエディタで、[
] をクリックします。 SQL クエリ クエリエディタで、最近表示またはクエリしたテーブルに関する SQL コメントを記述します。たとえば、最近
bigquery-public-data.austin_bikeshare.bikeshare_trips
テーブルを表示した場合は、次のようなコメントを作成できます。# Show me the duration and subscriber type for the ten longest trips.
Enter キーを押します(macOS では Return)。
次のような SQL クエリが提案されます。
# Show me the duration and subscriber type for the ten longest trips SELECT duration_sec, subscriber_type AVG(duration_minutes) AS average_trip_length FROM `bigquery-public-data.austin_bikeshare.bikeshare_trips` ORDER BY duration_sec LIMIT 10;
候補を採用するには、Tab キーを押します。
Gemini Cloud Assist を使用して SQL を生成する
BigQuery で SQL クエリを生成するには、 Google Cloud コンソールの [Cloud Assist] パネルを使用します。
Gemini Cloud Assist チャットを使用して SQL を生成するには、まず Gemini Cloud Assist を有効にする必要があります。詳細については、Gemini Cloud Assist を設定するをご覧ください。
Google Cloud コンソールで、[BigQuery Studio] ページに移動します。
クエリエディタで、
アイコンをクリックして新しい SQL クエリを開きます。 SQL クエリ Google Cloud ツールバーの spark Gemini AI チャットを開くか、閉じますアイコンをクリックして、Gemini Cloud Assist チャットを開きます。
[プロンプトを入力] に、SQL クエリを生成するプロンプトを入力します。次に例を示します。
Generate a SQL query to show me the duration and subscriber type for the ten longest trips.
メッセージを送信アイコンをクリックします。回答には、次のような SQL クエリが含まれます。
SELECT subscriber_type, duration_sec FROM `bigquery-public-data.san_francisco_bikeshare.bikeshare_trips` ORDER BY duration_sec DESC LIMIT 10; ```
生成された SQL クエリを確認します。
生成された SQL クエリを実行するには、
クリップボードにコピーアイコンをクリックし、コードをクエリエディタに貼り付けてから、[ 実行] をクリックします。
SQL 生成のヒント
Gemini in BigQuery から提案される候補を改善するには、次のヒントが役立ちます。
- 使用するテーブルを手動で指定するには、完全修飾されたテーブル名をバッククォート(
`
)で囲みます(例:`PROJECT.DATASET.TABLE`
)。 - 列名またはその意味関係が不明瞭または複雑な場合は、プロンプトでコンテキストを指定することで、Gemini を必要な答えに導くことができます。たとえば、生成されるクエリが列名を参照するようにするには、列名、および求める回答と列名との関連性を記述します。生涯価値や売上総利益のような複雑な用語を参照する回答を促すには、コンセプトと、そのデータとの関連性を記述して、SQL の生成結果を改善します。
- コメントから SQL を生成するときに各行の先頭に
#
文字を付けると、複数行にわたってプロンプトをフォーマットできます。 - 列の説明は、SQL クエリの生成時に考慮されます。精度を高めるため、スキーマに列の説明を追加します。列の説明の詳細については、「スキーマの指定」の列の説明をご覧ください。
SQL クエリを完成させる
SQL の補完では、クエリエディタのコンテンツに基づいて、コンテキストに応じた推奨事項が提供されます。入力に応じて、Gemini は現在のクエリのコンテキストに関連する論理的な次のステップを提案したり、コードを反復処理したりできるようにします。
Gemini in BigQuery を使用して SQL の補完機能を試す手順は次のとおりです。
Google Cloud コンソールで、[BigQuery Studio] ページに移動します。
クエリエディタで、次の内容をコピーします。
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
がグループ化も集計もされていないことを示しています。クエリを適切に実行するためにサポートが必要になることは珍しくありません。subscriber_type
の行の末尾で、Space キーを押します。提案されたクエリの絞り込みは、次のようなテキストで終わる場合があります。
GROUP BY subscriber_type, hour_of_day;
Enter キー(macOS では Return キー)を押して候補を生成することもできます。
候補を採用するには、Tab キーを押すか、候補のテキストの上にポインタを置いて別の候補をクリックします。提案を拒否するには、Esc を押すか、入力を続けます。
SQL クエリについて説明する
Gemini in BigQuery では、SQL クエリを自然言語で説明するように指示できます。この説明は、クエリの長さや複雑さが原因で、構文、基礎となるスキーマ、ビジネス コンテキストの評価が難しいクエリを理解するのに役立ちます。
SQL クエリの説明を取得するには、次の手順を行います。
Google Cloud コンソールで、[BigQuery Studio] ページに移動します。
クエリエディタで、説明するクエリを開くか貼り付けます。
Gemini in BigQuery に説明させるクエリをハイライト表示します。
[astrophotography_mode Gemini]、[このクエリを説明する] の順にクリックします。
SQL の説明が [Cloud] パネルに表示されます。
Python コードを生成する
Gemini in BigQuery で Python コードを生成するには、自然言語のステートメントまたは質問を使用します。Gemini in BigQuery は、1 つ以上の Python コードの候補を返します。関連するテーブル名が BigQuery プロジェクトから直接取得されるため、パーソナライズされた実行可能な Python コードが生成されます。
Python コード生成ツールを使用する
次の例では、BigQuery 一般公開データセット bigquery-public-data.ml_datasets.penguins
のコードを生成します。
Google Cloud コンソールで、[BigQuery Studio] ページに移動します。
クエリエディタのタブバーで、[
SQL クエリ] の横にある プルダウン矢印をクリックし、[ノートブック] をクリックします。新しいノートブックが開き、
bigquery-public-data.ml_datasets.penguins
一般公開データセットに対するクエリの例を示すセルが表示されます。新しいコードセルを挿入するには、ツールバーで
[コード] をクリックします。新しいコードセルには「コーディングを始めるまたはAIで生成する」というメッセージが表示されます。新しいコードセルで、[生成] をクリックします。
生成エディタで、次の自然言語プロンプトを入力します。
Using bigquery magics, query the `bigquery-public-data.ml_datasets.penguins` table
Enter キーを押します(macOS では Return)。
次のような Python コードが提案されます。
%%bigquery SELECT * FROM `bigquery-public-data.ml_datasets.penguins` LIMIT 10
コードを実行するには、
(セルを実行)をクリックします。
Gemini Cloud Assist を使用して Python コードを生成する
Google Cloud コンソールの Gemini Cloud Assist を使用して、BigQuery で Python コードを生成できます。Gemini Cloud Assist を使用してコードを生成するには、まず Gemini Cloud Assist を有効にする必要があります。詳細については、Gemini Cloud Assist を設定するをご覧ください。
Google Cloud コンソールで、[BigQuery Studio] ページに移動します。
クエリエディタのタブバーで、[
SQL クエリ] の横にある プルダウン矢印をクリックし、[ノートブック] をクリックします。Google Cloud ツールバーの spark Gemini AI チャットを開くか、閉じますアイコンをクリックして、Gemini Cloud Assist チャットを開きます。
[プロンプトを入力] に、Python コードを生成するプロンプトを入力します。次に例を示します。
Generate python code to query the `bigquery-public-data.ml_datasets.penguins` table using bigquery magics
メッセージを送信アイコンをクリックします。Gemini によって次のような Python コードが返されます。
%%bigquery SELECT * FROM `bigquery-public-data.ml_datasets.penguins` LIMIT 10
生成された Python コードを確認します。
Python コードを実行するには、
クリップボードにコピーアイコンをクリックし、コードをクエリエディタに貼り付けてから、[ 実行] をクリックします。
BigQuery DataFrames コードを生成する
Gemini in BigQuery を使用して BigQuery DataFrames コードを生成できます。生成されたコードで BigQuery DataFrames を使用するように Gemini に指示するには、プロンプトで意図を伝えます。たとえば、「bigframes を使用して」や「BigQuery DataFrames を利用して」などのフレーズでプロンプトを開始できます。
BigQuery DataFrames には、次の 2 つのライブラリが用意されています。
- bigframes.pandas: 分析用の pandas 互換 API を提供します。
- bigframes.ml: ML 用の scikit-learn に似た API を提供します。
Gemini のコード生成は、bigframes.pandas ライブラリ用に最適化されています。
BigQuery DataFrames と BigQuery DataFrames の使用に必要な権限の詳細については、BigQuery DataFrames の権限をご覧ください。BigQuery DataFrames は、オープンソースのパッケージです。pip install --upgrade bigframes
を実行すると、最新バージョンをインストールできます。
次の例では、BigQuery 一般公開データセット bigquery-public-data.ml_datasets.penguins
のコードを生成します。
Google Cloud コンソールで、[BigQuery Studio] ページに移動します。
クエリエディタのタブバーで、[
SQL クエリ] の横にある プルダウン矢印をクリックし、[ノートブック] をクリックします。新しいノートブックが開きます。
新しいコードセルを挿入するには、ツールバーで
[コード] をクリックします。新しいコードセルには「コーディングを始めるか、AI で生成してください」というメッセージが表示されます。新しいコードセルで [生成] をクリックします。
生成エディタで、次の自然言語プロンプトを入力します。
Read the penguins table from the BigQuery public data using bigframes
Enter キーを押します(macOS では Return)。
次のような Python コードが提案されます。
import bigframes.pandas as bpd # Read the penguins table from the BigQuery public data using bigframes result = bpd.read_gbd("bigquery-public-data.ml_datasets.penguins")
コードを実行するには、
(セルを実行)をクリックします。結果をプレビューするには、ツールバーで
[コード] をクリックして、新しいコードセルを挿入します。新しいセルで
peek()
メソッド(例:result.peek()
)を呼び出し、 (セルを実行)を押します。データの行が複数表示されます。
Python コードを補完する
Python コードの補完では、クエリエディタのコンテンツに基づいて、コンテキストに応じた推奨事項が提供されます。入力中に、Gemini in BigQuery は現在のコードのコンテキストに関連する論理的な次のステップを提案したり、コードの反復処理を補助したります。
Gemini in BigQuery を使用して Python コード補完機能を試す手順は次のとおりです。
Google Cloud コンソールで、[BigQuery Studio] ページに移動します。
クエリエディタのタブバーで、[
SQL クエリ] の横にある プルダウン矢印をクリックし、[ノートブック] をクリックします。新しいノートブックが開き、
bigquery-public-data.ml_datasets.penguins
一般公開データセットに対するクエリの例を示すセルが表示されます。コードエディタで Python コードの入力を開始します。たとえば、
%%bigquery
のようにします。Gemini in BigQuery は、入力中にインラインでコードの候補を表示します。候補を採用するには、Tab キーを押します。
Python コードを説明する
Gemini in BigQuery を使用して、Colab Enterprise ノートブックの Python コードを説明できます。
説明が表示されたら、プロンプト ダイアログでさらに質問して、コードをより深く理解できます。
ノートブック内の Python コードの説明を取得する手順は次のとおりです。
Google Cloud コンソールで、[BigQuery Studio] ページに移動します。
[エクスプローラ] ペインで、プロジェクトと [ノートブック] フォルダを開きます。
開きたいノートブックをクリックします。
理解したい Python のセルをハイライト表示します。
spark(Gemini)、[コードを説明する] の順にクリックします。
コードの説明がセルの横のパネルに表示されます。
省略可: コードについてより詳しく把握するには、[ここにプロンプトを入力] フィールドに質問を入力します。
Python エラーを修正して説明する
Gemini in BigQuery を使用すると、Colab Enterprise ノートブックで Python コードエラーを修正して説明できます。
Gemini アシスタンスを使用してコードエラーを修正または理解する手順は次のとおりです。
Google Cloud コンソールで、[BigQuery Studio] ページに移動します。
[エクスプローラ] ペインで、プロジェクトと [ノートブック] フォルダを開きます。
開きたいノートブックをクリックします。
ノートブックのコードセルにエラーを含むコードを入力し、セルを実行します。たとえば、「
print(1
」と入力します。これには、閉じかっこがありません。コードセルを実行すると、ノートブックはコードセルの下にエラー メッセージを出力します。Python ノートブックで Gemini が有効になっていて、エラーを修正または説明するための提案が Gemini から提示された場合は、次のいずれかのオプションが表示されます。
- Python の構文エラーの場合、[Fix error] オプションが表示されます。
- 他のすべてのタイプのエラーについては、[Explain error] オプションが表示されます。
構文エラーを修正するには、次の操作を行います。
[Fix error] をクリックします。
Gemini がエラーの修正方法を提案します。
提案を評価し、次のいずれかを行います。
- 候補を受け入れるには、check(候補を承認)をクリックします。
- 候補を拒否するには、[閉じる]、[候補を拒否] をクリックします。
その他のすべてのタイプのエラーを修正するには、次の操作を行います。
[Explain error] をクリックします。
エラーの説明と変更の提案が表示されたパネルが開きます。
省略可: エラーについて詳しく知るには、[ここにプロンプトを入力] フィールドに質問を入力します。
提案された変更を承認するには、library_add(コードセルを追加)アイコンをクリックします。
PySpark コードを生成する
Gemini Code Assist に、ノートブックで PySpark コードを生成するよう依頼できます。Gemini Code Assist は、関連する BigQuery テーブルと Dataproc Metastore テーブルとそのスキーマを取得して使用し、コード レスポンスを生成します。スキーマの知識により、Gemini Code Assist はハルシネーションを回避し、結合キーと列の型を提案します。
ノートブックで Gemini Code Assist コードを生成する手順は次のとおりです。
ツールバーで [+ コード] をクリックして、新しいコードセルを挿入します。新しいコードセルに
Start coding or generate with AI
が表示されます。[生成] をクリックします。生成エディタで、自然言語プロンプトを入力して
enter
をクリックします。プロンプトには、キーワードspark
またはpyspark
を含めてください。プロンプトの例:
create a spark dataframe from order_items and filter to orders created in 2024
出力例:
spark.read.format("bigquery").option("table", "sqlgen-testing.pysparkeval_ecommerce.order_items").load().filter("year(created_at) = 2024").createOrReplaceTempView("order_items") df = spark.sql("SELECT * FROM order_items")
Gemini Code Assist のコード生成に関するヒント
Gemini Code Assist で関連するテーブルとスキーマを取得できるようにするには、Dataproc Metastore インスタンスの Data Catalog の同期を有効にします。
ユーザー アカウントに、Data Catalog のクエリテーブルへのアクセス権があることを確認します。そのためには、
DataCatalog.Viewer
ロールを割り当てます。
Gemini クエリ アシスタントの機能を無効にする
Gemini in BigQuery の特定の機能を無効にするには、次の操作を行います。
Google Cloud コンソールで、[BigQuery Studio] ページに移動します。
BigQuery ツールバーで、[
pen_spark Gemini ] をクリックします。リストで、オフにするクエリ アシスタントの機能を外します。
詳細については、Gemini in BigQuery をオフにするをご覧ください。
Gemini in Colab Enterprise をオフにする
Google Cloud プロジェクトで Gemini in Colab Enterprise をオフにするには、管理者が Gemini for Google Cloud API を無効にする必要があります。サービスの無効化をご覧ください。
特定のユーザーに対して Gemini in Colab Enterprise をオフにするには、管理者がそのユーザーの Gemini for Google Cloud ユーザー(roles/cloudaicompanion.user
)ロールを取り消す必要があります。単一の IAM ロールを取り消すをご覧ください。
フィードバックを送信
Google Cloud コンソールで、[BigQuery Studio] ページに移動します。
BigQuery ツールバーで、[
pen_spark Gemini ] をクリックします。[フィードバックを送信] をクリックします。
候補の改善に協力する
プレビュー版の機能に送信したプロンプト データを Google と共有することで、Gemini の候補の改善にご協力いただけます。
プロンプト データを共有する手順は次のとおりです。
Google Cloud コンソールで、[BigQuery Studio] ページに移動します。
BigQuery ツールバーで、[
pen_spark Gemini ] をクリックします。Gemini in BigQuery を改善するためデータ共有を選択します。
[データ使用の設定] ダイアログで、データ使用の設定を更新します。
データ共有設定はプロジェクト全体に適用されます。これは、serviceusage.services.enable
と serviceusage.services.list
の IAM 権限を持つプロジェクト管理者のみ設定できます。Trusted Tester プログラムでのデータの使用について詳しくは、Gemini for Google Cloud Trusted Tester プログラムをご覧ください。
Gemini と BigQuery のデータ
正確な結果を出すため、Gemini in BigQuery は、拡張機能用に BigQuery 内の顧客データとメタデータの両方にアクセスする必要があります。詳細については、Gemini in BigQuery がデータを使用する方法をご覧ください。
料金
この機能の料金の詳細については、Gemini in BigQuery の料金の概要をご覧ください。
割り当てと上限
この機能の割り当てと上限については、Gemini in BigQuery の割り当てをご覧ください。
次のステップ
- Gemini for Google Cloud の概要を読む。
- Gemini for Google Cloud がデータを使用する方法について学習する。
- データ分析情報を生成してデータを探索する方法について学習する。