Insight SQL Testing(旧名称:Insight Database Testing)
SQLテストソフトウェア
異種データベース間でSQLのテストができる唯一の製品。(特許 第7295541号)
性能や互換性を確認して修正が必要なSQLを検出。
Insight SQL Testing の特徴
01 移行コストを大幅に削減
異なるデータベース製品や異なるインフラ環境へ移行する際、
SQLアプリケーションの検証と修正、テストの実行には莫大な工数がかかります。事前のコスト計算や実現可能性、スケジュールなどの把握も困難で、データベースのバージョンアップや構成変更時にも同様の課題が発生します。
SQLアプリケーションの検証や修正、そのテストを目視や手動で繰り返し実行するには、高度なスキルや経験、そして工数が必要です。しかし、このような属人的なフローはテスト時のミスを誘発し、結果として起こる移行やバージョンアップ計画の延期がビジネスニーズ・費用面を圧迫する可能性があります。Insight SQL Testingはアプリケーション内にある修正が必要なSQLの数量・内容を自動で把握します。工数を削減するだけでなく、網羅性の高いテストが実行可能です。

サマリー
- 業務に熟練したエンジニアでなければ対処できなかった作業を誰でも可能に。
- 本番環境のSQLを網羅的に取得、テストを自動化・省力化。
- 移行先での実行可否確認、実行結果比較、実行速度比較が可能。
- マルチデータベース対応 (Oracle Database / SQL Server / PostgreSQL / MySQL / Snowflake / Amazon Aurora 他)
02 生成AIによるSQLエラー分析機能で修正工数を削減
SQLテストを実行しエラーが出た際、生成AIからエラーの原因説明や修正の提案を受けることが可能です。Insight SQL Testingは画面上からSQLを直接実行でき、生成AIが提案した修正案が正しく動作するか、その場で再度テストを実行できます。これにより、従来はSQLの専門知識をもった技術者が人力で行っていたエラー修正作業を効率化することができます。
基本的なプロンプト(生成AIに対する指示や質問)は製品側で用意していますが、ユーザー側でカスタムしたプロンプトを使用することも可能です。カスタムしたプロンプトを保存し、別の分析の際に利用することもできます。

03 スキーマ変換ツールの併用によるさらなる修正効率化
移行先のデータベースで実行に失敗したSQLや、動作が遅くなったSQLを外部連携用のフォーマットで抽出できます。抽出された問題のあるSQLは、SQL変換ツールと連携することで自動修正が可能です。そのため、異種データベースに関する専門知識がなくてもSQLを修正できます。
例)RDSやAuroraへの移行時:AWS Schema Conversion Tool (AWS SCT) と連携
Insight SQL TestingとAWS SCTを組み合わせて利用することができます。
Insight SQL TestingでエラーになったSQLをAWS SCTで変換。変換結果を取り込み、再度Insight SQL Testingでテストすることが可能です。

Insight SQL Testingの機能
FUNCTION 01 本番環境のSQLを自動でキャプチャー(Insight PISOの機能)
Insight PISOの機能を使うことで低負荷に本番環境のSQLを自動的にキャプチャー*し、Insight SQL Testingへ直接連携できるため、SQLを取得する工数を削減できます。
※バインド変数は取得できないパターンがあります(where句とhaving句で使用されるバインド変数のみが取得できる環境があります)。
※自動キャプチャー機能を利用する場合はお問い合わせください。
*自動キャプチャーが可能なデータベース種別抜粋:Oracle Database、Microsoft SQLServer、PostgreSQL、MySQL 、Symfoware、Amazon RDSなど

FUNCTION 02 移行先の環境や設定変更後の環境でSQLテスト
本番環境で実行されたSQLを、異なるデータベース製品や、パッチ適用などの設定変更後の環境で実行、評価します。移行のポリシーに合わせ、SELECT結果の比較方法など、細かな比較設定が可能です。

SQLテストで実施できるテスト項目
- 実行可否の確認(実行 or パース)
- 実行結果比較(SELECT取得結果、更新DML影響行数)
- パフォーマンス比較(実行時間)
- SQL修正後の動作確認
FUNCTION 03 実行エラーになったSQLを修正、再テスト
実行エラーになったSQL、実行結果が異なったSQL、実行時間が遅くなったSQLなどを、GUI上で修正して再テストすることができます。また、AWS SCTなどのツールと連携し、修正したSQLを取り込んで再テストすることも可能です。

