ウィスキー、シガー、パイプをこよなく愛する大栗です。
優れたパフォーマンスの 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 completion
とComment-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 ではさらなるアップデートがあると期待しているので、ラスベガス現地から最新アップデートをお届けする予定です。ご期待ください!