Insight Technology

2021.05.20

Insight Database Testing と AWS SCT と連携して移行アセスメントをさらに省力化 ( パート 2 アセスメント編 )

このエントリーをはてなブックマークに追加

こんにちは。インサイトテクノロジーの松尾です!

本ブログでは、Insight Database Testing と AWS SCT を組み合わせて、移行アセスメント、および SQL の修正確認を行う手順を紹介している、Insight Database Testing と AWS SCT と連携して移行アセスメントをさらに省力化 ( パート 1 準備編 ) の続編です。事前の準備については、( パート 1 準備編 ) を参照してください。

なお、本ブログでは製品自体の詳細な説明などは行っておりません。Insight Database Testing については 製品ページ:Insight Database Testingとは? 等を参照してください。画面の詳細な説明については、Insight Database Testing マニュアル を参照してください。

本ブログで説明する手順の流れ

本ブログで説明する手順は、以下の流れに従います ( 順序が前後しても問題ない場合もあります ) 。

( パート 2 アセスメント編 ) では、以下の流れのターゲット DB の登録から説明します。

  • 移行先データベースの準備
    • ( AWS SCT ) AWS SCT のインストール
    • ( AWS SCT ) AWS SCT の接続
    • ( AWS SCT ) 移行先データベース ( Amazon RDS for PostgreSQL ) にテーブルを作成
  • SQL アセスメントの実行
    • ( Insight Database Testing ) 評価 SQL セットの作成 ( ↑ここまで、パート 1 にて実施 )
    • ( Insight Database Testing ) ターゲット DB の登録
    • ( Insight Database Testing ) アセスメントの実行
  • AWS SCT での SQL 修正と再アセスメント
    • ( Insight Database Testing ) 失敗 SQL のダウンロード
    • ( AWS SCT ) 失敗 SQL の取り込み
    • ( AWS SCT ) SQL の変換と保存
    • ( Insight Database Testing ) 保存した SQL を評価 SQL セットへ反映
    • ( Insight Database Testing ) 再度アセスメントを実行

SQL アセスメントの実行

評価 SQL セットの作成まで終了しましたので、次に、ターゲット DB の登録を行います。

( Insight Database Testing での操作 ) ターゲット DB の登録

