先日ラスベガスで行われた Google Cloud Next ’24 にて Gemini for Google Cloud の様々な統合が発表されました。
今回はその中の Gemini in Databases について、どんなことができるのか? 何が嬉しいのか? を解説します。

Gemini を利用する上での注意点

以下のように公式ドキュメントでも明記されている通り、Gemini によって得られた情報は誤りを含んでいる可能性がありますので、十分注意した上でご利用ください。

初期段階のテクノロジーとして、Gemini はもっともらしく見えても事実が間違っている出力を生成する可能性があります。 Gemini を使用する前に、Gemini からのすべての出力を検証することをお勧めします。詳細については、 「Gemini for Google Cloud と責任ある AI」をご覧ください。

Gemini in Databases とは?

Gemini in Databases は AI を活用してデータベースに関するアシストを提供するツールです。
管理や操作だけでなくパフォーマンスや移行といった、あらゆる側面からユーザーをアシストしてくれるため、開発者にとっても大きなメリットがあります。
現時点ではプレビューリリースとなっており、GA が待ち遠しいですね。
大きく分けて以下の観点でしています。

1. データベース管理の最適化
2. 自然言語での SQL クエリのコード作成
3. クエリのパフォーマンス問題の検出
4. データ保護とパフォーマンスに関する推奨事項の提供
5. セキュリティに関する推奨事項の提供
6. データベース移行支援

では、具体的にどのような機能を使って、これらの観点をアシストしてくれるのか? を説明していきます。

データベース管理の最適化

データベース管理には、Database Center というデータベース全体の情報を1画面にまとめたダッシュボード機能が提供されています。
Google Cloud プロジェクトと Security Command Center のデータに基づいてデータベースの健全性や推奨事項を集約し、影響を受けるリソースの調査方法をアドバイスしてくれます。
その他にも可用性やデータ保護、セキュリティといった様々な情報が表示されているだけでなく、チャットで質問することもできます。

実際に有効化してみたところ、何も設定することなく以下のように表示することができました。
検出された問題は原因も記載されており、その場で確認できるのが良いなと感じました。

サポートされているデータベースサービスは以下です。

  • Cloud SQL for MySQL
  • Cloud SQL for PostgreSQL
  • Cloud SQL for SQL Server
  • AlloyDB for PostgreSQL

自然言語での SQL クエリのコード作成

各データベース スタジオ上で SQL クエリに関するアシストを受けることができます。
主に以下の操作を行うことが可能です。

1. 自然言語プロンプトを使用した SQL クエリの作成
2. SQL コードの補完
3. 自然言語での SQL クエリの説明

以下の赤枠の鉛筆マークのようなところから、それぞれの操作を行えるようです。

サポートされているサービスは以下です。

  • Cloud SQL for MySQL
  • Cloud SQL for PostgreSQL
  • AlloyDB for PostgreSQL
  • Cloud Spanner

クエリのパフォーマンス問題の検出

クエリのパフォーマンスに関する問題を、様々な方法で検出してトラブルシューティングをしてくれます。
これによってコストの削減、パフォーマンスの向上、アプリケーションの保護が期待できます。
サービスによって使える機能が異なるため、それぞれ説明していきます。

Enhanced Query Insights

Enhanced Query Insights は、データベースとクエリのパフォーマンス問題をニアリアルタイムで検出し、トラブルシューティングや予防をアシストしてくれるツールです。
過去 7 日間の Query Insights のデータに基づいて、アプリケーション全体のレベルでクエリのパフォーマンスを監視し、アプリケーションのスタック全体で問題のあるクエリの原因を追跡できます。
この機能は AlloyDB for PostgreSQL でのみ利用することができます。

仕組みや制限事項についてはこちらから確認できます。
強化されたクエリインサイトの概要

アクティブなクエリの監視

データベース内でアクティブなクエリを監視して、アクティブなトランザクションの概要と関連するクエリや統計を含むトランザクションのリストを Query Insights ダッシュボード上で表示することができます。
これにより、データベースのレイテンシーや CPU 使用率の原因などを特定しやすくなります。
この機能は以下のサービスで利用することができます。

  • Cloud SQL for MySQL
  • Cloud SQL for PostgreSQL
  • AlloyDB for PostgreSQL

