Microsoft Copilot in Azure と SQL Database
2024/5/21 の Build にて、Private Preview だった Microsoft Copilot in Azure の SQL Database 拡張が Public Preview になりました。ということなので、普段トラシューにかかわることが多いエンジニア目線で、いじってみたので情報を少し共有したいと思います。
Microsoft Copilot in Azure extends capabilities to Azure SQL Database (Public Preview)
Azure SQL Database の Microsoft Copilot スキル
詳しくは、ドキュメントを参照していただければと思いますが、現在のところ以下の 2 つの機能が Preview されています。
- 自然言語からの SQL 生成
- Microsoft Copilot in Azure 統合
今のところ対応してるのは English のみとなりますので、これらの機能を使用する場合は、ポータルの言語を English に変更して試してください。
自然言語からの SQL 生成
こちらの機能は、Preview 中の Query editer から利用できます。下記のボタンを押すことで、利用できます。
自然言語で取得したい情報について記載すると、Copilot がクエリを記述してくれます。
現在のところ、SELECT ステートのみがサポートということで、いささか物足りないかなという気持ちです。有効なプロンプトの例などはドキュメントを参照いただければと思います。
Microsoft Copilot in Azure 統合
個人的には興味を持ったのはこちらの機能ですね。サンプルプロンプトを確認する限り、実際に SQL Database に対してクエリを発行して情報を取得しているようです。
ここでは、Business Critical(2 vCores) の SQL Database に、ワークショップのデモ等で使用してる単純なワークロードを流しながら、確認してみたいと思います。
まずは、サンプルプロンプトから「Why is the CPU usage high on this database?」
を実行してみましょう。
クエリを実行するため、やや上記の画面で待たされた後、下記の分析結果が返ってきました。
Query Hash で返されてるので、クエリ ID を確認して....
クエリストアの「リソースを消費するクエリの上位」を確認してみると情報としては正確であることが確認できました。
返答に含まれるリンクを開くことで、どのようなクエリが実行されたかも確認することができます。おそらく、サンプルプロンプトにあるようなタスクについては、それなりに決まったクエリが用意されていて、精度の良い回答を得られるのではないかと思います。
では、次にブロッキングが起きているシチュエーションで、「なんか問題起きてない?(Please check if there is any problem currently occurring with my database)」とざっくりとした質問をしてみたいと思います。
CPU 使用率に問題がないことをチェックした後、ブロッキングが発生してることをちゃんと見つけてくれてます。さらに、ブロッキングチェーンの先頭、ブロッキングが発生してるテーブル、発生してる待機についてまで言及してくれてます。「おー、やるなぁ」という感じですね。
ちなみに、サンプルプロンプトの「Check top blocking sessions.」だと、以下のような感じでまとめてくれました。
感想
「自然言語からの SQL 生成」については、現時点で English + SELECT のみという制限があるので、今後に期待したいところです。テーブルの CREATE 文の生成など、Azure OpenAI を使って実装してたりする人がいるので、「もっとやれるよね?」と思います。
一方、「Microsoft Copilot in Azure 統合」については、もう少し機能を試してみたいかなと思えるものでした。「何か起きてる?」とか「何も起きてないよね?」という確認の入り口として機能してくれると、管理者の副操縦士としては十分なんじゃないかなと期待してます。継続して試した結果で何か面白ことがあれば、また共有します~。
Discussion