Gemini の支援機能を使用して SQL を記述する
このドキュメントでは、 Gemini Code Assist を使用して、Bigtable で自然言語プロンプトを使用して SQL クエリを生成する際に AI による 支援を受ける方法について説明します。
Gemini for がデータを使用する方法とタイミングに関する説明をご覧ください。 Google Cloud
このドキュメントは、Bigtable、SQL、データ分析に精通したデータベース管理者とデータ エンジニアを対象としています。Bigtable を初めて使用する場合は、 クイックスタート: コンソールを使用して Bigtable インスタンスを作成するをご覧ください。 Google Cloud
制限事項
- Gemini in Bigtable を使用して、SQL クエリを自然言語で説明することはできません。
Gemini in Bigtable は、Bigtable 用の GoogleSQL で有効でないクエリや、次のサポートされていないステートメントまたは構文を使用するクエリを生成する場合があります。
SELECT以外のデータ操作言語(DML)ステートメント(INSERT、UPDATE、DELETEなど)。- データ定義言語(DDL)ステートメント(
CREATE、ALTER、DROPなど)。 - データアクセス制御ステートメント。
- サブクエリ、
JOIN、UNION、CTE のクエリ構文。
詳細については、 Bigtable 用の GoogleSQL の概要をご覧ください。
始める前に
このドキュメントのタスクを完了するには、 必要な Identity and Access Management(IAM)権限があることを確認してください。
省略可: このドキュメントの例に沿って操作する場合は、
test-tableを作成して入力します。詳しくは テストテーブルを作成するをご覧ください。
必要なロール
このドキュメントのタスクを完了するのに必要な権限を取得するには、プロジェクトに対する Gemini for Google Cloud ユーザー(roles/cloudaicompanion.user)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
自然言語プロンプトを使用して SQL クエリを生成する
Gemini に自然言語でのコメント(プロンプトともいいます)を与えて、スキーマに基づくクエリを生成できます。 たとえば、Gemini へのプロンプトを次のように指定すると、その応答として SQL が生成されます。
- 「1 GB のデータプランがあるデバイスの数をカウントする。」
- 「2019 年 5 月 1 日に Wi-Fi に接続されたすべてのスマートフォンを一覧表示する。」
- 「10 GB のデータプランが有効になっているタブレットはどれか。」
Gemini を使用して Bigtable で SQL を生成するには、次の操作を行います。
コンソールで [Bigtable] ページに移動します。 Google Cloud
リストからインスタンスを選択します。
ナビゲーション パネルで [Bigtable Studio] をクリックします。
をクリックして新しいタブを開き、 [**エディタ**] を選択します。
[Generate SQL] クリックします。
[コーディング サポート] ダイアログでプロンプトを入力し、[生成] をクリックします。
たとえば、プロンプト
Count the number of devices that have a 1GB data plan.を入力すると、Gemini は次のような SQL を生成します。SELECT count(*) FROM `test_table` WHERE cell_plan['data_plan_01gb'] = 'true'生成された SQL を確認し、次のいずれかの操作を行います。
- 提案された SQL を実行するには、[挿入] をクリックして [実行] をクリックします。
- プロンプトを編集するには、[編集] をクリックして [更新] をクリックします。
- 提案された SQL を編集するには、[挿入] をクリックします。クエリビルダーでクエリを手動で編集し、[実行] をクリックします。
省略可:
test_tableの例を続けるには、プロンプトShow all data for phones from May 2019.を入力します。Gemini は次のような SQL を生成します。SELECT * FROM `test_table` WHERE _key LIKE 'phone#%#201905%'