Insight SQL Testingの
対応環境
DB種別 | ソースDB | ターゲットDB |
---|---|---|
Oracle Database | △ ※1 | 〇 |
PostgreSQL | 〇 | 〇 |
Microsoft SQL Server | △ ※1 | 〇 |
MySQL | 〇 | 〇 |
Snowflake | × | 〇 |
※1 PISOを利用することで対応可能です。
※ 各DBの対応バージョンやマネージドデータベースの対応状況などはお問い合わせください。

システム要件
ハードウェア | 必要スペック |
---|---|
vCPU | 4コア以上 |
メモリ | 8GB以上 |
ディスク | 94GB以上 |
Insight SQL Testingが
解決する課題
異なる種類のデータベース移行時のリスクとコストを明らかにする
Oracle DatabaseからPostgreSQLへの移行時など、データベースの移行には膨大なSQL数のテストが必要になります。
Insight SQL Testingは、移行時に必要なSQLの仕様の違い、DBMS独自の構文(Oracleの外部結合(+)、ROWIDの利用など)、予約語の違い、組み込み関数の有無や仕様の違い、異なるSQL実行結果、性能差を自動検証。移行時のスケジュール・工数の算出からテストの実行の場面で、多くの企業様に利用されています。
また、移行先がAWS環境であれば、AWSのSCTを組み合わせて使用することで、より修正工数を削減できる相乗効果が期待できます。

AWS Schema Convertion ToolとInsight SQL Testingの組み合わせでSQL修正コスト大幅削減
データベースのバージョンアップに対応する
避けては通れないデータベースのバージョンアップ。SQLや関数の仕様変更で性能が変わるばかりか、実行結果が変わる場合もあります。Amazon RDSなどのクラウドサービスは提供側がサポート期間を決定するため、利用側の都合でバージョンアップのタイミングを調整することができません。期日までに対応をしなければ、強制アップグレードが実行され、運用していたアプリケーションが障害を起こしてしまうことに。
Insight SQL TestingでSQLを自動収集し、非互換のSQLがないことを確認することで、スケジュールに余裕をもってスムーズにバージョンアップを行うことが可能です。

DBバージョンアップにおけるSQLテストの構成イメージ
データベースの負荷をテストする
本番環境からサンプリングしたSQLを負荷テストに活用すれば、通常業務処理時と変わらない条件での負荷を再現できます。SQL発行元のアプリケーションを使用しなくとも、Insight SQL TestingがあればSQLのみで負荷再現テストが可能です。

負荷テスト時のイメージ
Insight SQL Testingの
利用シーン

データベース移行
オープンソースDBへの移行、クラウドへの転換、移行時のSQL互換性の確認
- 商用データベースからの脱却でライセンス費用削減
- ベンダーロックインからの脱却(保守費用削減)
- 移行前のアセスメント、テストの効率化
- 移行時工数の見積支援に
- 専門知識がなくても実行可能
- クラウド対応

データベースのバージョンアップ
クラウドDBへの移行後、DBのバージョンアップへの対応が継続的に求められる
- クラウドDBのライフサイクルマネジメントとして定期的なバージョンアップやセキュリティパッチ適用への対応が必要

運用中システムの負荷テスト
停止できない業務システムの動作が重いと感じられる際の原因究明に
- 本番環境サンプリングのSQLで条件を再現したテストが可能
- アプリケーションの機能追加時の検証に
導入事例

クロノス株式会社
クロノスでは、勤怠管理システム「クロッシオン」のAmazon Aurora MySQLバージョンアップテストを、Insight SQL Testingで効率的かつ網羅的に実施。わずか2名で対応し、移行後の安定稼働を実現した。

株式会社ヌーラボ
ヌーラボは数百万を超えるユーザーが利用するBacklogやCacooと連携した認証基盤のAmazon Aurora MySQLのバージョンアップにInsight SQL Testingを採用。従来3ヶ月必要なテストを1ヶ月足らずで完了できた。

東京海上日動システムズ株式会社
Amazon Auroraでは計画的なバージョンアップが必要な上、対象となるデータベース数も数百以上になることから、その対応負荷の削減が課題となっていた。そこでバージョンアップ作業で一番負荷の高いテスト作業を効率化するため、網羅性の高いSQLのテストが可能なInsight SQL Testingを採用した。