評価を実行する前に、移行先データベースを "ターゲット DB" として登録します。

  1. Insight Database Testing の上部メニューから、ターゲット DBを選択し、新規作成を選びます。

  2. ターゲット DB 名を入力し、データベースを PostgreSQL としたうえで、必要な情報を入力します。ホスト名には、Amazon RDS for PostgreSQL のエンドポイント情報を入力します。 (idt-target-db-new.png (idt-target-db-created.png

  3. ターゲット DB が作成されたら、ターゲット DB の一覧から作成したターゲット DB を選択し、テスト接続を選択します。ユーザー名とパスワードを入力して、ターゲット DB への接続が可能であることを確認します。 (idt-target-db-test.png

( Insight Database Testing での操作 ) アセスメントの実行

評価 SQL セットを作成し、ターゲット DB の準備ができたら、SQL 文のアセスメント ( 評価 ) を実行します。

  1. Insight Database Testing の上部メニューから、アセスメントを選択し、新規作成を選びます。適当なアセスメント名を設定し、作成した評価 SQL セット、作成したターゲット DB を選択します。実行タイプでは実際に SQL 文を実行するか、構文エラーのみをチェックする ( パース ) かを選択します。接続情報のユーザー名に対してパスワードを入力し、テスト接続を実行することで接続が可能であることを確認します ( 接続ができないと評価を行うことができず、全てエラーとなります ) 。 (idt-assessment-new.png (idt-assessment-executed.png

  2. アセスメントの一覧から実行したアセスメントのアセスメント名をクリックすると、実行したアセスメントの概要情報を確認することができます。今回のアセスメントでは、1 件成功し、1 件失敗したことがわかります。 (idt-assessment-summary.png

  3. エラーメッセージなどをクリックし、失敗した SQL を SQL 詳細画面で確認することができます。SQL 詳細画面では、失敗した SQL 文の内容を確認したり、移行情報として移行元データベースが Oracle Database の場合に、非互換の SQL 構文情報を表示することができます。今回の例では、非互換の構文として、外部結合演算子が検出されていることがわかります。 (idt-assessment-sql-detail.png (idt-assessment-sql-detail2.png

ここまでで、移行元データベースで実行され、収集・蓄積された SQL の、移行先データベースでの評価を行うことができました。エラーとなった SQL については、エラーの内容を確認し、修正方法について確認のうえ、アプリケーションコードの修正を行います。

構文エラーとなる SQL が大量にある場合、人手による確認と修正確認では大変です。 以降では、SQL の修正を AWS SCT を使って行う方法を紹介します。

AWS SCT での SQL 修正と再アセスメント

Insight Database Testing では失敗した SQL を AWS SCT に連携し、AWS SCT により SQL 修正を行った後、修正した SQL を Insight Database Testing に取り込んで再アセスメントを行うことが可能です。

( Insight Database Testing での操作 ) 失敗 SQL のダウンロード

AWS SCT へ取り込むため、Insight Database Testing から SQL を取得します。

  1. アセスメントのサマリー画面のメニューから、ツール連携 - SQL の抽出を選択します。成功した SQL も含めてダウンロードするか、失敗した SQL のみをダウンロードするかを選択しダウンロードを実行します。アセスメントの名称の zip ファイルがダウンロードされます。 (idt-assessment-summary-export.png (idt-assessment-summary-export-confirm.png

  2. ダウンロードした zip ファイルは、この後 AWS SCT から参照するので、参照しやすいディレクトリに展開しておきます。

( AWS SCT での操作 ) 失敗 SQL の取り込み

ダウンロードした SQL を AWS SCT で読み込みます。

  1. AWS SCT のメニューから Applications - New application を選択します。 (aws-sct-application-new.png

  2. New application conviersion projectで、Location には、前手順でダウンロードしたファイルを展開したフォルダを指定します。また、Language に Any を選択し、移行元データベースのスキーマを選びます。Target parameter style は AWS SCT で変更することもできますが、IDT Manager でも変換して実行する機能があるため、ここでは Same as in source にしておきます。 (aws-sct-application-new2.png

  3. OK をクリックすると、Location で選択したフォルダ内にあるファイルを確認することができます。 (aws-sct-application-conversion1.png

( AWS SCT での操作 ) SQL の変換と保存

失敗した SQL について、AWS SCT で一つずつ確認しながら変換を行い保存します。

  1. 左側のツリーで failed のディレクトリ内にあるファイルを選択すると、アセスメントに失敗した SQL が表示されるので、右側で、Analyze - Convert - Apply と順番に実行します。すると、右上の領域が変換後の SQL となります。 (aws-sct-application-conversion2.png

  2. 最後に Save を実行すると、選択したファイルの SQL が変換後の SQL となり上書き保存されます。

  3. エラーとなった SQL が複数ある場合は、この手順を繰り返します。

  4. 全ての SQL の変換が終わったら、ダウンロードしたときと同様に、一つの zip ファイルとして保存してください。

( Insight Database Testing での操作 ) 保存した SQL を評価 SQL セットへ反映

AWS SCT で変換したファイルを IDT Manager へ取り込みます。

  1. IDT Manager のメニューから評価 SQL セットを選択します。

  2. 最初のアセスメント時に作成した評価 SQL セットを選択し、メニューからコピーを選択します。 (idt-sql-set-copy.png

  3. コピーで新たに作成された評価 SQL セットを選択し、メニューから外部連携を選択します。表示される画面にて、AWS SCT で修正した SQL を保存した zip ファイルを選択します。適用を選択すと、選択した zip ファイルに含まれる SQL が評価 SQL セットへ反映されます。\ (idt-sql-set-import.png

( Insight Database Testing での操作 ) 再度アセスメントを実行

更新された評価 SQL セットを使って、再度アセスメントを行います。

  1. 最初にアセスメントを行ったのと同じ手順で、アセスメントを実行します。

  2. 今回のアセスメントでは 1 回目のアセスメントで存在したエラーがなくなりました。 (idt-assessment-summary-converted.png

  3. SQL の詳細を確認すると、修正された SQL が実際に評価されて、成功となったことが確認できます。 (idt-assessment-sql-detail-converted.png

おわりに

ここまで、Insight Database Testing と AWS SCT を用いて、評価の準備や評価の実行、さらに SQL を修正しての再評価の手順を説明しました。データベース移行にあたっては、さらに、SQL の実行可否だけではなく、結果が同じになることや性能なども確認する必要はできますが、まずはデータベース移行にともなう SQL の変換の第一歩を、ツールの活用で簡単に行えることを確認いただけたのではないかと思います。

Insight Database Testing をまだご利用いただいていない方で実際に試されたい場合は、製品の説明やデモ、トライアルなどについて Insight Database Testingに関するお問い合わせ よりお問い合わせいただければと思います。

今後も Insight Database Testing の活用方法や、関連するトピックなどをこのブログでどんどん紹介していきますので、どうぞお楽しみに!

ページトップへ
最新ニュースをお届けします! インサイトテクノロジー公式メールマガジンを
ご購読いただき、お役立ち情報をお受け取りください。
メールマガジンを購読する