[新機能] Cloud Console 上でクエリを実行でき Gemini での AI サポートもしてくれる AlloyDB Studio が一般提供になりました

AlloyDB をコンソールからクエリ実行が可能になり、SQL クエリも Gemini のサポートで補完やテキストからの生成、説明も日本語でしてくれます!(説明の日本語化は「日本語で説明してください」と依頼が必要です。)

ウィスキー、シガー、パイプをこよなく愛する大栗です。

優れたパフォーマンスの PostgreSQL 互換データベースである AlloyDB について、Cloud Console 上からクエリを実行できる AlloyDB Studio が一般提供となりました。Gemini での AI サポート機能の部分は Preview となります。

AlloyDB for PostgreSQL release notes > April 02, 2024

Manage your data using AlloyDB Studio

Write SQL with Gemini assistance

AlloyDB Studio

AlloyDB Studio は Cloud Console でクエリを実行できる機能です。操作できるオブジェクトは以下になり、作成、更新、削除を行えます。

  • スキーマ
  • テーブル
  • インデックスとキー
  • トリガー
  • ビュー
  • ファンクション
  • プロシージャ
  • シーケンス
  • 拡張

しかもGemini による SQL 作成支援も受けられます!実行して試したところ日本語にも対応しています!(Gemini のサポート機能は Preview です)

  • SQL の補完
  • コメントからクエリを生成
  • クエリの説明

必要な権限

AlloyDB Studio を実行するには以下の権限が必要です。roles/alloydb.admin ロールがあれば使用可能です。

  • alloydb.clusters.get
  • alloydb.databases.list
  • alloydb.instances.executeSql
  • alloydb.instances.list
  • alloydb.users.list

制限事項

  • AlloyDB Studio は軽量のクエリをサポートしており、8 MB を超えるレスポンスは切り捨てられます。AlloyDB Studio は部分的なレスポンスを返すタイミングを通知します。
  • インスタンスで 1 分を超えるクエリはキャンセルされます。
  • AlloyDB Studio は SQL クエリの実行終了後にデータベースコネクションを開いたままにしません。同様に「編集者」タブはセッションを共有せず、実行のたびに別のセッションを使用して新しいコネクションを開始します。
  • AlloyDB Studio は PostgreSQL ネイティブの認証(ユーザー名とパスワード)のみをサポートします。Identity and Access Management で認証したり、Secrets Manager の資格情報を使用できません。
  • 複文クエリを実行している場合は AlloyDB Studio の結果タブに最初の結果セットのみ表示されます、クエリの一つでエラーが発生した場合は、クエリ全体がキャンセルされます。

やってみる

では実際に AlloyDB Studio を触ってみます。

事前に AlloyDB クラスタを起動しておきます。また roles/alloydb.admin ロールも付与しておきます。

AlloyDB のコンソールで操作を行う対象のクラスタを選択します。

左メニューでAlloyDB Studioを選択して、データベースユーザーパスワードを入力して認証する (AUTHENTICATE) をクリックします。

Gemini in Databases の有効化

AlloyDB Studio の[エクスプローラ]ペインが表示されます。ここで右上のメニューからEXPLORE GEMINIをクリックします。Gemini in Databases の有効化にはBilling Account Administrator ロールが必要なので注意してください。

Enable Geminiをクリックします。

ENABLEをクリックします。24から48時間かかる場合があると記述がありますが、著者の環境では数分で済みました。

数分待ってから、もう一度右上のメニューからENABLEをクリックします。

ENABLEをクリックして Duet AI の API を有効化します。現在の Duet AI は Gemini に名称が変更されていますが、まだ更新されていないようです。

Duet AI が有効化されました。

右上のメニューではSQL completionComment-to-query generationが選択できます。

コメントからクエリを生成

[Editor 1]タブを開き、テーブルを作成するクエリを記述してRUNボタンをクリックして実行します。

CREATE TABLE singers (
  BirthDate  TIMESTAMPTZ,
  SingerId   BIGINT PRIMARY KEY,
  FirstName  VARCHAR(1024),
  LastName   VARCHAR(1024),
  SingerInfo BYTEA
);

すると正常に実行されて以下のメッセージが表示されます。

Statement executed successfully

次にクエリの生成を試します。ペンマークのアイコンをクリックします。

Help me code ツールで以下のメッセージを入力してGENERATEをクリックします。

singers テーブルに行を挿入する

すると singers テーブルに行を挿入するクエリが出力されます。INSERTをクリックします。

Editor タブにクエリが入力されるのでRUNをクリックします。

コメントから生成したクエリが実行されました。

クエリエディタ上に以下のようなメッセージを入力して改行します。

-- add a row to table singers

するとクエリの候補が表示されます。

Tab キーをクリックして確定します。

RUNをクリックすると正常に実行されます。

SQL の補完

SQL completionが有効化されていない場合には、右上メニューからSQL completionを確認してチェックが付いていなければクリックして有効にします。

以下の INSERT 文の先頭だけを入力して改行を行います。

INSERT INTO singers

VALUES 句が提案されました。

Tab キーをクリックして確定します。

VALUES 句の前に改行して ( を入力すると、カラムを提案されました。

Tab キーをクリックして確定します。

singerid が重複しているので 11 に修正して実行すると、正常に完了します。

このように Gemini でクエリ補完もされます。

クエリの説明

Gemini でクエリの説明も可能です。

記述したクエリを選択して Gemini のアイコンをクリックします。

Start chattingをクリックします。

クエリの説明が表示されます。

「日本語で説明してください」とお願いすると日本語で説明してくれます。

コンソールを日本語表示にしていると、現在 SQL 文の説明がされないようです。コンソールを英語表示にして、チャット上で日本語の説明を依頼しましょう。

さいごに

AlloyDB に関して生成 AI を活用してクエリをサポートする機能が出てきました。来週の Next ではさらなるアップデートがあると期待しているので、ラスベガス現地から最新アップデートをお届けする予定です。ご期待ください!