Amazon Web Services ブログ
株式会社インサイトテクノロジー様の生成AI活用事例「Amazon Bedrockを活用したSQL修正提案機能」のご紹介
本ブログは、株式会社インサイトテクノロジー と Amazon Web Services Japan が共同で執筆しました。
株式会社インサイトテクノロジーは、1995 年の創業時から一貫してデータベース技術を追究し、企業自らが良質なインサイトを得るためのデータ活用基盤「インサイト・インフラ」関連の製品をプロフェッショナルサービスとともに提供しています。現在では、企業におけるデータの価値を最大化できるよう、データ利活用の統制を図り、データ活用推進を支える攻めと守りの両面のメリットをもたらすデータガバナンスソリューションとして、SQL テスト製品、データマスキング製品などを提供しています。
同社では、データベースのマイグレーションやバージョンアップにおける挙動の変化やエラーの発生を確認できるテストツール、Insight SQL Testing を提供しています。
Insight SQL Testingでは本番環境のデータベースに対して行われた SQL の自動収集を行い、収集した SQL をテスト環境に対して実行し、実行結果を分類したわかりやすい UI を提供するなど、 SQL テストの効率化を行うことができます。同じエンジン間でのバージョンアップに伴う挙動の変化の確認だけでなく、異種データベース間でも利用できるため、DB エンジンの変更を伴うマイグレーションの場合でも利用可能なソリューションです。
課題と開発経緯
データベースのバージョンアップやマイグレーションを行う際、元々利用していたデータベースではエラーなく実行できる SQL 文でも、移行先となる異なるエンジンのデータベースやバージョンアップ先のデータベースでは、仕様の違いからエラーになってしまう SQL 文が存在します。 Insight SQL Testing ではそういったエラーになる SQL を洗い出すことを容易にしてくれますが、どのように修正を行っていくべきかはエンジニアが検討を行ったり、AWS Schema Conversion Tool を用いて対象となる SQL 文に対して修正レコメンデーションを表示させるといった Insight SQL Testing のツール外での作業が必要でした。
そこで、Insight SQL Testing のツール内で作業を完結することができるよう、SQL 修正提案機能が追加されました。この機能の追加により、DBA のような専門の知識を持ったエンジニアがいない場合でも修正方法の検討が容易になります。この機能ではエラー確認画面上で LLM に修正内容を提案させることができ、提案された修正内容をそのままツール上で再実行することも可能です。Insight SQL Testing のツール内で修正箇所の確認から SQL 文の修正の実施までの作業を一貫して行うことができるようになりました。
ソリューション
SQL 修正提案機能の実現にあたって、 Amazon Bedrock が活用されています。Amazon Bedrock は 単一の API を介して AI21 Labs、Anthropic、Cohere、Meta、Mistral AI、Stability AI、および Amazon といった大手 AI 企業からの高性能な基盤モデル (FM) を選択できるフルマネージドサービスで、セキュリティ、プライバシー、責任ある AI を備えた生成 AI アプリケーションを構築するために必要な幅広い機能を提供します。
Insight SQL Testing は AWS Marketplace 上で AMI として提供されており、Amazon EC2 上にデプロイされます。Amazon Bedrock を活用することで、Insight SQL Testing を実行する EC2 インスタンスのスペックによらず SQL 文の修正内容を提案させるための LLM の推論を行うことができ、既存のテストツールとしての機能には影響を与えず SQL 修正提案機能を提供することができます。
また、Amazon Bedrock への接続にあたっては AWS PrivateLink を利用することで、Insight SQL Testing がデプロイされた EC2 と Amazon Bedrock 間の通信はインターネットに出ない構成となっています。Insight SQL Testing で収集する SQL 文はアプリケーションでどういったデータを扱っているかを推測できる情報となり得るため、外部に情報が出ないセキュリティ的に安全性の高い利用方法をとっています。
導入効果
Amazon Bedrock の活用によって、生成 AI 機能という新しい分野の開発をスムーズに進め、製品へと導入することができました。一方、生成 AI を活用した機能を構築するにあたっては、評価の方法を確立することは課題の一つでした。機能の開発にあたっては何パターンかのテストケースを用意し、テスト結果を確認しながらより良い応答を求めてプロンプトの修正等のチューニングを行っていました。
SQL修正提案機能については、Insight SQL Testing の利用者からも「 SQL 修正提案機能で提供される情報は修正を進めていくうえでの参考情報として使えそうです。」といったフィードバックをいただいてます。また、Insight SQL Testing の画面から、エラー原因の確認、修正まで一連の流れで行える点はユーザーからも高評価をいただいています。
今後の展望
今後の展望として、モデルの変更機能の追加、Knowledge Base for Amazon Bedrockを活用した推論精度の向上といったアップデートを計画しています。
生成 AI は変化が激しい領域であるため、より良い精度を求めるためにモデルの変更が求められることがありますが、Amazon Bedrock を活用することで、モデルの変更にも柔軟に対応できます。
また、Amazon Bedrock には Knowledge Base と呼ばれる RAG を構築するための機能があります。RAGはあらかじめ用意したドキュメントを質問内容に応じて類似検索し、LLM がより関連性の高い情報を元にした回答を作成するための手法の一つです。
SQL 修正提案機能では各 DB エンジンのドキュメントをベースとした回答を行えるよう RAG を構築することで、モデルが学習していない最新のバージョンについての情報や、特定のエンジン固有の情報への対応などより精度の高い回答を行えるよう計画しています。
まとめ
Insight SQL Testing では、Amazon Bedrock を SQL 修正提案機能に活用することで、生成 AI 機能の開発をスムーズに行うことが可能になり、製品の価値を高めることに繋がりました。
SQL 修正提案機能の詳細については、株式会社インサイトテクノロジーのプレスリリースでも確認可能です。
https://www.insight-tec.com/news/press/202404_5061/
SQL 修正提案機能を搭載したInsight SQL Testing はAWS Marketplaceからも購入可能です。Free trialとデモの案内が用意されているため、データベースのマイグレーション、バージョンアップにおけるテスト工数削減を行いたい場合はぜひご確認ください。