Index Advisor

Index Advisorは、データベースが処理するクエリを追跡する機能です。
クエリを定期的に分析して、パフォーマンスを向上させる新しいインデックスを推奨事項として表示することができます。
この機能は以下のサービスで利用することができます。

  • Cloud SQL for MySQL
  • Cloud SQL for PostgreSQL
  • AlloyDB for PostgreSQL

データ保護とパフォーマンスに関する推奨事項の提供

データ保護とパフォーマンスに関する問題を検出して推奨事項を提供します。
1つ前はスロークエリの検出に関する部分でしたが、これによりインスタンス単位でも確認することができます。
サポートされている項目とサービスは以下で、更新頻度は 1 日に 1 回となっています。

推奨事項 サポートされているサービス
自動バックアップの有効化 Cloud SQL for MySQL
Cloud SQL for PostgreSQL
Cloud SQL for SQL Server
メモリ不足(OOMイベント)のインスタンスの最適化 Cloud SQL for MySQL
バックアップ保持期間の増加によるデータ損失防止 Cloud SQL for MySQL
Cloud SQL for PostgreSQL
Cloud SQL for SQL Server
メモリ使用量が多いクエリの最適化 Cloud SQL for PostgreSQL
クラスタ ストレージの割り当ての引き上げ AlloyDB for PostgreSQL
CPU とメモリの使用率が高いクラスタの最適化 AlloyDB for PostgreSQL
トランザクション ID の再利用防止 Cloud SQL for PostgreSQL
Enterprise Plus エディションへのアップグレード Cloud SQL for MySQL
Cloud SQL for PostgreSQL

詳細はこちらから確認できます。
データ保護とパフォーマンスに関する推奨事項

セキュリティ推奨事項の提供

データベースのセキュリティに関する構成の問題を検出して推奨事項を提供します。
サポートされている項目とサービスは以下で、こちらも更新頻度は 1 日に 1 回となっています。

推奨事項 サポートされているサービス
広範なIPアドレスの削除 Cloud SQL for MySQL
Cloud SQL for PostgreSQL
Cloud SQL for SQL Server
SSL/TLS 接続の必須化 Cloud SQL for MySQL
Cloud SQL for PostgreSQL
Cloud SQL for SQL Server
AlloyDB for PostgreSQL
サーバー証明書のローテーション Cloud SQL for MySQL
Cloud SQL for PostgreSQL
Cloud SQL for SQL Server
データベース監査の有効化 Cloud SQL for MySQL
Cloud SQL for PostgreSQL
Cloud SQL for SQL Server
AlloyDB for PostgreSQL
承認済みネットワークの削除 Cloud SQL for MySQL
Cloud SQL for PostgreSQL
Cloud SQL for SQL Server
パブリック IP の無効化 Cloud SQL for MySQL
Cloud SQL for PostgreSQL
Cloud SQL for SQL Server
パスワード ポリシーの有効化 Cloud SQL for MySQL
Cloud SQL for PostgreSQL

詳細はこちらから確認できます。
データベース セキュリティに関する推奨事項

データベース移行支援

Database Migration Service では、Gemini を変換ワークスペースに統合することで SQL コードやスキーマに対する分析を行い、さらなる修正案を提案してくれます。
提案は無視することもできるため、最終的な判断をユーザー側で行うことで適したものだけを受け入れることも可能です。
この機能は以下を対象とした移行で利用できます。

  • Oracle から Cloud SQL for PostgreSQL
  • Oracle から AlloyDB for PostgreSQL

終わりに

Gemini in Databases について、どのようなアシストを受けられるのか? を機能ごとに照らし合わせて解説しました。
1つずつ説明しきれないほどかなり幅広くサポートしているため、データベース初心者の方から精通した方まで役立てることができるのではないでしょうか。
今回は何もデータが入っていないデータベースで確認したので、Database Centerなどの機能の具体的な使い方については実際にデータを入れてから検証してみたいと思います。

参考ドキュメント:
Gemini in Databases の概要
Database Center overview