Insight SQL Testing(旧名称:Insight Database Testing)
SQLテストソフトウェア
異種データベース間でSQLのテストができる唯一の製品。(特許 第7295541号)
性能や互換性を確認して修正が必要なSQLを検出
Insight SQL Testing の特徴
01 移行コストを大幅に削減
異なるデータベース製品や異なるインフラ環境へ移行する際、
SQLアプリケーションの検証と修正、テストの実行には莫大な工数がかかります。事前のコスト計算や実現可能性、スケジュールなどの把握も困難で、データベースのバージョンアップや構成変更時にも同様の課題が発生します。
目視と手動での作業の繰り返しは高度なスキルと経験が必要です。このような属人的なフローは移行時のミスを誘発する原因になり、移行計画の延長がビジネスニーズや費用面を圧迫する可能性があります。Insight
SQL Testingはアプリケーション内にある修正が必要なSQLの数量・内容を自動で把握。工数を削減するだけでなく、網羅性の高いテストを可能にします。
サマリー
- 業務知識に熟練したエンジニアでなければ対処できなかった作業を誰でも可能に。
- 網羅性を担保した、膨大なテストの自動化、省力化。
- 本番環境でアプリケーションが発行するSQLを自動収集してテストを実行。実行可否確認、実行結果比較、実行速度比較が可能。
- マルチデータベース対応 (Oracle Database / SQL Server / PostgreSQL / MySQL / Amazon Aurora 他)
02
低負荷にSQLを自動収集する
Direct Memory Access(DMA)テクノロジー
データベース監査市場にて10年以上連続シェアNo.1の実績を持つInsight PISOのロギングテクノロジーにより、データベースのパフォーマンスへ影響を与えることなく大量のSQLをリアルタイムに取得します。
- データベースに負荷をかけないため、通常運用時のデータ収集が可能。
- 膨大なSQLを取得できるため、網羅性の高いテストを実施可能。
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を自動でキャプチャー
本番環境のSQLを自動的にキャプチャーし、重複するSQLをグループ化して要約を表示します。
*バインド変数は取得できないパターンがあります(where句とhaving句で使用されるバインド変数のみが取得できる環境があります)。
SQL Capture | ||
---|---|---|
SQL | SQL Text | 実行回数 |
SQL開始/終了時間 | 処理件数 | |
オブジェクト | バインド変数 | |
プログラム | プログラム名 | プロセスID |
ユーザー | OS/DBユーザー名 | ログイン/アウト時間 |
FUNCTION 02 移行先の環境や設定変更後の環境でSQLテスト
本番環境で実行されたSQLを、異なるデータベース製品や、パッチ適用などの設定変更後の環境で実行、評価します。移行のポリシーに合わせ、SELECT結果の比較方法など、細かな比較設定が可能です。
SQLテストで実施できるテスト項目
- 実行可否の確認(実行 or パース)
- 実行結果比較(SELECT取得結果、更新DML影響行数)
- パフォーマンス比較(実行時間)
- SQL修正後の動作確認
FUNCTION 03 実行エラーになったSQLを修正、再テスト
実行エラーになったSQL、実行結果が異なったSQL、実行時間が遅くなったSQLなどを、GUI上で修正して再テストすることができます。また、AWS SCTなどのツールと連携し、修正したSQLを取り込んで再テストすることも可能です。
Insight SQL Testingの
対応環境
SQL取得元(DB移行元、バージョンアップ元) | SQL実行先(DB移行先、バージョンアップ先) |
---|---|
※SQLを何らかの形で取得できればファイル連携も可能 |
※標準ライブラリで接続可能なものであれば“互換”データベースでも可 |
※Qlik Replicateとの連携では、データソースはQlik Replicateのサポート対象に従います。
※稼働環境に対する詳細情報は、お問い合わせください。
マネジメントサーバー (IDT Manager) |
VMWare ESXi / AWS EC2 / Azure VMで動作する仮想アプライアンス vCPU4コア〜 メモリ 8GB ディスク 94GB〜 |
---|
Insight SQL Testingが
解決する課題
異なる種類のデータベース移行時のリスクとコストを明らかにする
Oracle DatabaseからPostgreSQLへの移行時など、データベースの移行には膨大なSQL数のテストが必要になります。
Insight Database
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テストの構成イメージ
データベースの負荷をテストする
Insight SQL Testingを利用することで、アプリケーションがなくとも負荷のかかった環境を再現できます。
負荷テスト時のイメージ
Insight SQL Testingの
利用シーン
データベース移行
オープンソースDBへの移行、クラウドへの転換、移行時のSQL互換性の確認
- 商用データベースからの脱却でライセンス費用削減
- ベンダーロックインからの脱却(保守費用削減)
- 移行前のアセスメント、テストの効率化
- 移行時工数の見積支援に
- 熟練エンジニアでなくても実行可能
- クラウド対応
データベースのバージョンアップ
クラウドDBへの移行後、DBのバージョンアップへの対応が継続的に求められる
- クラウドDBのライフサイクルマネジメントとして定期的なバージョンアップやセキュリティパッチ適用への対応が必要
運用中システムの負荷テスト
停止できない業務システムの動作が重いと感じられる際の原因究明に
- 本番環境サンプリングのSQLで条件を再現したテストが可能
- 低負荷にSQLを自動収集するDirect Memory Access(DMA)テクノロジー
- アプリケーションの機能追加時の検証に
導入事例
東京海上日動システムズ株式会社
Amazon Auroraでは計画的なバージョンアップが必要な上、対象となるデータベース数も数百以上になることから、その対応負荷の削減が課題となっていた。そこでバージョンアップ作業で一番負荷の高いテスト作業を効率化するため、網羅性の高いSQLのテストが可能なInsight SQL Testingを採用した。
株式会社リバスタ
リバスタの建設現場施工管理サービス「Buildee」の基盤システム「Amazon Aurora MySQL」のバージョンアップために採用されたのが「Insight SQL Testing」だった
SRA OSS合同会社
これまで必要なSQLの収集は手作業で行っていたが、Insight SQL Testingの導入でそれらを自動化かつ網羅的に収集し、修正を実行できた。独自ツールを使用した場合と比較し、時間とコストを半分以下に抑えることができた。