Insight Database Testing 3

マニュアル

2023年11月30日(第10版)

1. 商標/免責事項

1.1. 免責事項

本マニュアルに記載された情報は、予告なしに変更される場合があります。株式会社インサイトテクノロジーは、本マニュアルに関していかなる種類の保証(商用性および特定の目的への適合性の黙示の保証を含みますが、これに限定されません)もいたしません。
株式会社インサイトテクノロジーは、本マニュアルに含まれた誤謬に関しての責任や、本マニュアルの提供、履行および使用に関して偶発的または間接的に起こる損害に対して、責任を負わないものとします。

1.2. 著作権と商標

本マニュアルのいかなる部分も、株式会社インサイトテクノロジーからの文書による事前の許可なしには、形態または手段を問わず決して複製・配布してはなりません。
Insight Database Testing、PISOは株式会社インサイトテクノロジーの登録商標です。

他社商標
  • Amazon Aurora、Amazon EC2、Amazon RDS、Amazon S3、Amazon VPC、AWS、AWS Marketplaceは、米国および/またはその他の諸国における、Amazon.com, Inc.またはその関連会社の商標です。

  • Apacheは、Apache Software Foundationの米国およびその他の国における登録商標または商標です。

  • Azure、Microsoft Edge、SQL Serverは、米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。

  • EDB Postgresは、EnterpriseDB Corporationの商標です。

  • Firefoxは、米国Mozilla Foundationの米国およびその他の国における商標です。

  • Google Chromeは、Google LLCの商標です。

  • Linuxは、Linus Torvalds氏の米国およびその他の国における登録商標または商標です。

  • MariaDBは、MariaDB Corporation Abおよびその子会社、関連会社のフィンランド、米国およびその他の国における登録商標です。

  • MySQL、Oracleは、Oracle Corporationおよびその子会社、関連会社の米国およびその他の国における登録商標です。

  • PostgreSQLは、カナダのPostgreSQLコミュニティ協会の登録商標です。

  • UNIXは、The Open Group Ltd.が独占的にライセンスしている米国ならびに他の国における登録商標です。

  • VMware、VMware ESXiは、米国およびその他の地域におけるVMware, Inc.の登録商標または商標です。

  • 本製品には、OpenSSL Project(http://www.openssl.org)が開発したソフトウェアが含まれています(OpenSSL Toolkit で使用)。

その他の社名および製品名は、一般に各社の商標または登録商標です。なお、本文中には™、®マークは明記しておりません。

2. 本マニュアルの読み方

表記について

本マニュアルでは、以下の表記方法を使用します。

  • 注意事項は、以下のように示します。

    本手順はSQLの評価までの基本的な手順のみを記載しています
  • 参照先は、以下のように示します。

    詳細については、インストールマニュアルを参照してください。
  • コマンドボックスは、コマンドライン上の入力または表示内容を示します。
    ex

    istctl upistcmon
    istctl startall
  • インラインブロックはInsight Database TestingやLinuxのコマンドを示します。
    ex istctlに追加コマンドがあります。

  • 文中の 太字 はファイルやディレクトリを示します。
    ex IDT Managerの /mnt/piso-data/idt-data/sct 配下に出力されます。

  • < > は、使用する環境によって表記が異なることを示します。
    ex
    「 http://<インストールマシンのIPアドレス>:7777/idt/ 」の場合、インストールマシンのIPアドレスが「198.162.0.0」であるならば、「 http://198.162.0.0:7777/idt/ 」と読み替えてください。

  • PISO Manager/IDT Managerの機能でSQLを取得する以下のデータベースをまとめて「Amazon RDS」と表記します。

    • Amazon Aurora(PostgreSQL互換エディション)

    • Amazon Aurora(MySQL互換エディション)

    • Amazon RDS for Oracle

    • Amazon RDS for PostgreSQL

    • Amazon RDS for MySQL

    • Amazon RDS for MariaDB

画面について

製品バージョンによって、IDT Manager画面表示は本マニュアル内の表示と異なる場合があります。

3. はじめに

3.1. 製品の概要

Insight Database Testing(以下、Insight DTと表記)は、今までソースDB(移行元データベース)上で使用していたSQLを、ターゲットDB(移行先データベース)上で実際に使用できるかを検証します。
ソースDBでのSQLの取得は、株式会社インサイトテクノロジー独自のDMA機能を使うため、低負荷で網羅的に取得できます。取得したSQLは簡単にターゲットDBへ実行できます。
弊社製品PISOを使用しているお客様は、PISOで取得したSQLを使用できます。
ターゲットDBでのSQLの実行結果はビジュアライズされ、実行できないSQLの傾向や、性能が劣化したSQLが分かります。
また、Insight DT上でSQLを書き換えて検証・保存することもできます。

3.2. 製品の構成

Insight DTではソースDBで実行されているSQLを使用してアセスメントを実行します。SQLの取得と収集にはPISOを使用します。
すでに弊社製品PISOを導入しているお客様は、利用中のPISO TargetをSQLの取得に使用できます。
本製品は、ソースDBで実行するPISO Targetから取得したSQLを収集するPISO Manager部分と、ターゲットDBへSQLを実行するためのInsight Database Testingマネージャー(以下、IDT Managerと表記)部分とで構成されています。
ただし、ソースDBがAmazon RDS(Amazon RDS for SQL Serverを除く)の場合はPISO Targetは不要です。PISO ManagerまたはIDT ManagerがAWS RDSのデータ(ログ)を取得して収集します。

ソースDBから収集したSQLを評価対象として、IDT ManagerからターゲットDBへ実行し、実行結果を取得・分析することができます。

構成図
1つのターゲットDBでのみ行うアセスメント

また、ソースDBと同様のテスト環境をテスト用ソースDBとして別途用意して、テスト用ソースDBとターゲットDBの2つのデータベースに同じSQLを実行してSQL実行結果や時間、実行性能を比較することができます。

2DB構成図
テスト用ソースDBとターゲットDBの2つのデータベースを指定して行うアセスメント

AWSマイグレーションではデータベースのスナップショットからテスト用ソースDBとターゲットDBを作成して、2つのデータベースを指定したアセスメントを継続的に行うことができます。また、AWSマイグレーションではPISOを使用しません。

AWSマイグレーションの詳細は、「AWSマイグレーション」を参照してください。

3.3. Insight DTのシステム要件

3.3.1. オンプレミスの場合

ホストマシン
  • VMware ESXi 6.0 Update 2以降(Insight DT 3.1以前の場合)

  • VMware ESXi 6.5以降(Insight DT 3.2以降の場合)

インストールパッケージのファイル構成

弊社サポートサイト(Service Portal)にログインし、Insight DTのインストールパッケージ(ZIPファイル)を入手してください。
インストールパッケージ(ZIPファイル)を展開すると、以下のようなファイル構成になります。
Insight DT 3.1.0.0以前のバージョンでは、展開後のファイル名がdisk-x.vmdkと表示されます。
Insight DT 3.2.0.0バージョンでは、展開後のファイルにIDT-ManagerXXXX.mfファイルも含まれます。

  • IDT-ManagerXXXX.ovf

  • IDT-ManagerXXXX-0.vmdk

  • IDT-ManagerXXXX-1.vmdk

  • IDT-ManagerXXXX-2.vmdk

  • IDT-ManagerXXXX-3.vmdk

システム要件
ハードウェア 必要スペック

vCPU

4以上

メモリ

8GB以上

ディスク

94GB以上 ※1

※1 一般的に、監視対象データベース1インスタンス(1か月)あたり50GB程度のディスク容量を必要としますが、利用状況により大きく異なります。94GBは、データ領域に50GB、バックアップ領域に10GBを設定した場合の例です。

詳細はPISO Managerインストールマニュアルの「蓄積データ領域について」を参照してください。(/dev/sdb:データ領域、/dev/sdc:バックアップ領域、/dev/sdd:PostgreSQLのWALログ領域)

3.3.2. EC2の場合

Amazon EC2(以下、EC2と表記)でInsight DTを使用することもできます。
AWS Marketplace: IDT-ManagerからAmazonマシンイメージ(AMI)を入手してください。

3.3.3. Azure VMの場合

Azure Virtual Machines(以下、Azure VMと表記)でInsight DTを使用することもできます。
Azure Marketplace: Insight Database TestingからAzure VMイメージを入手してください。

Azure VM上でInsight DTを構築する場合のシステム要件は、「Azure VM上でのIDT Managerの起動」を参照してください。

3.3.4. PISO Managerの機能でSQLを取得時のディスク容量について

「PISO Managerを使用したSQL収集と出力」で(方法1)(方法2)のいずれの場合も必要なディスク容量の目安は、1評価セットで250GB/月です。

  • Insight DTの監視対象データベース1インスタンスあたりが50GB/月。

  • PISO Managerのマイニングサーチを使用する場合、蓄積データ領域が通常の50GB/月の3倍必要になり150GB/月。

  • 出力されるCSVファイルが50GB/月。

上記3つの使用量から、50+150+50=250GB/月としています。

ディスクは/mnt/piso-dataを、1日につき1評価SQLセットで9GB弱使用します。
(Azure VMにIDT Managerを構築した場合は/data/piso-data
PISO ManagerとIDT Managerを接続して蓄積したSQLを転送する場合(方法2)は/mnt/piso-dataの他に、一時的にルートも使用します。

補足事項
  • 必要となるディスクサイズは、評価SQLセットの期間や、SQLテキストのサイズにより変動します。

  • SQLテキストが大きい場合には、上記よりマージンを設けて容量を確保してください。

PISO ManagerのWAL領域(/mnt/pg-wal)が不足すると、PISO Managerが使用しているPostgreSQLの異常終了やWAL領域の使用率が高騰する等の事象が発生する場合があります。その場合はWAL領域を拡張してください。
詳細は、弊社サポートサイト(Service Portal)の[PISO]>[ナレッジ]メニューの右部にある[Search…​]から文書番号:000001943を参照してください。

3.4. 性能要件

すべてのIDT Managerの基準値は以下の前提条件から算出されています。

ハードウェア基準値
項目 基準値

vCPU

4

メモリ

16GB

ディスク

130MB/secの転送性能

上記ハードウェア基準値をもとに以下のIDT Manager 1台ごとの稼働上限値を設けています。

IDT Manager稼働基準値
項目 基準値

SQLのサイズ

1KB/1SQL

1時間あたりの処理可能なアクセスログの件数

最大20.8万件

1日の合計件数

5000万件

3.5. 対応データベース

Insight DTで対応するデータベースの種類とSQL取得の対応、バージョンは以下のとおりです。

  • ソースDBのSQL取得方法は「PISO Managerの機能でSQLを取得」「IDT Managerの機能でSQLを取得」があります。

  • 「IDT Managerの機能でSQLを取得」とは、評価SQLセット作成時にAmazon RDSからSQLを取得する、またはAWSマイグレーション機能を使用した場合を指します。

    評価対象のSQLは、Insight DTのログ取得方法(評価SQLセット)によって異なります。詳細は、「評価対象のSQLについて」を参照してください。
データベース ソースDBのバージョン
(PISO Managerの機能でSQLを取得)
ソースDBのバージョン
(IDT Managerの機能でSQLを取得)
ターゲットDBのバージョン 備考

Oracle Database

10g以上

×

11gR2、12c、12cR2、18c、19c

ソースDBにはPISO Targetをインストールする必要があります。

PostgreSQL

9.3以上(互換製品を含む※1

×

9.4以上(互換製品を含む※1

SQL Server

2005以上

×

2017、2019(互換製品を含む※2

MySQL

5.5以上

×

5.6、5.7、8.0(互換製品を含む※3

Amazon Aurora(PostgreSQL互換エディション)※4

PISO Managerが対応するデータベースと同様です。
詳細は、弊社サポートサイト(Service Portal)から[PISO]>[製品ダウンロード]で製品検索し、表示される関連ファイル一覧から対応表を参照してください。

10~15

10~15

Amazon Aurora(MySQL互換エディション)※4

1~3

1~3

PISO Managerの機能でSQLを取得する場合、一般ログ(general log)を使用していないため行コメントを解釈できません。

Amazon RDS for Oracle

×

19c

Amazon RDS for PostgreSQL※4

10~15

10~15

Amazon RDS for SQL Server

×

15.00.4073.23.v1

ソースDBにはPISO Target用のEC2インスタンスが必要です。

Amazon RDS for MySQL※4

5.7、8

5.7、8

PISO Managerの機能でSQLを取得する場合、一般ログ(general log)を使用していないため行コメントを解釈できません。

Amazon RDS for MariaDB

×

10.2~10.6

PISO Managerの機能でSQLを取得する場合、一般ログ(general log)を使用していないため行コメントを解釈できません。

AWS以外のマネージドデータベース

×

×

通常のOracle Database、PostgreSQL、SQL Server、MySQLの要件に従います。

※1 PostgreSQLの互換製品には、Amazon Aurora(PostgreSQL互換エディション)、EDB Postgres Advanced Server、FUJITSU Software Enterprise Postgresを含みます。

※2 SQL Serverの互換製品には、Azure SQL Database、Azure SQL Managed Instanceを含みます。

※3 MySQLの互換製品には、Amazon Aurora(MySQL互換エディション)、MariaDB 10.1以上を含みます。

※4 AWSマイグレーション機能を使用してアセスメントできます。

ソースDBがオンプレミス上のデータベースまたはRDS for SQL Serverの場合、PISO Targetの動作がサポートされている必要があります。
各種データベースに対するPISO Targetの対応状況は、弊社サポートサイト(Service Portal)の[Insight Database Testing]>[製品ダウンロード]から製品検索・確認できます。
詳細は販売代理店または販売元にお問合せください。

3.6. 対応ブラウザ

ブラウザは、以下のものを使用してください。それ以外のブラウザでは、画面が正しく表示されない場合があります。

  • Google Chrome 91以降のバージョン

  • Microsoft Edge 92以降のバージョン

  • Mozilla Firefox 90.0以降のバージョン

3.7. IDT-Managerインストールディレクトリ

IDT-Managerが仮想マシン(VM)提供の場合、既定のインストールディレクトリは/home/insight/idt/(以下、<IDT_HOME>と表記)です。

3.8. 使用している用語について

用語 説明

IDT Manager

Insight Database Testing マネージャー。
SQLを蓄積、SQLを実行するマネージャーサーバーです。

評価SQLセット

ターゲットDBへ実行するフォーマットに変更したSQLのデータセットです。

アセスメント

評価SQLセットをターゲットDBへ実行すること。または実行結果のデータセットです。

修正SQLセット

評価SQLセットの一部のSQLに対し、修正を適用してアセスメントを実行するSQLのデータセットです。
アセスメントに対して修正保存したSQL、または評価SQLセットに対してツール連携で適用可能な、ZIPファイルまたはCSVファイルから作成できます。

PI Hash

SQLに付与する弊社独自のハッシュ値です。
SQLのリテラルやコメントを無視し、同じ構成のSQLに同じハッシュ値を付与します。
アセスメント時にSQLの重複を排除する際に使用します。

PISO

弊社が開発しているデータベースアクティビティモニタリングツールです。
アクセス情報を取得する機能があり、Insight DTではそれを流用しています。

PISO Manager

PISOにおいて、アクセス情報を蓄積・分析するためのマネージャーサーバーです。

PISO Target

PISOにおいて、アクセス情報を取得するために監視対象サーバーにインストールするモジュールです。

マイニングサーチ

PISOの蓄積データ抽出機能です。
蓄積したアクセス情報を検索しファイル出力する機能です。

3.9. 製品サポートについて

製品サポートについては、販売代理店または販売元にお問合せください。

また、その他のサポートの提供に関する詳細、製品バージョンごとのサポートレベルについては、製品サポートInsight Database Testing 製品サポートレベルを確認してください。

4. インストールと各種設定

IDT ManagerはPISO Managerを同梱した形態で提供しています。
IDT Managerをインストールすると、IDT Manager WebコンソールとPISO Manager Webコンソールが設定され、接続できます。

構築作業は、通常30分以内で終了します。

ソースDBからSQL取得するためにPISO Targetを使用する場合には、弊社サポートサイト(Service Portal)にログインの上、PISO Target各インストールマニュアルを参照してください。

4.1. IDT Managerの構築と設定(オンプレミスの場合)

4.1.1. 概要

IDT Managerのインストールパッケージは、VMwareのイメージとして提供されるソフトウェアアプライアンスです。
仮想マシンイメージをインポートすることでアプリケーションを使用できます。

4.1.2. PISO Managerインストールマニュアルとの差異

仮想マシンイメージの操作はPISO Managerのインストールマニュアルに従います。
以下はIDT Managerとしてマニュアルを読み替える箇所です。

  • 仮想マシンのホスト名は「idt」です。

  • 「OSのPISO用ユーザー」を「OSのInsight DT用ユーザー」に読み替えてください。

  • ライセンスパスワードはIDT Manager Webコンソールから設定します。
    IDT Managerおよび、同梱されているPISO Managerはあらかじめ自動起動設定されています。

  • istctlの一部コマンドは使用しません。

    • setlicense

    • id

    • showlicense

  • istctlに追加コマンドがあります。

    • upidt

    • downidt

IDT Managerのインストールパッケージには、セットアップ済みのPISO Managerが同梱されています。PISO Managerのインストール作業を行う必要はありません。

4.1.3. インポート手順について

仮想マシンイメージのインポート(デプロイ)、ディスク設定およびネットワーク設定はPISO Managerインストールマニュアルの「オンプレミス環境でインストール」の章を参照してください。
ただし、「初期セットアップ」の手順は不要です。

4.1.4. Webコンソールへのアクセス

ブラウザからPISO ManagerとIDT ManagerのWebコンソールに接続します。

PISO Manager Webコンソール

PISO Manager Webコンソールでは、蓄積の設定・確認を行います。

以下のURLへアクセスし、既定のユーザーとパスワードを入力します。

  • http://<IDT ManagerのIPアドレス>:7777/piso/

  • ユーザー名:administrator

  • パスワード:insight

IDT Manager Webコンソール

IDT Manager Webコンソールでは、ターゲットDBへ接続しアセスメントを行います。

以下のURLへアクセスし、既定のユーザーとパスワードを入力します。
また、初回ログインの場合は、既定の管理者ユーザーでログインし、管理者画面から一般ユーザーを作成します。

  • http://<IDT ManagerのIPアドレス>:7777/idt/

  • ユーザー名:administrator

  • パスワード:insight

4.1.4.1. ポートの変更
PISO Managerインストールマニュアルの「ポート番号を変更する」を参照してください。

Apache HTTP Serverで使用するポート番号はPISO Managerと共通となります。
WebコンソールのURLは以下の形式ですので、ポート番号を変更した場合は合わせて変更してください。
http://<IDT ManagerのIPアドレス>:<ポート番号>/<idtまたはpiso>/

4.1.4.2. 起動停止

IDT Manager Webコンソール単独の起動・停止は以下のコマンドで実施します。

  • 起動する場合

    istctl upidt
  • 停止する場合

    istctl downidt

4.1.5. アンインストール手順について

仮想マシンの削除を行います。

VMwareのドキュメントを参照してください。

4.2. IDT Managerの構築と設定(EC2の場合)

Insight DTをEC2上に構築した場合のシステム構成図を示します。以下の構成図は、移行元データベースをオンプレミス上に構築した場合を想定しています。
なお、移行元データベースをAWS上にも構築することができます。

EC2上で構築した場合の一般的な構成図

EC2上でInsight DTを使用するには、AWS Marketplaceの中から利用形態に応じて製品を選択し、[Continue to Subscribe]をクリックしてください。

IDT-Manager(BYOL)
IDT-Manager (BYOL)を選択した場合
「AWS上で利用時の留意事項」を参照してください。

4.2.1. AWS上で利用時のネットワーク要件

IDT ManagerをEC2に作成し、Amazon RDSからログを取得する場合は、IDT ManagerとAmazon RDS API間の接続経路を確保する必要があります。
IDT Managerがインターネットに接続できない閉ざされたサブネット(Private subnet)に所属している場合、RDSインスタンスが稼働しているサブネットへのネットワーク経路を確保しただけでは、ログの取得はできません。
IDT ManagerはAmazon RDS APIを通してログを取得しますので、インターフェースVPCエンドポイント(AWS PrivateLink)を使用してAmazon RDS APIへの専用経路を作成してください。
以下は、IDT ManagerのSQL取得の経路イメージです。

aws network

また、IDT Managerが開かれたサブネットに所属する場合(インターネットに接続可能)、通常はAmazon RDS APIに接続できるため問題ありません。

IDT Managerとデータベースが閉ざされたサブネットに所属している場合は、「エンドポイントの作成」を参照して作成してください。
セキュリティグループについて

エンドポイントへアクセスする場合、使用するAWSのサービスのインスタンスに対してセキュリティグループのアウトバウンドにHTTPS(443)を許可する必要があります。
許可が必要なAWSのサービスは、以下のとおりです。

操作 AWSのサービス

PISO Managerの機能でAmazon RDSからログを取得する※1

  • 自AWSアカウントの場合

RDS

  • IAMロールを使用しアクセスを委任する場合(別AWSアカウント)※2

RDS、STS

Insight DTの機能で直接Amazon RDSのログを取得して評価SQLセットを作成する場合(自AWSアカウント)※3

RDS、STS

AWSマイグレーションを使用する(自AWSアカウントのみ)

  • テスト用ソースDBになるRDSインスタンス/AuroraクラスターをInsight DTから作成する場合※4

RDS、EC2、STS

  • テスト用ソースDBになるRDSインスタンス/AuroraクラスターをInsight DTから作成しない場合※5

RDS、STS

ターゲットDBになるRDSインスタンス/AuroraクラスターをInsight DTから作成する場合※6

RDS、EC2、STS

※1 詳細は、「PISO Managerを使用したSQL収集と出力」を参照してください。

※2 詳細は、PISO Managerインストールマニュアルの「AWSアカウント間でIAMロールを使用しアクセスを委任した環境の場合」を参照してください。

※3 詳細は、「評価SQLセットのソース」項目を参照してください。

※5 詳細は、「登録してあるターゲットDBを使用する」を参照してください。

※6 詳細は、ターゲットDBの追加の「スナップショットからRDSインスタンス/Auroraクラスタを作成する」項目を参照してください。

4.2.1.1. エンドポイントの作成
  1. AWSマネジメントコンソール画面でVPCサービスを選択し、[エンドポイント]>[エンドポイントを作成]をクリックします。

  2. 名前を設定し、サービスカテゴリに[AWSのサービス]を選択します。

  3. サービスから接続先のAWSサービスを選択します。例えば、「rds」と検索して該当するものを選択してください。

  4. VPCからエンドポイントを作成するVPCを選択します。

  5. プライベートDNSを有効にします。[追加設定]から[DNS名を有効化]をオンにします。

    プライベートDNSを有効にしないと、デフォルトのDNSホスト名を使用してプライベートリンクを実行することができません。
    [DNSホスト名][DNS解決]を有効にすることで、プライベートDNSが有効化されます。
  6. サブネットからインターフェイスエンドポイントを使用するVPCのサブネットを選択します。

  7. セキュリティグループを選択します。アウトバウンドにHTTPS(443)が許可されたセキュリティグループを設定してください。

  8. ポリシーは[フルアクセス]を選択し、[エンドポイントを作成]をクリックしてください。

  • AWSマイグレーションでスナップショットからRDSインスタンス/Aurora DBクラスターを作成する場合は、手順3.で「sts」「ec2」で検索し、エンドポイントを追加で作成してください。
    登録済みのターゲットDBを使用する場合は手順3.で「sts」のみ追加で作成してください。

  • エンドポイント作成後、VPCの[詳細]タブから[DNSホスト名][DNS解決]が有効であれば、プライベートDNSが有効になっていることを確認できます。

4.2.1.2. ネットワークの接続確認
  • ネットワーク接続については、以下のcurl -vコマンドを実行してRDSやSTSなどへの応答を確認してください。

    icon ex RDSのデフォルトのホスト名の場合(東京リージョン)

    $ curl -v https://rds.ap-northeast-1.amazonaws.com

    icon ex STSのデフォルトのホスト名の場合(東京リージョン)

    $ curl -v https://sts.ap-northeast-1.amazonaws.com

4.2.2. EC2上でのIDT Managerの起動

以下の手順に従い、EC2インスタンスを起動します。

  1. AWS MarketplaceからIDT ManagerのAmazonマシンイメージ(AMI)を選択します。

  2. サブスクライブの利用規約を確認し、AMI、ソフトウェアバージョン、リージョンを選択します。

  3. インスタンス起動方法(アクション)に[Launch through EC2]を選択し、[Launch]をクリックします。
    EC2コンソールの「インスタンスを起動」画面に遷移します。

  4. インスタンスの名前とタグを入力します。

  5. インスタンスタイプは、vCPU 4以上、メモリ8GB以上(m5.xlarge推奨)を選択します。

  6. セキュリティグループは、SSH(22)に加え、HTTP(7777)を許可します。

    • PISO Targetは、PISO Managerのポート番号7777に対してデータを送信します(既定の動作)。

    • ポート番号7777は、IDT Manager Webコンソールへのアクセスにも利用されます。

    • Apache HTTP Serverで使用するポート番号は、1023番以下には設定できません。

      ポート番号の変更については、PISO Managerインストールマニュアルの「ポート番号を変更する」を参照してください。
  7. ストレージ(データ領域)は、監視対象データベース1インスタンス(1か月)あたり50GB程度のストレージを必要としますが、利用状況により大きく異なります。
    ストレージで使用するEBSボリュームタイプはgp3を推奨します。
    データサイズについて不明な場合、EC2起動時にはデータ領域に50GB、バックアップ領域に10GBを程度を設定し、利用状況に応じてストレージサイズの変更を検討してください。

    詳細はPISO Managerインストールマニュアルの「蓄積データ領域について」を参照してください。(/dev/sdb:データ領域、/dev/sdc:バックアップ領域、/dev/sdd:PostgreSQLのWALログ領域)
  8. 概要の設定項目を確認した上で、[インスタンスを起動]をクリックして起動します。

    PISO Managerのインストールマニュアルも必要に応じて参照してください。その際は「PISO Managerインストールマニュアルとの差異」も確認してください。

4.2.3. IDT Managerの設定(ストレージサイズの変更)

EC2起動時に指定したストレージサイズをOS側で認識させるには以下の手順で行います。
EC2起動時に、既定の1GBからボリュームサイズを変更している場合、EC2インスタンス起動後、ec2-userユーザーにてSSHで接続し、以下のコマンドでディスクサイズを拡張します。

sudo xfs_growfs -d /mnt/piso-data
sudo xfs_growfs -d /mnt/piso-backup

4.2.4. Webコンソールへのアクセス

ブラウザからPISO ManagerとIDT ManagerのWebコンソールに接続します。

PISO Manager Webコンソール

PISO Manager Webコンソールでは、蓄積の設定・確認を行います。

以下のURLへアクセスし、既定のユーザーとパスワードを入力します。

  • http://<IDT ManagerのIPアドレス>:7777/piso/

  • ユーザー名:administrator

  • パスワード:起動したEC2のインスタンスID

IDT Manager Webコンソール

IDT Manager Webコンソールでは、ターゲットDBへ接続しアセスメントを行います。

以下のURLへアクセスし、既定のユーザーとパスワードを入力します。
初回ログインの場合には、既定の管理者ユーザーでログインし、管理者画面から一般ユーザーを作成します。

  • http://<IDT ManagerのIPアドレス>:7777/idt/

  • ユーザー名:administrator

  • パスワード:起動したEC2のインスタンスID

4.2.5. Amazon S3互換のオブジェクトストレージへの転送

S3互換のオブジェクトストレージへ接続することで一定時間経過したシステムとジョブ実行のログを転送します。
この設定の使用は任意です。

EC2環境でIAMロールを使う場合の手順
  1. 対象のS3バケットへのPutObject、GetObject、ListBucket、DeleteObjectをEC2にアタッチしたロールに付与します。

    {
        "Sid": "任意",
        "Effect": "Allow",
        "Action": [
            "s3:PutObject",
            "s3:GetObject",
            "s3:ListBucket",
            "s3:DeleteObject"
        ],
        "Resource": [
            "arn:aws:s3:::バケット名",
            "arn:aws:s3:::バケット名/*"
        ]
    }
  2. 設定後にIDT Managerを終了します。

    istctl downidt
  3. Insight DTの設定ファイル<IDT_HOME>/config/config.ymlに接続設定を加えます。

    data:
      /* 既存設定に以下を追加 */
      IDT_STORAGE_BUCKET: バケット名
      IDT_STORAGE_REGION: バケットリージョン
  4. IDT Managerを開始します。

    istctl upidt
  5. Web接続のエラーが発生した場合は、idtctl logsを実行して、objectStorage.jsの接続エラーを示すerror objectStorage.jsの行を確認してください。

    2022-03-03T10:09:09.963Z info objectStorage.js test connection
    2022-03-03T10:09:10.087Z error objectStorage.js Bucket Not found. name=hoge

4.2.6. ディスク管理をAuroraにする方法

EC2上で稼働しているInsight DTのデータベース(idt-db)をAmazon Aurora(PostgreSQL互換エディション)に移行する方法について説明します。
この移行により、Insight DTのデータベースがデータの保存に使用していたデータディレクトリから離れます。
これによりInsight DTのアプリケーション(idt-app)とのリソースの競合を解消することができます。

  • Amazon Aurora(PostgreSQL互換エディション)の利用料が発生します。

  • ネットワーク帯域が十分に確保されていない場合、パフォーマンスの低下やタイムアウトエラーなどが発生する可能性があります。

  • EC2インスタンス(IDT Manager)と移行先のAmazon Aurora(PostgreSQL互換エディション)の通信には、双方のセキュリティグループに通信を許可するための設定が必要です。
    Amazon Auroraのユーザーガイドに従って、各セキュリティグループに下記の設定が含まれている必要があります。

    • Amazon Aurora(PostgreSQL互換エディション)に関連付けられたセキュリティグループに、EC2インスタンス(IDT Manager)のVPCセキュリティグループをソースとするインバウンドルールが存在する。

    • EC2インスタンス(IDT Manager)に関連付けられたセキュリティグループに、Amazon Aurora(PostgreSQL互換エディション)のVPCセキュリティグループをソースとするアウトバウンドルールが存在する。

  • アセスメント実行時に実行されるSQLのSELECT文によって取得されるデータの保存場所は、引き続きディスク上の/mnt/piso-data/idt-data(IDT_DATA_HOME)ディレクトリです。

  • ファイルアップロードを通じて評価SQLセットや修正SQLセットを作成する際には、アップロードされたファイルがディスク上の一時領域に保存されるため、処理中に一定量のストレージを消費します。この点も移行前後で変わりません。

  • 移行が完了するまでの間はInsight DTを使用することはできません。

  • 移行後はIDT Managerサーバーを起動する前にAmazon Aurora(PostgreSQL互換エディション)の起動が完了している必要があります。

4.2.6.1. 移行手順

以下の手順は、IDT Managerが起動している状態を想定しています。

ステップ1 Auroraのインスタンス作成

移行先のAmazon Aurora(PostgreSQL互換エディション)インスタンスを作成します。

  • エンジンタイプは[Aurora (PostgreSQL Compatible)]を選択してください。

  • エンジンバージョンは[Aurora PostgreSQL (Compatible with PostgreSQL 13.x)]を選択してください。

  • データベースユーザーに「idt」を作成してください。

  • プライマリインスタンスはEC2インスタンス(IDT Manager)と同じアベイラビリティゾーン(AZ)に配置してください。

  • 以降、作成したAmazon Aurora(PostgreSQL互換エディション)インスタンスのホスト名を<host>、データベースユーザーのパスワードを<password>、ポートを<port>とします。

ステップ2 EC2からのデータベースダンプ・移行先へリストア
  1. EC2インスタンス(IDT Manager)にec2-userユーザーでログインします。

  2. OSのInsight DT用ユーザー(通常、insight)へ変更します。

    sudo su - insight
  3. idt-appを停止します。

    podman stop idt-app
  4. 下記コマンドを実行し、idt-dbコンテナの中身を作成したAmazon Aurora(PostgreSQL互換エディション)インスタンスへ移行します。

    podman exec idt-db bash -c "pg_dump -U idt idt | PGPASSWORD=<password> psql -h <host> -U idt -d postgres -p <port>"
  5. 移行が完了したらIDT Managerを停止します。

    istctl downidt
  6. <IDT_HOME>/bin/idt.ymlから PostgreSQLコンテナのセクションをコメントアウトします。
    下記はInsight DT 3.7におけるコメントアウト例です。

    #  - image: docker.io/library/postgres:13
    #    name: db
    #    env:
    #    - name: POSTGRES_USER
    #      value: idt
    #    - name: POSTGRES_PASSWORD
    #      value: idt
    #    - name: POSTGRES_DB
    #      value: idt
    #    args: ["-c", "config_file=/etc/postgresql/postgresql.conf"]
    #    volumeMounts:
    #    - mountPath: /var/lib/postgresql/data:z
    #      name: idt-postgres
    #    - mountPath: /etc/postgresql/postgresql.conf:z
    #      name: idt-postgresql-conf
    #    - mountPath: /dev/shm
    #      name: dshm
    (中略)
    #  - name: idt-postgres
    #    hostPath:
    #      path: $IDT_POSTGRES_HOME
    #      type: Directory
    #  - name: idt-postgresql-conf
    #    hostPath:
    #      path: $IDT_HOME/config/postgresql.conf
    #      type: File
    (中略)
    #  - name: dshm
    #    hostPath:
    #      path: /dev/shm
    #      type: Directory
  7. <IDT_HOME>/config/config.ymlの「IDT_DATABASE_URL」をAuroraの接続情報に書き換えます。

    apiVersion: v1
    kind: ConfigMap
    metadata:
        name: idt-config
    data:
        IDT_LOG_LEVEL: INFO
        IDT_DATABASE_URL: postgres://idt:<password>@<host>:<port>/postgres
        IDT_REDIS_URL: redis://127.0.0.1:6379/0
        IDT_MAX_REQUEST_SIZE: 100mb
        TZ: Asia/Tokyo
  8. IDT Managerを起動します。

    istctl upidt

4.2.7. アンインストール手順について

IDT ManagerのEC2インスタンスを選択し、[インスタンスを終了]をクリックしてください。

AWSのドキュメントを参照してください。

4.3. IDT Managerの構築と設定(Azure VMの場合)

Azure VM上でInsight DTを使用するには、Azure Marketplaceから、[今すぐ入手する]をクリックしてください。

IDT-Manager
Insight Database Testingを選択した場合

4.3.1. Azure VM上でのIDT Managerの起動

以下の手順に従い、Azure VMを作成して起動します。

  1. Azure MarketplaceからInsight Database TestingのVMイメージを選択して起動します。

  2. VMサイズは、vCPU 4以上、メモリ8GB以上(D4s v4以上推奨)を選択します。

  3. ストレージは、監視対象データベース1インスタンス(1か月)あたり50GB程度のストレージを必要としますが、利用状況により大きく異なります。

    詳細はPISO Managerインストールマニュアルの「蓄積データ領域について」を参照してください。(/dev/sdb:データ領域、/dev/sdc:バックアップ領域、/dev/sdd:PostgreSQLのWALログ領域)
  4. ネットワークセキュリティグループは、SSH(22)に加え、HTTP(7777)を許可します。

    • PISO Targetは、PISO Managerのポート番号7777に対してデータを送信します(既定の動作)。

    • ポート番号7777は、IDT Manager Webコンソールへのアクセスにも利用されます。

      ポート番号の変更については、PISO Managerインストールマニュアルの「ポート番号を変更する」を参照してください。
  5. [詳細]タブの[カスタムデータとcloud-init]のカスタムデータに以下を追加してください。

    #cloud-config
    swap:
      filename: /swapfile
      size: 4G
      maxsize: 4G
  6. Azure VMが起動したら、起動時に指定したユーザーにてSSHで接続することができます。

4.3.2. IDT Managerの設定とインストール

Azure VMではインスタンス起動時にディスクサイズを変更することができないため、以下の手順に従います。

  1. インスタンス起動中の場合、Azure VMを終了します。

  2. Azure PortalのAzure VM画面にて、ディスクを選択し、対象のディスクのサイズを変更します。

  3. Azure VMを起動します。

  4. 以下のコマンドを実行しディスクサイズを拡張します。

    sudo xfs_growfs -d /data/piso-data
    sudo xfs_growfs -d /data/piso-backup

4.3.3. Webコンソールへのアクセス

ブラウザからPISO ManagerとIDT ManagerのWebコンソールに接続します。

PISO Manager Webコンソール

PISO Manager Webコンソールでは、蓄積の設定・確認を行います。

以下のURLへアクセスし、既定のユーザーとパスワードを入力します。

  • http://<IDT ManagerのIPアドレス>:7777/piso/

  • ユーザー名:administrator

  • パスワード:起動したAzure VMの名前

IDT Manager Webコンソール

IDT Manager Webコンソールでは、ターゲットDBへ接続しアセスメントを行います。

以下のURLへアクセスし、既定のユーザーとパスワードを入力します。
初回ログインの場合には、既定の管理者ユーザーでログインし、管理者画面から一般ユーザーを作成します。

  • http://<IDT ManagerのIPアドレス>:7777/idt/

  • ユーザー名:administrator

  • パスワード:起動したAzure VMの名前

4.3.4. アンインストール手順について

IDT ManagerのAzure VMを選択し、削除してください(通常、残しておく必要のあるリソースが他にない場合は、リソースグループごと削除します)。

Azureのドキュメントを参照してください。

4.4. アップグレード

現在使用しているInsight DTが3.0以前の場合

使用中のInsight DTが3.0以前のバージョンの場合、モジュールの更新によるアップグレードはできません。
新規バージョンのInsight DTを利用するには、以下の手順に従い実施してください。

  1. 使用中のInsight DTで、評価SQLセットに使用したCSVファイルを、PISO Manager Webコンソールのマイニングサーチの画面からダウンロードします。

  2. 使用中のInsight DTでの設定内容を記録して別途保存します。
    (作成済みユーザー情報、アセスメント設定、評価SQLセット設定、ターゲットDBの情報など)

  3. 使用中のInsight DTを停止し、新規バージョンのInsight DTを起動します。

  4. 使用中のInsight DTでダウンロードしたCSVファイルは、新規バージョンのInsight DTで評価SQLセット作成時にも引き続き使用可能です。

  5. 使用中のInsight DTでの設定内容を新規バージョンのInsight DTに設定し、評価SQLセットの作成やアセスメントの実行を行います。

    ターゲットDBの状態が変わっている場合は、同じ結果が再現されない場合もあります。
現在使用しているInsight DTが3.1以降の場合

使用中のInsight DTが3.1以降のバージョンの場合、モジュールの更新により最新バージョンにアップグレードできます。
アップグレードを実行する前に、実行中のアセスメントや作成処理中の評価SQLセットなどがないことを確認の上、仮想マシンのバックアップを事前に取得することを推奨します。

  1. 弊社サポートサイト(Service Portal)にログインし、Insight DTのアップグレードインストール用パッケージ(tar.gzファイル)を入手してください。
    パッケージ(tar.gzファイル)を展開すると、以下のようなファイル構成になります。

    • idt_vXXXX.tar.gz

    • upgrade.sh

      アップグレードインストール用パッケージは、Insight DT 3.2から提供しています。
      製品サポートについては、「製品サポートについて」を参照してください。
  2. upgrade.shファイルとidt_vXXXX.tar.gzファイルをVMのinsightユーザーのホームに配置します。

  3. 各仮想マシンのコンソールにログインします。

    • オンプレミスの場合

      1. OSのInsight DT用ユーザー(通常、insight)でログインします。

    • EC2の場合

      1. ec2-userユーザーでログインします。

      2. upgrade.shファイルとidt_vXXXX.tar.gzファイルの所有者をinsightユーザーに変更します。

      3. OSのInsight DT用ユーザー(通常、insight)へ変更します。

    • Azure VMの場合

      1. VM起動時に指定したユーザーでSSH接続でログインします。

      2. upgrade.shファイルとidt_vXXXX.tar.gzファイルの所有者をinsightユーザーに変更します。

      3. OSのInsight DT用ユーザー(通常、insight)へ変更します。

  4. upgrade.shファイルに実行権限を付与します。

    chmod +x upgrade.sh
  5. upgrade.shファイルを、一緒にアップロードしたidt_vXXXX.tar.gzファイルを指定して実行します。

    ./upgrade.sh idt_vXXXX.tar.gz

4.4.1. アップグレード時に実施されるデータベースマイグレーションについて

Insight DTのバージョンによっては、アップグレード時にデータベースマイグレーションを行います。

データベースマイグレーションの処理は、IDT Manager自体のアップグレードとは別に実行されます。
そのため、upgrade.shファイルの実行後にアップグレード完了のメッセージ(launching IDT-Manager: finish)が表示された後も、裏ではデータベースマイグレーションの処理は続いている場合があります。
データベースマイグレーションの実施中にIDT ManagerのWebコンソールを表示しようとするとProxy Errorの画面が表示されますが、データベースマイグレーションが完了後に正常に表示可能になります。

マイグレーションの実行状況を確認したい場合は、以下のコマンドにてマイグレーションのログを確認します。

$ podman logs idt-app

icon ex 表示されるログ

== 20230508034525-assessment-hook: migrating =======
== 20230508034525-assessment-hook: migrated (0.013s)

== 20230525023108-fix-start-time-filter: migrating =======
== 20230525023108-fix-start-time-filter: migrated (0.009s)

== 20230526020019-add-result-record-column-on-assessmentparameter: migrating =======
== 20230526020019-add-result-record-column-on-assessmentparameter: migrated (0.009s)

== 20230626085508-add-db-and-session-fields-to-assessment-results: migrating =======
== 20230626085508-add-db-and-session-fields-to-assessment-results: migrated (0.008s)
  • ==<タイムスタンプ>-<マイグレーション名>: migrating=======
    この行はマイグレーションが実行中であることを示します。

  • ==<タイムスタンプ>-<マイグレーション名>: migrated (<所要時間>s)
    この行はマイグレーションが完了したことを示します。

  • すべてのマイグレーションが「migrated」と表示されるまでは、マイグレーションが未完了であるため、IDT ManagerのWebコンソールを利用することはできません。

データベースマイグレーションの実施対象がデータ件数の多いテーブルである場合に、データベースマイグレーションの完了までに時間を要することがあります。
また、データベースマイグレーションの実施時に一時的に/mnt/piso-dataのディスクを使用しますが、この時使用されるディスクサイズは対象テーブルのデータ件数によって増加します。
そのためアップグレードは、/mnt/piso-dataのディスクサイズに余裕がある状態で実施してください。

4.4.2. 同梱のPISO Managerアップグレード

Insight DTに同梱されているPISO Managerはアップグレードできません。
Insight DTインストール時に同梱されているPISO Managerバージョンのまま使用する形になります。
不具合による問題が発生した場合は、サポート窓口へお問合せください。

5. 操作の流れ

Insight DTにおけるSQLの取得と評価は、以下の一連の流れに従い実施します。
ここではInsight DT 3.6の画面で操作の流れを説明します。

5.1. SQLの取得

PISO ManagerまたはInsight DTの機能を使用して、ソースDB(SQL収集元)に蓄積したSQLを収集し、出力を行います。

5.1.1. PISO Managerの機能でSQLを取得する

5.1.1.1. 蓄積の設定
  • PISO Managerから、ソースDBのデータベースインスタンスに対して蓄積設定を行います。
    蓄積設定は、PISO Manager Webコンソール(http://<IDT ManagerのIPアドレス>:7777/piso/)から実行します。

    詳細は、PISO Manager設定マニュアルの「監視する内容を設定する」を参照してください。
  • PISO TargetがインストールされたデータベースでのSQL実行が蓄積されます。

5.1.1.2. 蓄積したSQLの出力

PISO ManagerとIDT Managerを接続して蓄積したSQLを転送します。

PISO Managerで蓄積したSQLをCSVファイルに出力することもできます。詳細は、「PISO Managerで蓄積したSQLをCSVファイルに出力して受け渡す(方法1)」を参照してください。
  1. PISO Manager Webコンソールの[設定管理]>[PISO Manager設定]>[外部サーバー接続]>[新規作成]をクリックします。

  2. 外部サーバー接続設定画面から以下のように設定して、接続情報を設定します。

    PISO-MGR_外部サーバー接続
    設定項目 設定内容

    外部サーバー接続識別子

    任意の文字列を入力します。

    接続タイプ

    [IDT連携]を選択します。

    IPアドレスとポート番号

    IDT Managerとの同梱環境では「127.0.0.1、7778」を設定します。

    ユーザー名とパスワード

    IDT Managerの一般ユーザーアカウントを入力します。

  3. [保存]をクリックします。

  4. [データ検索]>[マイニングサーチ]>[ジョブ実行条件指定]タブから、マイニングサーチのジョブ実行条件を設定します。

    PISO-MGR_MSジョブ実行
    設定項目 設定内容

    出力形式

    [外部サーバー接続]を選択します。

    外部サーバー接続識別子

    外部サーバー接続設定画面で任意で設定した外部サーバー接続識別子を選択します。

    外部サーバー転送先ディレクトリ名

    /」を入力します。

    出力文字コード

    Insight DT 3.5以降に同梱されているPISO Managerの設定です。
    Insight DTと外部接続で連携する際は、以下の設定にしてください。

    • 出力文字コード:UTF-8

    • 圧縮形式:圧縮なし

    圧縮形式

  5. [SUBMIT]をクリックします。
    マイニングサーチジョブの実行が成功すると、IDT Manager Webコンソールに評価SQLセットが自動作成されます。

  6. 続いて、評価SQLセットが作成されていることを確認します。「PISO Managerの機能でSQLを取得した場合」に進みます。

  • PISO Manager Webコンソール上ではジョブが終了していてもIDT Manager Webコンソール上では処理中の場合があります。

  • マイニングサーチ結果のCSVファイルは、PISO Manager Webコンソールからダウンロードしてバックアップできます。

5.1.2. Insight DTの機能でSQLを取得する

ソースDBが以下のAmazon RDSの場合のみ、Insight DTの機能でSQLを取得できます。

  • Amazon Aurora(PostgreSQL互換エディション)

  • Amazon Aurora(MySQL互換エディション)

  • RDS for PostgreSQL

  • RDS for MySQL

AWSマネジメントコンソールから、以下の設定を行います。

  1. AWS上のネットワーク要件を確認します。
    IDT Managerがインターネットに接続できない閉ざされたサブネット(Private subnet)に所属している場合、エンドポイントを作成する必要があります。

  2. 必要なIAMロールを設定します。
    Amazon RDSからログを取得して評価SQLセットの作成を行う場合に必要なIAMポリシーを作成し、Insight DTを構築したEC2にIAMロールを付与してください。
    詳細は、Amazon RDSからログを取得して評価SQLセットの作成を行う場合を参照してください。

  3. RDSインスタンスまたはAurora DBクラスターにログファイルの出力を設定します。
    詳細は、以下を参照してください。

  4. 続いて、評価SQLセットの作成を行います。「Insight DTの機能でSQLを取得する場合」に進みます。

5.2. SQLの評価(IDT Manager Webコンソール)

以下の手順は、IDT Manager Webコンソール(http://<IDT ManagerのIPアドレス>:7777/idt/)から実行します。
本手順はSQLの評価までの基本的な手順を記載しています。

5.2.1. 評価SQLセットの作成

5.2.1.1. PISO Managerの機能でSQLを取得した場合
  1. グローバルナビゲーションバーから[評価SQLセット]をクリックします。

  2. 「蓄積したSQLの出力」により、評価SQLセット一覧に以下の名前で評価SQLセットが自動作成されていることを確認します。
    評価SQLセット名:<マイニングサーチ名>_<YYYY-MM-DD HH24:MI:SS>

  3. 評価SQLセット名とデータベースは評価SQLセット画面から必要に応じて修正します。

  4. 続いて、ターゲットDBの設定を行います。

5.2.1.2. Insight DTの機能でSQLを取得する場合
  1. グローバルナビゲーションバーから[評価SQLセット]をクリックします。

    評価SQLセット
  2. [新規作成]をクリックし、[Amazon RDSからSQLを取得する]を選択します。

    評価SQLセット_新規作成_画面2
  3. ソースDBの情報を入力して、[新規作成]をクリックします。

    設定項目 設定内容

    評価SQLセット名

    任意の評価SQLセットの名前を入力します。大文字、小文字を区別します。

    リージョン

    東京リージョンの場合、ap-northeast-1と入力します。

    インスタンスID/クラスターID

    ソースDBのインスタンスID、またはクラスターIDを入力します。

    データベース名

    ソースDBのデータベース名を入力します。

  4. 作成した評価SQLセットが一覧に表示されます。ステータスが完了アイコン[完了アイコン]になると完了です。

  5. 続いて、ターゲットDBの設定を行います。

5.2.2. ターゲットDBの設定

  1. グローバルナビゲーションバーから[ターゲットDB]をクリックします。

  2. ターゲットDBの一覧画面から[新規作成]をクリックします。

  3. [既存のDBを登録する]を選択します。

  4. 以下の必要項目を設定した後、[新規作成]をクリックします。

    ターゲットDB_新規作成_画面
    設定項目 設定内容

    ターゲットDB名

    任意のターゲットDBの名前を入力します。

    データベース

    対象のデータベースの種類を選択します。

    バージョン

    データベースのバージョン情報を入力します。

    接続識別子

    事前に指定した接続識別子を入力します(Oracleを選択した場合)。

    DSN(データソース名)

    DSNのIPアドレスを入力します(SQL Serverを選択した場合)。

    ホスト名

    IPアドレスを入力します(PostgreSQL、MySQLを選択した場合)。

    ポート

    ポート番号を入力します(PostgreSQL、MySQLを選択した場合)。

    データベース名

    データベース名を入力します(PostgreSQL、MySQLを選択した場合)。

    テスト接続

    データベースのユーザー名とパスワードを設定して接続を確認します。

    • ターゲットDBの種類によっては、事前に接続設定等が必要です。詳細は「事前準備」を参照してください。

    • Amazon RDSやAmazon AuroraをターゲットDBに設定する場合には、「ターゲットDBの追加」を参照してください。

5.2.3. アセスメントの実行(SQLの評価)

  1. グローバルナビゲーションバーから[アセスメント]をクリックします。

  2. アセスメントの一覧画面から[新規作成]をクリックします。

  3. 以下の必要項目を設定した後、[新規作成]をクリックします。

    アセスメント_新規作成_画面
    設定項目 設定内容

    アセスメント名

    評価結果として保存される任意の名前を入力します。

    評価SQLセット名

    作成した評価SQLセットを選択します。

    ターゲットDB

    作成したターゲットDBを選択します。

    実行タイプ

    [実行]または[パース]を選択します。

    DBへのデータ反映

    ターゲットDBのデータへの反映設定、タイムアウト設定や同時に処理するセッション数を指定します。

    0秒の仮定値

    0.2などの数値を設定します。

    テスト接続

    指定したDBユーザー/パスワードでターゲットDBに接続できるかテストする場合にクリックします。

    バインド変数補完(ターゲットDB)

    必要に応じて設定します。

    期間(セッション)

5.2.4. 結果の確認

  1. グローバルナビゲーションバーから[アセスメント]をクリックします。

  2. 一覧からアセスメント名を選択すると結果のサマリーを確認できます。

    サマリー
  3. 実行結果の詳細は、左のサイドバーから[SQL実行結果一覧]をクリックします。

    SQL実行結果一覧
  4. SQL実行結果一覧画面左の連番(#)を選択して、SQLの詳細などを確認します。

    SQL詳細

6. 基本操作方法

6.1. 事前準備

6.1.1. ターゲットDB設定・接続設定

ソースDBから取得したSQLをターゲットDBへ実行する前に、ターゲットDBのデータベースの種類に応じて、以下の設定を行います。

SQLの取得については「PISO Managerを使用したSQL収集と出力」を参照してください。
6.1.1.1. Oracle Database
接続識別子の指定

ターゲットDBがOracle Databaseの場合、IDT Managerへ接続識別子の設定が必要になります。
接続識別子の指定方法は、2つの方法があります。

IDT Manager Webコンソールから指定する方法

IDT Manager WebコンソールからOracle Databaseへ接続する際の接続識別子に、以下のいずれかの文字列を入力します。
事前にtnsnames.oraを編集する作業を省くことができます。

  • 簡易接続ネーミング・メソッド

    ホスト:ポート/サービス名

    icon ex db-host:1521/ORCL

  • Oracle Net Serviceのキーワード値ペア

    (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp) (HOST=ホスト) (PORT=ポート))(CONNECT_DATA=(SERVICE_NAME=サービス名)))

    icon ex

    (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp) (HOST=db-host) (PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL)))

tnsnames.oraを編集する方法

IDT Managerのファイル<IDT_HOME>/etc/tnsnames.oraを編集して、接続識別子(net_service_name)を指定します。
IDT Manager WebコンソールからOracle Databaseへ接続する際の接続識別子に、ファイルtnsnames.oraで指定した接続識別子を指定してください。

基本的な書式
net_service_name=
    (DESCRIPTION=
        (ADDRESS=(protocol_address_information))
        (CONNECT_DATA=
            (SERVICE_NAME=service_name)
        )
    )
詳細はOracle Databaseのドキュメントを参照してください。
Oracleユーザー権限設定

以下の場合は、Oracle DatabaseのSQL実行ユーザーに権限を付与します。

実行計画取得時にDBMS_XPLAN.DISPLAY_CURSORファンクションを使用する場合
  1. 必要なビューへのSELECT権限を付与します。

    これは任意の設定であり、権限がない場合はexplain plan forを使用します。

    GRANT SELECT ON SYS.V_$SESSION TO ユーザー
    GRANT SELECT ON SYS.V_$SQL TO ユーザー
    GRANT SELECT ON SYS.V_$SQL_PLAN_STATISTICS_ALL TO ユーザー
アセスメントの中断処理で長時間応答の無いSQLの切断を可能にする場合
  1. V$SESSIONのSELECTとセッション切断に必要な権限を付与します。 これは任意の設定あり、アセスメントのタイムアウト設定によって対処できます。

    オンプレミス
    GRANT SELECT ON SYS.V_$SESSION TO ユーザー
    GRANT ALTER SYSTEM TO ユーザー
    Amazon RDS
    GRANT SELECT ON SYS.V_$SESSION TO ユーザー
    GRANT EXECUTE ON RDSADMIN.RDSADMIN_UTIL TO ユーザー
6.1.1.2. MySQL
performance_schemaの有効化

ターゲットDBがMySQLおよびその互換製品の場合、データベース本体のperformance_schemaを有効にする必要があります。
performance_schemaとIDT Managerで使用するイベントが有効であるかを確認します。
それぞれの項目で不足がある場合は有効化手順に従って設定を行います。

有効化確認
  1. performance_schemaの確認
    以下のクエリの結果がValue=Onならばperformance_schemaが有効です。

    > SHOW VARIABLES LIKE 'performance_schema';
    +--------------------+-------+
    | Variable_name      | Value |
    +--------------------+-------+
    | performance_schema | ON    |
    +--------------------+-------+
  2. setup_instrumentsの確認
    以下の操作でstatement/com/Prepareとstatement/com/ExecuteのENABLEDとTIMED両方が「YES」であることを確認します。

    > use performance_schema;
    > select * from setup_instruments where name IN ('statement/com/Prepare', 'statement/com/Execute');
    +-----------------------+---------+-------+
    | NAME                  | ENABLED | TIMED |
    +-----------------------+---------+-------+
    | statement/com/Prepare | YES     | YES   |
    | statement/com/Execute | YES     | YES   |
    +-----------------------+---------+-------+
  3. setup_consumersの確認
    以下の操作でevents_statements_currentとevents_statements_historyのENABLEDが「YES」であることを確認します。

    > use performance_schema;
    > select * from setup_consumers where name IN ('events_statements_current', 'events_statements_history');
    +---------------------------+---------+
    | NAME                      | ENABLED |
    +---------------------------+---------+
    | events_statements_current | YES     |
    | events_statements_history | YES     |
    +---------------------------+---------+
  4. setup_actorsの確認
    評価対象のHOST、USER、ROLEに対してsetup_actorsのENABLEDとHISTORYの両方が「YES」であることを確認します。

    「%」はすべてが対象であることを示しています。

    > use performance_schema;
    > select * from setup_actors;
    +------+------+------+---------+---------+
    | HOST | USER | ROLE | ENABLED | HISTORY |
    +------+------+------+---------+---------+
    | %    | %    | %    | YES     | YES     |
    +------+------+------+---------+---------+
  5. 接続ユーザーの権限の確認

    Insight DTから接続するユーザーにperformance_schemaへのSELECT権限が付与されているかを確認します。

    下記の「権限が適切に付与されている場合」のような結果であれば問題ありません。

    Insight DTから使用するDBアカウントで操作

    > use performance_schema;

    ex 権限が適切に付与されている場合

    > select count(*) from setup_instruments;
    +----------+
    | count(*) |
    +----------+
    |     1210 |
    +----------+

    ex 権限が不足している場合

    > select count(*) from setup_instruments;
    ERROR 1142 (42000): SELECT command denied to user 'ユーザー名'@'localhost' for table 'setup_instruments'
有効化手順
  1. performance_schemaとsetup_instruments、setup_consumersの有効化

    オンプレミスの場合

    my.cnf またはデータベースから読み込まれる設定ファイルのmysqldセクションに以下を追加してデータベースを再起動します。

    [mysqld]
    performance_schema=ON
    performance-schema-instrument='statement/com/Prepare=ON'
    performance-schema-instrument='statement/com/Execute=ON'
    performance-schema-consumer-events_statements_current=ON
    performance-schema-consumer-events_statements_history=ON

    クラウドサービスの場合

    各サービスのドキュメントを参照してください。

  2. setup_actorsの設定
    setup_actorsに計測対象を加えます。

    > use performance_schema;

    すべてを計測対象にする場合

    > insert into setup_actors values ('%','%','%','YES');

    特定のユーザーのみを対象にする場合

    > insert into setup_actors values ('%','対象にするユーザー','%','YES');
  3. 接続ユーザー権限の設定
    以下のクエリで接続ユーザーへperformance_schemaへのSELECT権限を与えます。
    必要ユーザーすべてに対して実行してください。

    > GRANT SELECT ON 'performance_schema'.* TO 'ユーザー名'@'%';
6.1.1.3. SQL Server
データソース名の指定

ターゲットDBがSQL Serverおよびその互換製品の場合、IDT ManagerへODBCデータソース名の設定が必要になります。設定方法は、2つの方法があります。

IDT Manager Webコンソールから指定する方法

IDT Manager WebコンソールからSQL Serverへ接続する際のDSN(データソース名)に、以下の文字列を入力します。
事前にodbc.iniを編集する作業を省くことができます。

  • ODBCデータソース文字列(Driver、UID、PWDは除く)

    Server=ホスト,ポート;Database=データベース;

    icon ex Server=db-host,1433;Database=master;

    ※ AutoTranslate=yes;も追加することを推奨します。

odbc.iniを編集する方法

IDT Managerのファイル<IDT_HOME>/etc/odbc.iniを編集して、データソース名を指定します。
IDT Manager WebコンソールからSQL Serverへ接続する際のDSNに、odbc.iniファイルで指定したデータソース名を指定してください。
Driverは「Driver=ODBC Driver 17 for SQL Server」を指定します。

基本的な書式
[SQL Server]
Driver=ODBC Driver 17 for SQL Server
Server=host,1433
Database=master
詳細はMicrosoftのドキュメントを参照してください。

6.1.2. Amazon RDS上でのログファイル出力設定

Amazon RDSをソースDBとして、ログ情報を取得して評価SQLセットを作成するためには、RDSインスタンスまたはAurora DBクラスターにてログファイル出力の設定が必要です。

Insight DTで直接Amazon RDSのログを取得して評価SQLセットを作成する場合、AWSマイグレーション機能を使用する場合に設定してください。

PISO Managerの機能でAmazon RDSからログを取得する場合には、PISO Managerインストールマニュアルの「監視対象データベースがAmazon RDSの場合」を参照してください。
6.1.2.1. RDS for PostgreSQL、Amazon Aurora(PostgreSQL互換エディション)

RDS for PostgreSQL、Amazon Aurora(PostgreSQL互換エディション)の場合、出力するPostgreSQLログの形式を標準ログと監査ログ(pgAudit)から選択できます。
何も指定しない場合には、標準ログをデフォルトで出力します。

Insight DT 3.3以降の場合にPostgreSQLログの出力形式を選択できます。
Insight DT 3.2以前の場合は「PostgreSQL監査ログ(pgAudit)の出力」に従って設定してください。
PostgreSQL標準ログの出力

PostgreSQL標準ログ形式を変換に使用する場合は、対象データベースのRDS for PostgreSQL、Amazon Aurora(PostgreSQL互換エディション)での標準ログの出力を有効にします。

  1. RDSコンソールを開き、DBパラメータグループ(Aurora DBクラスターではDBクラスターパラメータグループ)に以下の設定を行います。

    • log_statementをALLに設定します。

    • log_rotation_ageを10に設定します。

    • log_connectionsを1(on)に設定します。

    • log_disconnectionsを1(on)に設定します。

    • RDS for PostgreSQLの場合:
      log_filenameをpostgresql.log.%Y-%m-%d-%Hに設定します。

    • Amazon Aurora(PostgreSQL互換エディション)の場合:
      log_filenameをpostgresql.log.%Y-%m-%d-%H%Mに設定します。(通常は分単位(%M)を指定してください。)

PostgreSQL監査ログ(pgAudit)の出力

PostgreSQL監査ログ(pgAudit)形式をデフォルトで変換に使用するためには、以下のように設定を切り替えます。

  1. Insight DTにec2-userユーザーにてSSH接続してログインします。

  2. Insight DTの設定ファイル<IDT_HOME>/config/config.ymlにログ形式の設定を追加します。

    data:
      /* 既存設定に以下を追加 */
      IDT_POSTGRES_LOG_FORMAT: pgaudit
  3. Insight DTを再起動します。

続いて、対象データベースのRDS for PostgreSQL、Amazon Aurora(PostgreSQL互換エディション)での監査ログ(pgAudit)の出力を有効にします。

  1. RDSコンソールを開き、DBパラメータグループ(Aurora DBクラスターではDBクラスターパラメータグループ)に以下の設定を行います。

    • pgaudit.logをALLに設定します。

    • pgaudit.log_parameterを1(on)に設定します。

    • pgaudit.roleをrds_pgauditに設定します。

    • log_rotation_ageを10に設定します。

    • log_connectionsを1(on)に設定します。

    • log_disconnectionsを1(on)に設定します。

    • shared_preload_librariesにpgauditを追加します。(元の設定値は削除しないでください。)

    • RDS for PostgreSQLの場合:
      log_filenameをpostgresql.log.%Y-%m-%d-%Hに設定します。

    • Amazon Aurora(PostgreSQL互換エディション)の場合:
      log_filenameをpostgresql.log.%Y-%m-%d-%H%Mに設定します。(通常は分単位(%M)を指定してください。)

  2. インスタンスを再起動します。

  3. 初めてインスタンスを起動する場合は、データベースにログインし、以下のSQLを実行します。

    [PostgreSQL]
    CREATE ROLE rds_pgaudit;
    CREATE EXTENSION pgaudit;
6.1.2.2. RDS for MySQL、Amazon Aurora(MySQL互換エディション)

対象のデータベースが RDS for MySQL、Amazon Aurora(MySQL互換エディション)の場合、以下の手順で一般ログの出力とファイル出力を有効にします。

  1. RDSコンソールを開き、DBパラメータグループ(Aurora DBクラスターではDBクラスターパラメータグループ)で以下を設定します。

    • general_logをon(1)に設定します。

    • log_outputをFILEに設定します。

  • ログ出力を有効にすると、高スループットのデータベースでパフォーマンスに影響する可能性があります。
    実際のパフォーマンスへの影響は、対象データベースで実行されているワークロードの特性や量に大きく依存するため、事前に影響を確認してください。

  • RDS for MySQLとAmazon Aurora(MySQL互換エディション)の一般ログファイルは、以下の保持期間を過ぎると削除されます。

    RDS for MySQL

    2週間後、またはストレージ領域の2%を超えたら、古いログからログファイルを削除します。

    Amazon Aurora(MySQL互換エディション)

    24時間後、またはストレージ領域の15%を超えたら、古いログからログファイルを削除します。

    AWSマイグレーションによるログファイルの取得が実施される前にログファイルが削除された場合、Insight DTによるアセスメント処理が行われません。
    そのため、ログファイルがすぐに削除されない設定となっていることを確認し、AWSマイグレーションを実施してください。

  • 詳細は、RDS for MySQL データベースログの概要Aurora MySQL データベースログの概要、および、Amazon RDS MySQL DB インスタンスのログを有効にしてモニタリングする方法を教えてください。を参照してください。

6.1.3. 必要なIAM設定について

EC2に構築したIDT Managerで以下の機能を利用する際には、EC2へのIAMロールの設定もしくは必要なIAMロールが付与されたアクセスキーが必要となります。

  • PISO Managerの機能によるAmazon RDSからログの取得

  • Insight DTの機能によるAmazon RDSからログの取得と評価SQLセットの作成

  • Amazon RDSのスナップショットからターゲットDBの作成

  • AWSマイグレーション機能の利用

以下のIAMポリシーを作成し、IDT ManagerのEC2インスタンスへロールを付与します。

  • AWSマイグレーション機能を利用する場合は、「SQL実行先データベース設定」で設定するデータベースのパターンにより必要なIAM設定が異なります。

  • xxxxxxxxxxxxはAWSアカウントID、ap-northeast-1はリージョンに置き換えてください。

AWSマイグレーション機能でスナップショットからRDSインスタンス/Aurora DBクラスターを作成する場合
ターゲットDBの新規作成時にスナップショットからRDSインスタンス/Aurora DBクラスターを作成する場合

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "rds:DescribeDBEngineVersions",
                "rds:DescribeOrderableDBInstanceOptions",
                "ec2:DescribeSecurityGroups"
            ],
            "Resource": "*"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": [
                "rds:DownloadDBLogFilePortion",
                "rds:DescribeDBInstances",
                "rds:DownloadCompleteDBLogFile",
                "rds:DescribeDBLogFiles",
                "rds:DescribeDBClusters"
            ],
            "Resource": [
                "arn:aws:rds:ap-northeast-1:xxxxxxxxxxxx:cluster:*",
                "arn:aws:rds:ap-northeast-1:xxxxxxxxxxxx:db:*"
            ]
        },
        {
            "Sid": "VisualEditor2",
            "Effect": "Allow",
            "Action": [
                "rds:StartDBCluster",
                "rds:StopDBCluster",
                "rds:StartDBInstance",
                "rds:StopDBInstance",
                "rds:CreateDBCluster",
                "rds:CreateDBInstance",
                "rds:ModifyDBInstance",
                "rds:ModifyDBCluster",
                "rds:AddTagsToResource",
                "rds:RestoreDBClusterFromSnapshot",
                "rds:RestoreDBInstanceFromDBSnapshot",
                "rds:DescribeDBClusterParameterGroups",
                "rds:DescribeDBParameterGroups",
                "rds:DescribeOptionGroups",
                "rds:DescribeDBSnapshots",
                "rds:DescribeDBClusterSnapshots",
                "rds:DescribeDBInstances",
                "rds:DescribeDBClusters",
                "rds:DeleteDBCluster",
                "rds:DeleteDBInstance"
            ],
            "Resource": [
                "arn:aws:rds::xxxxxxxxxxxx:global-cluster:*",
                "arn:aws:rds:ap-northeast-1:xxxxxxxxxxxx:db:idt-*",
                "arn:aws:rds:ap-northeast-1:xxxxxxxxxxxx:cluster:idt-*",
                "arn:aws:rds:ap-northeast-1:xxxxxxxxxxxx:pg:*",
                "arn:aws:rds:ap-northeast-1:xxxxxxxxxxxx:cluster-pg:*",
                "arn:aws:rds:*:*:snapshot:*",
                "arn:aws:rds:*:*:cluster-snapshot:*",
                "arn:aws:rds:ap-northeast-1:xxxxxxxxxxxx:subgrp:*",
                "arn:aws:rds:ap-northeast-1:xxxxxxxxxxxx:secgrp:*",
                "arn:aws:rds:ap-northeast-1:xxxxxxxxxxxx:og:*"
            ]
        }
    ]
}

PISO Managerの機能でAmazon RDSからログを取得する場合/
Insight DTの機能でAmazon RDSからログを取得して評価SQLセット作成を行う場合/
AWSマイグレーション機能でスナップショットからRDSインスタンス/Aurora DBクラスターを作成せずに登録済みのターゲットDBを使用する場合

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": [
                "rds:DownloadDBLogFilePortion",
                "rds:DescribeDBInstances",
                "rds:DownloadCompleteDBLogFile",
                "rds:DescribeDBLogFiles",
                "rds:DescribeDBClusters"
            ],
            "Resource": [
                "arn:aws:rds:ap-northeast-1:xxxxxxxxxxxx:cluster:*",
                "arn:aws:rds:ap-northeast-1:xxxxxxxxxxxx:db:*"
            ]
        }
    ]
}

IDT ManagerをEC2インスタンスで構成していない場合は、上記IAMポリシーを付与したIAMユーザーを作成し、アクセスキーとシークレットアクセスキーを用意します。IDT ManagerへSSHでアクセスの上、アクセスキーとシークレットアクセスキーを、/home/insight/.aws/credentialsファイルに以下の書式で記載します。また、PISOでRDSからログを取得する場合は、蓄積設定でアクセスキー情報を設定します。

[default]
aws_access_key_id=AKIAIOSFODNN7EXAMPLE
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

認証情報ファイルの詳細は、設定ファイルと認証情報ファイルの設定を参照してください。

6.1.4. PISO Managerを使用したSQL収集と出力

Insight DTからソースDBの評価SQLセットを作成する前に、ソースDBからSQLを取得する必要があります。
ここでは、PISO Managerの機能でSQLを取得して、IDT Managerに受け渡し、評価SQLセットを作成するまでの操作を説明します。

PISO Manager Webコンソールへアクセスして、以下のいずれかの方法でSQLを取得してください。

6.1.4.1. PISO Managerで蓄積したSQLをCSVファイルに出力して受け渡す(方法1)
  1. ブラウザからPISO Manager Webコンソールへ接続します。

  2. [データ検索]>[マイニングサーチ]をクリックします。

  3. [ジョブ実行条件指定]タブから以下のように設定して、蓄積したSQLをCSVファイルへ出力します。

    ja piso manager ms setting
    設定項目 設定内容

    ジョブ名

    マイニングサーチのジョブ名を入力します。

    最大実行時間

    マイニングサーチが実行可能な最大時間幅(分)を入力します。

    最大取得行数

    マイニングサーチで取得する行数を入力します。

    出力形式

    [標準(MSテーブル)][CSV形式][外部サーバー接続]のうち、[CSV形式]を選択します。
    [CSV形式]は、CSVファイルにマイニングサーチ結果を出力します。

    出力ディレクトリ

    マイニングサーチ結果を指定したディレクトリに転送します。
    IDT Manager内に転送する場合は、以下のディレクトリを指定します。

    • Insight DT 3.1以前の場合
      /mnt/piso-data/idt-data/data/src
      (Azure VMにIDT Managerを構築した場合/data/piso-data/idt-data/data/src

    • Insight DT 3.2以降の場合
      /mnt/piso-data/idt-data/src
      (Azure VMにIDT Managerを構築した場合/data/piso-data/idt-data/src

    出力文字コード

    Insight DT 3.5以降に同梱されているPISO Managerの設定です。
    Insight DTと外部接続で連携する際は、以下の設定にしてください。

    • 出力文字コード:UTF-8

    • 圧縮形式:圧縮なし

    圧縮形式

  4. [SQL監視]タブを選択した状態にします。

    条件オプションの詳細については、PISO Manager Webコンソール右上のhelp btnアイコンからPISO Managerの設定マニュアルを開き、「[ジョブ実行条件指定]タブ」を参照してください。
  5. [SUBMIT]をクリックします。

  6. マイニングサーチが実行され、[終了ジョブ一覧]にMS_JOB名.csvという名前でマイニングサーチ結果が作成されます。

    ja piso manager ms completed
  7. 出力したCSVファイルをアップロードして、IDT Manager Webコンソールから評価SQLセットを作成してください。

    詳細は、「評価SQLセットの作成」を参照してください。
6.1.4.2. PISO ManagerとIDT Managerを接続して蓄積したSQLを転送する(方法2)
  1. ブラウザからPISO Manager Webコンソールへ接続します。

  2. [設定管理]>[PISO Manager設定]>[外部サーバー接続]>[新規作成]をクリックします。

  3. 外部サーバー接続設定画面から以下のように設定して、接続情報を設定します。

    PISO-MGR_外部サーバー接続
    設定項目 設定内容

    外部サーバー接続識別子

    任意の文字列を入力します。

    接続タイプ

    接続する外部サーバーのタイプを選択します。
    ここでは、[IDT連携]を選択します。

    IPアドレス
    ポート番号

    外部サーバー(IDT Manager)が起動しているIPアドレスとポート番号を入力します。
    IDT Managerとの同梱環境では「127.0.0.1、7778」を設定します。

    ユーザー名
    パスワード

    外部サーバーに転送を行うOSユーザー名とパスワードを入力します。
    ここでは、IDT Managerの一般ユーザーアカウントとパスワードを入力します。

  4. [保存]をクリックします。

  5. [データ検索]>[マイニングサーチ]>[ジョブ実行条件指定]タブから、マイニングサーチのジョブ実行条件を設定します。

    PISO-MGR_MSジョブ実行
    設定項目 設定内容

    ジョブ名

    マイニングサーチのジョブ名を入力します。

    最大実行時間

    マイニングサーチが実行可能な最大時間幅(分)を入力します。

    最大取得行数

    マイニングサーチで取得する行数を入力します。

    出力形式

    [標準(MSテーブル)][CSV形式][外部サーバー接続]のうち、[外部サーバー接続]を選択します。
    [外部サーバー接続]は、事前に設定した外部サーバー接続識別子に対する外部サーバーに指定されたディレクトリにデータを転送します。 マイニングサーチ結果を外部サーバーに転送したい場合は、この形式を選択します。

    外部サーバー接続識別子

    外部サーバー接続設定画面で任意で設定した外部サーバー接続識別子を選択します。

    外部サーバー転送先ディレクトリ名

    /」を入力します。

    出力文字コード

    Insight DT 3.5以降に同梱されているPISO Managerの設定です。
    Insight DTと外部接続で連携する際は、以下の設定にしてください。

    • 出力文字コード:UTF-8

    • 圧縮形式:圧縮なし

    圧縮形式

  6. [SUBMIT]をクリックします。

  7. ジョブ実行が成功すると、IDT Manager Webコンソールの評価SQLセット一覧に以下の名前で評価SQLセットが作成されます。
    評価SQLセット名:<マイニングサーチ名>_<UNIX時刻秒>
    (Insight DT 3.5以降は「<マイニングサーチ名>_<YYYY-MM-DD HH24:MI:SS>」)

    評価SQLセット_結果
  8. 評価SQLセット名とデータベースは評価SQLセット画面から必要に応じて修正します。

    詳細は、「修正SQLセット」を参照してください。
  • PISO Manager Webコンソール上ではジョブが終了していてもIDT Manager Webコンソール上では処理中の場合があります。

  • マイニングサーチ結果のCSVファイルは、PISO Manager Webコンソールからダウンロードしてバックアップできます。

6.2. IDT Manager Webコンソールへログイン

  1. ブラウザからIDT ManagerのIDT Manager Webコンソールへ接続します。
    以下のURLへアクセスしてください。

    http://<IDT ManagerのIPアドレス>:7777/idt/

  2. 初回ログインの場合には、管理者ユーザーのユーザー名「administrator」と初期パスワードを入力し、[ログイン]をクリックします。
    管理者ユーザーの初期パスワードは、オンプレミスの場合は「insight」、EC2の場合は、EC2インスタンスID、Azure VMの場合はVM名です。
    すでに一般ユーザーを作成済みの場合は、一般ユーザーのユーザー名とパスワードを入力し、[ログイン]をクリックします。

    ログイン画面
  • ライセンスパスワードを設定しないと一般ユーザーでログインすることはできません(時間課金でAWS Marketplaceからサブスクライブした場合を除く)。ライセンスパスワード設定については、「ライセンス管理」を参照してください。

  • 一般ユーザーの作成方法については、「一般ユーザーの新規作成」を参照してください。

  • パスワード変更については、「アカウント管理」を参照してください。

6.3. ユーザーアカウント

IDT Manager Webコンソールにログインするユーザーアカウントには、「管理者ユーザー」と「一般ユーザー」があります。

管理者ユーザーではユーザー管理とライセンス管理のみを行い、一般ユーザーではIDT Managerの各設定と処理の実行および確認を行います。

管理者ユーザーでログインすると管理者画面が表示されます。
管理者画面では管理者ユーザーのパスワード変更と、一般ユーザーの作成、削除、パスワードのリセット、ライセンスパスワードの設定と確認を行うことができます。

一般ユーザーでログインするとIDT Managerの操作画面が表示されます。
IDT Managerの各設定(評価SQLセット、アセスメントetc)とユーザー自身のパスワード変更を行うことができます。

6.3.1. 管理者ユーザー

管理者ユーザーでログインすると、管理者画面の左メニューにユーザー管理とライセンス管理が表示されます。

6.3.1.1. ユーザー管理

一般ユーザーの新規作成、削除、パスワードのリセットを行います。

一般ユーザーの新規作成
  1. IDT Manager Webコンソールに管理者ユーザーでログインします。
    ユーザー名は「administrator」、初期パスワードは、オンプレミスの場合は「insight」、EC2の場合は、EC2インスタンスID、Azure VMの場合はVM名です。
    ユーザー一覧が表示されます。

    一般ユーザー
    項目 説明

    ユーザー名

    管理者ユーザーと一般ユーザー名を表示します。

    ロール

    管理者ユーザーは「admin」、一般ユーザーは「normal」と表示します。

    許可するAWSプロファイル名

    一般ユーザーに許可するAWSプロファイル名を表示します。

    操作

    • リセットアイコンicon pass resetをクリックすると、ユーザーの既存のパスワードをリセットし、ランダムな文字列でパスワードを自動生成します。

    • ごみ箱アイコンicon binをクリックすると、該当するユーザーを削除します。

    • 雲+鍵アイコンicon cloudkeyをクリックすると、許可するAWSプロファイル名を更新できます。

      aws profile name

    Insight DT 3.7以降で表示されます。

  2. [新規作成]をクリックします。

  3. ユーザー名とパスワードを設定します。許可するAWSプロファイル名は、最低1件以上選択する必要があります。
    [保存]をクリックします。

    ユーザー名は255文字以内、パスワードは6文字以上で設定してください。
    管理者_一般ユーザー作成v3.7
  4. ユーザー一覧に新規の一般ユーザーが追加されます。

一般ユーザーのパスワード変更については、「アカウント管理」を参照してください。
6.3.1.2. システムログのダウンロード

IDT Managerのシステムのログをダウンロードできます。
IDT Managerの動作について弊社で調査が必要な場合に、ログファイルの送付を依頼する場合があります。
その場合にログファイルをダウンロードし、サポート担当まで共有してください。

  1. IDT Manager Webコンソールに管理者ユーザーでログインします。

  2. [ログ]の[ログをダウンロードする]をクリックします。

    ログ
  3. ダウンロードされたログファイル(ZIP)を指定された方法でサポート担当へ共有します。

  • この機能は、Insight DT 3.2以降で使用できます。

  • Insight DT 3.1以前の場合、IDT Managerのログファイルは<IDT_HOME>/logディレクトリに格納されています。
    ログファイルの送付は、具体的に必要なファイル、ファイルの送付先などがサポート担当より案内されます。

6.3.1.3. ライセンス管理

IDT Managerを使用するにはライセンスパスワードの設定が必要です(時間課金でAWS Marketplaceからサブスクライブした場合を除く)。
ライセンスパスワードの入手方法については販売代理店または販売元にお問合せください。
また、一般ユーザーでのログインは、ライセンスパスワードを設定してからログインできます。

  1. IDT Manager Webコンソールに管理者ユーザーでログインします。

  2. [ライセンス管理]の[ライセンス更新]をクリックします。

    管理者_ライセンス管理
  3. 入手したライセンスパスワードを入力して[保存]をクリックします。

    管理者_ライセンス更新
  4. ライセンス認証が正しく行われると、ライセンスが設定された旨のメッセージが表示され、ログイン画面に戻ります。

  5. 管理者ユーザーでログインし、[ライセンス管理]を選択すると、設定したライセンスパスワード情報を確認できます。

    管理者_ライセンス確認
    項目 説明

    ライセンスパスワード

    登録されているライセンスパスワード(16文字)の下4文字を表示します。

    トライアル

    登録されているライセンスパスワードが、正式版のときは「No」、トライアルのときは「Yes」を表示します。

    ホスト

    ライセンスパスワードが発行されたホストIDです。 無指定の場合は「NONE」を表示します。トライアルの場合は存在しません。

    有効期限

    ライセンスの有効期限(終了日)です。無期限の場合は「NEVER」を表示します。

    プロダクト名

    ライセンスされているプロダクト名です。

    状態

    パスワードが使用可能であれば「Valid」を表示します。

トライアルのライセンスパスワードを2回続けて設定することはできません。
6.3.1.4. 管理者ユーザーのパスワードのリセット

何らかの理由で管理者ユーザーとしてログインできなくなってしまった場合、管理者ユーザー「administrator」のパスワードをリセットすることが可能です。

  1. OSのInsight DT用ユーザー(通常はinsight)で仮想マシンにログインします。

  2. XXXXXXに設定したいパスワードを指定して、以下のコマンドを実行します。

    idtctl reset-admin-password XXXXXX
この機能は、Insight DT 3.2以降で使用できます。

6.3.2. 一般ユーザー

一般ユーザーでログインすると、IDT Managerの操作画面が表示されます。

user top page

6.4. 画面説明

Insight DT Webコンソールにログインして表示されるトップ画面について説明します。
以下、一般ユーザーでログインした場合を例に説明します。

ナビゲーションバー
番号 項目名 説明

グローバルナビゲーションバー

全ページに共通して表示され、Insight DTの主要な設定が表示されます。
一般ユーザーでログインした場合に表示されます。

Language

Webコンソール画面の言語を日本語または英語に切り替えます。
詳細は、「言語切り替え」を参照してください。

アカウント名

アカウントのパスワード変更、バージョン情報や各マニュアルの参照、ログアウトを行います。

ローカルナビゲーションバー

各メニューで行う設定がボタンで表示されます。

フィルタ

各メニュー画面を選択すると表示される一覧について、絞り込み検索を行います。
この機能は、Insight DT 3.6以降で使用できます。
詳細は、「フィルタ」を参照してください。

6.4.1. 言語切り替え

IDT Manager Webコンソールのメニューなどを表示する言語は、日本語と英語(English)に対応しています。
[Language]から表示したい言語に切り替えることができます。
言語の選択状態はブラウザに保存されます。

言語切り替え

6.4.2. アカウント管理

IDT Manager Webコンソールに接続するにあたってログイン用のパスワードが必要です。
ログインしているユーザーアカウントのパスワードを変更できます。

ユーザーの初期パスワードは、変更することを推奨します。
  1. IDT Manager Webコンソールのログイン画面から、パスワードを変更する一般ユーザーでログインします。

  2. グローバルナビゲーションバーの[<一般ユーザー名>]のメニューから、[アカウント管理]をクリックします。

    アカウント管理
  3. 以下の項目を入力して、画面下部の[保存]をクリックします。

    アカウント管理_保存
    項目名 説明

    現在のパスワード

    現在のパスワードを入力します。

    パスワード

    新しく設定するパスワードを入力します(6文字以上)。

    パスワード(確認用)

    確認用パスワードです。
    上記パスワードと同じパスワードを入力します。

  4. パスワード変更が成功した場合には、自動でログアウトしてログイン画面に変ります。

以上でパスワードの変更が完了しました。
次回IDT Manager Webコンソールにログインする時から、今回設定したパスワードを使用します。

管理者ユーザーによるパスワードのリセットについては、ユーザー管理の「操作」項目を参照してください。

6.4.3. バージョン情報

使用しているIDT Managerのバージョンを確認できます。

  1. グローバルナビゲーションバーの[<一般ユーザー名>]のメニューから、[バージョン情報]をクリックします。

  2. バージョンの情報が表示されます。

    バージョン情報_表示

6.4.4. マニュアル

本マニュアルを表示します。

  1. グローバルナビゲーションバーの[<一般ユーザー名>]のメニューから、[マニュアル]をクリックします。

6.4.5. APIドキュメント

Insight DTでは、REST API(Representational State Transfer API)を用意しています。

  1. グローバルナビゲーションバーの[<一般ユーザー名>]のメニューから、[APIドキュメント]をクリックします。
    APIドキュメントが表示されます。

6.4.6. フィルタ

ターゲットDB、修正SQLセット、評価SQLセット、アセスメント、AWSマイグレーションの一覧画面では、フィルタ機能を使用して一覧の絞り込み検索(フィルタリング)ができます。

この機能は、Insight DT 3.6以降で使用できます。

フィルタに使用できる属性は以下のとおりです。

  • 名前

  • メモ

  • 更新日時

  • 作成日時

検索文字(値)に使用できるフィルタ条件は以下のとおりです。

フィルタ条件 説明

と一致

入力された値と属性の値が完全に一致するデータを絞り込みます。大文字小文字を区別します。
この条件は「名前」「メモ」属性に適用されます。
例えば、「名前が『sample』と一致」というフィルタは、名前が「sample」と一致するデータのみを表示します。

を含む

属性の値が入力された値を部分的に含むデータを絞り込みます。大文字小文字は区別されません。
この条件は「名前」「メモ」属性に適用されます。
例えば、「メモが『test』を含む」というフィルタは、メモの中に「test」が部分文字列として存在するすべてのデータを表示します。

より前

入力された値よりも前の日時を持つデータを絞り込みます。
この条件は「更新日時」「作成日時」属性に適用されます。指定された日時は含まれません。
例えば、『更新日時が『2023-07-11 17:46:00』より前』というフィルタは、更新日時が「2023-07-11 17:46:00」よりも前のすべてのデータを表示します。

より後

入力された値と同じ、またはそれよりも後の日時を持つデータを絞り込みます。
この条件は「更新日時」と「作成日時」属性に適用されます。
例えば、「作成日時が『2023-07-11 17:46:00』より後」というフィルタは、作成日時が「2023-07-11 17:46:00」と同じ、またはそれよりも後のすべてのデータを表示します。

  1. フィルタ入力欄に文字を入力するとフィルタの候補が表示されます。
    属性が検索文字「と一致」「を含む」「より前」「より後」の候補から選択します。

    navi filter2
  2. 入力欄のカレンダーアイコンicon calendarをクリックすると、入力フォームから日付時間を入力できます。

    navi filter3
  3. 日付時間が入力された入力欄をクリックすると、フィルタの候補が表示されます。

    navi filter4
  4. 更新日時、作成日時によるフィルタは、入力欄に以下の形式の文字列を入力することで表示されます。
    YYYY-MM-DD HH:MM:SS形式

  5. 表示されたフィルタの候補を選択することでフィルタが適用されます。

  6. 適用中のフィルタは入力欄右にチップとして表示されます。
    チップの[×]ボタンをクリックすると適用を解除できます。
    チップ([×]ボタン以外)をクリックすると値が入力欄に戻り、適用されているフィルタは解除されます。
    各属性に対して一度に適用できるフィルタは1つです。適用中のフィルタはフィルタの候補に表示されなくなります。

    navi filter

6.5. 評価SQLセット

評価SQLセットでは、取得したSQLをターゲットDBへ実行できるように専用の評価SQLセットを作成、または編集します。
評価SQLセットを作成する前に、ソースDBで蓄積したSQLを収集し出力させる必要があります。

6.5.1. 評価SQLセットの作成

評価するSQLの集まりである「評価SQLセット」を作成します。

  1. IDT Manager Webコンソールのグローバルナビゲーションバーから[評価SQLセット]をクリックします。

    評価SQLセット一覧画面が表示されます。

    評価SQLセット
  2. ローカルナビゲーションバーから[新規作成]をクリックします。

  3. 必要な値を入力した後、画面下部の[新規作成]をクリックします。

    評価SQLセット_新規作成_画面
    CSVファイルを選択する
    評価SQLセット_新規作成_画面2
    Amazon RDSからSQLを取得する
    評価SQLセット_新規作成_画面3
    DBのログから作成する
    項目名 説明

    評価SQLセット名

    評価SQLセットの名前を入力します。
    大文字、小文字を区別します。

    評価SQLセットのソース※1

    [CSVファイルを選択する][Amazon RDSからSQLを取得する]※1[DBのログから作成する]※2のいずれかを選択します。

    [Amazon RDSからSQLを取得する]を使用するには、適切なIAMの設定が必要となります。詳細は「必要なIAM設定について」を参照してください。

    CSVファイルを選択する

    データ元ファイル

    変換するデータ(CSVファイル、複数のCSVファイルを圧縮したZIPファイル)のファイルパスを指定します。
    複数のCSVファイルを圧縮したZIPファイルを使用する場合、各CSVファイルのヘッダーが一致している必要があります。

    [CSVファイルをアップロードする]のトグルスイッチを「オン」にすると、CSVファイルをローカルPCからIDT Managerにアップロードして評価SQLセットを作成します。
    IDT Manager内のファイルを指定する場合は、「オフ」にします。
    IDT Manager内の以下のディレクトリに配置したCSVファイルが表示されますので選択してください。

    • Insight DT 3.1以前の場合
      /mnt/piso-data/idt-data/data/src
      (Azure VMにIDT Managerを構築した場合/data/piso-data/idt-data/data/src

    • Insight DT 3.2以降の場合
      /mnt/piso-data/idt-data/src
      (Azure VMにIDT Managerを構築した場合/data/piso-data/idt-data/src

    評価SQLセットのソースにCSVファイルを選択時に表示されます。

    データベース

    SQLを収集するソースDBの種類をOracle、PostgreSQL、SQL Server、MySQLの中から選択します。
    評価SQLセットのソースにCSVファイルを選択時に表示されます。

    Amazon RDSからSQLを取得する※1

    使用するAWSプロファイル名※3

    使用するAWSプロファイル名を選択します。「デフォルト」を選択した場合、共有AWS認証情報ファイルのdefault設定が存在すればそれを使用します。存在しない場合、IAMロールの設定で認証を試みます。
    AWSプロファイル名を指定した場合、指定したAWSプロファイル名で認証を行います。無効なAWSプロファイル名の場合、エラーが発生します。

    リージョン

    SQL収集元データベースのデータベースインスタンスまたはクラスターがあるリージョンを指定します。
    評価SQLセットのソースにAmazon RDSを選択時に表示されます。

    インスタンスID/クラスターID

    SQL収集元データベース(ソースDB)のインスタンスIDを指定します。
    対象がAurora DBクラスターの場合にはクラスターIDを指定します。
    評価SQLセットのソースにAmazon RDSを選択時に表示されます。

    データベース名

    SQL収集元データベースのデータベース名を指定します。
    インスタンス内で複数のデータベースを運用していて、それらをテスト対象としたい場合は、AWSマイグレーションは別々に設定する必要があります。
    評価SQLセットのソースにAmazon RDSを選択時に表示されます。

    高度な取得設定
    SQL取得開始日時/SQL取得終了日時

    SQL収集元データベースからSQLを収集する日時を指定します。
    すでに出力されているような古いSQL情報をテスト対象としたくない場合に指定します。
    指定しない場合は、取得できる最も古いデータまで遡ります。
    評価SQLセットのソースにAmazon RDSを選択時に表示されます。

    DBのログから作成する※2

    ログファイル

    SQL収集元のデータベースから取得したログファイルのファイルパスを指定します。
    ZIPファイルにまとめてアップロードも可能です。
    評価SQLセットのソースにDBのログを選択時に表示されます。

    • Insight DT 3.4以前のバージョンは、内容量が2GBを超えるZIPファイルに対応していません。

    • ZIPファイル名とZIPに含まれるファイルの名前は、半角英数とファイル名として使用できる半角記号のみです。

    ログファイル種別

    ログファイルを取得したSQL収集元のデータベースの種類を選択します。
    評価SQLセットのソースにDBのログを選択時に表示されます。 以下のログファイルに対応しています。

    • PostgreSQL

    • MySQL

    • MySQL 5.7 互換 Aurora MySQL バージョン2

    SQLの重複を排除する

    トグルスイッチを「オン」にすると、重複するSQLを排除し、ユニークなSQLのみの評価SQLセットを作成します。

    メモ※1

    評価SQLセットについてのメモを入力します。

    ※1 この機能は、Insight DT 3.2以降で使用できます。
    ※2 この機能は、Insight DT 3.4以降で使用できます。
    PostgreSQL、MySQLのログファイルにのみ対応しています。
    制限事項については、「[DBのログから作成する]における制限」を参照してください。
    ※3 この機能は、Insight DT 3.7以降で使用できます。

評価SQLセットの作成が開始されると、評価SQLセットの行頭のアイコンで進行状況を確認できます。
ステータスが完了アイコン[完了アイコン]になると作成の完了です。
評価SQLセットの作成はデータ量に応じて数分から数十分かかります。

ope tds results

6.5.2. 評価SQLセットのSQL詳細

評価SQLセットを作成した後、評価SQLセットの中のSQLの詳細を確認します。
評価SQLセットのSQLをターゲットDBへアセスメントする前に、作業量の確認等のために使用してください。

  1. 評価SQLセットの一覧画面から詳細情報を確認する評価SQLセット名を選択します。

    評価SQLセット_選択
  2. サマリー画面が表示されます。

    • SQL詳細情報の一覧作成に成功した場合には、作成オプション、サマリー、SQL情報を表示します。

      評価SQLセット_詳細_成功

      SQLテキストのicon arrowをクリックすると、SQL全文を確認することができます。

      評価SQLセット_詳細_成功
    • SQL詳細情報の一覧作成に失敗した場合には、作成オプション、エラーメッセージを表示します。

      評価SQLセット_詳細_失敗
項目の詳細については、「使用している項目名について」を参照してください。

6.5.3. 評価SQLセットの結合

複数の評価SQLセットを結合して1つの評価SQLセットを作成します。

  1. 評価SQLセットの一覧画面から結合する評価SQLセットにチェックを入れます。

    評価SQLセットの結合
  2. ローカルナビゲーションバーから[結合]をクリックします。

  3. 新たに生成する評価SQLセット名を入力し、結合するSQLセットの順番をドラッグアンドドロップで並べ替えます。
    画面下部にある[結合]をクリックします。

    結合の名前
    項目名 説明

    評価SQLセット名

    新たに生成する評価SQLセットの名前を入力します。既存の評価SQLセット名と異なる名前にしてください。
    大文字、小文字を区別します。

    メモ

    修正SQLセットについてのメモを入力します。

評価SQLセットの一覧に情報が追加され、完了アイコン[完了アイコン]になると完了です。
評価SQLセットを作成中はアイコンが[作成アイコン]になります。完了まで時間がかかる場合があります。

  • 評価SQLセットの一覧で、結合によって作成された評価SQLセットの[データソース]項目には結合元の評価SQLセット名が表示されます。
    (通常、一覧の[データソース]には元となったCSVファイルやRDS、ログファイルの名称が表示されます。)

  • この機能は、Insight DT 3.6以降で使用できます。

6.5.4. 評価SQLセットの編集

  1. 評価SQLセットの一覧画面から編集する評価SQLセットにチェックを入れます。

  2. ローカルナビゲーションバーから[編集]をクリックします。

    評価SQLセット_チェック
  3. 必要な値を入力した後、画面下部にある[保存]をクリックします。

    評価SQLセット_編集_画面
    項目名 説明

    評価SQLセット名

    変更する評価SQLセット名を入力します。

    データベース

    変更するデータベースの種類を選択します。
    CSVファイルを選択して評価SQLセットを作成した場合は、データベースを変更できます。
    Amazon RDSからSQLを取得して評価SQLセットを作成した場合は、データベースを変更できません。

    メモ

    評価SQLセットについてメモを入力します。

    この機能は、Insight DT 3.2以降で使用できます。

評価SQLセットの一覧の表示が変更になると、編集の完了です。

6.5.5. 評価SQLセットのコピー

  1. 評価SQLセットの一覧画面からコピーする評価SQLセットにチェックを入れます。

  2. ローカルナビゲーションバーから[コピー]をクリックします。

  3. 必要な値を入力した後、画面下部にある[保存]をクリックします。

    評価SQLセット_コピー_画面
    項目名 説明

    コピー元評価SQLセット名

    コピー元の評価SQLセットが表示されています。

    新規評価SQLセット名

    コピーして作成される評価SQLセットの名前を入力します。
    大文字、小文字を区別します。

    SQLの重複を排除する

    トグルスイッチを「オン」にすると、重複するSQLを排除し、ユニークなSQLのみの評価SQLセットのコピーを作成します。

    この機能は、Insight DT 3.3以降で使用できます。

    メモ

    コピーして作成される評価SQLセットについてメモを入力します。

    この機能は、Insight DT 3.2以降で使用できます。
    SQLの絞り込み(Insight DT 3.5以降)
    項目名 説明

    除外したいSQLの正規表現

    入力された正規表現にマッチするSQLを除外します。大文字と小文字を区別します。
    icon ex 「test_table」と「test_value」が含まれるSQLを除外したい場合には「test_table|test_value」と入力します。

    対象DBユーザー

    DBユーザーでフィルタリングすることができます。

    期間(SQL開始時刻)

    SQL開始時刻でフィルタリングすることができます。

一覧に評価SQLセットのコピーが追加になり、ステータスが完了アイコン[完了アイコン]になるとコピーの完了です。
評価SQLセットのコピーはデータ量に応じて数分から数十分かかります。

6.5.6. 評価SQLセットのユーザー変更

評価SQLセットに格納されているDBユーザー名を変更します。
ソースDBとターゲットDBでDBユーザー名が異なる際に使用してください。

  1. 評価SQLセットの一覧画面からユーザー名を変更する評価SQLセットにチェックを入れます。

  2. ローカルナビゲーションバーから[ユーザー変更]をクリックします。

  3. 既存ユーザー名が表示されます。
    変更するDBユーザーの項目に、新たなDBユーザー名を入力し、画面下部にある[適用]をクリックします。

    評価SQLセット_ユーザー変更_画面

一覧のステータスが完了アイコン[完了アイコン]になると変更の完了です。
評価SQLセットの変更はデータ量に応じて数分から数十分かかります。

6.5.7. 評価SQLセットの外部連携

評価SQLに対して、修正したSQLをアップロードして適用します。

  1. 評価SQLセットの一覧画面から適用する評価SQLセットにチェックを入れます。

  2. ローカルナビゲーションバーから[外部連携]をクリックします。

  3. 外部連携画面が表示されます。icon ope clipまたは入力欄をクリックし、ファイルを選択してください。
    画面下部にある[適用]をクリックします。

    評価SQLセット_外部連携

6.5.8. 評価SQLセットのエクスポート

選択した評価SQLセットをPISO Managerのマイニングサーチ形式のCSVファイルでエクスポートします。
ZIP圧縮されたCSVファイルがダウンロードされます。

  1. 評価SQLセットの一覧画面からエクスポートする評価SQLセットにチェックを入れます。

  2. ローカルナビゲーションバーから[エクスポート]をクリックします。

  3. エクスポート画面が表示されます。メッセージを確認後、[エクスポート]をクリックします。

    評価SQLセット_エクスポート
この機能は、Insight DT 3.4以降から使用できます。

6.5.9. 評価SQLセットの削除

  1. 評価SQLセットの一覧画面から削除する評価SQLセットにチェックを入れます。

  2. ローカルナビゲーションバーから[削除]をクリックします。

  3. 確認用画面が表示されます。削除する評価SQLセットを確認してください。
    問題が無ければ、画面下部にある[削除]をクリックしてください。

    評価SQLセット_削除_確認

一覧から、該当の評価SQLセット名がなくなると削除の完了です。
評価SQLセットの削除はデータ量に応じて数分かかる場合があります。

6.5.10. ログの確認

ログのicon logをクリックすると、評価SQLセットを作成した際のログを確認することができます。
また、利用可能なログはダウンロードできます。

この機能は、Insight DT 3.2以降で使用できます。

6.6. ターゲットDB

評価SQLセットを実行するターゲットDBを登録、または編集します。

  1. IDT Manager Webコンソールのグローバルナビゲーションバーから[ターゲットDB]をクリックします。

    ターゲットDBの一覧画面が表示されます。

    ターゲットDB

6.6.1. ターゲットDBの追加

  1. ローカルナビゲーションバーから[新規作成]をクリックします。

  2. [既存のDBを登録する][スナップショットからRDSインスタンス/Auroraクラスタを作成する]のいずれかを選択します。

    [スナップショットからRDSインスタンス/Auroraクラスタを作成する]は、Insight DT 3.3以降で設定できます。
    設定するためには、AWSへの権限が必要です。詳細は、「必要なIAM設定について」を参照してください。
  3. 必要な値を入力した後、画面下部の[新規作成]をクリックします。

    [既存のDBを登録する]を選択する場合
    ターゲットDB_新規作成_画面
    項目名 説明

    ターゲットDB名

    任意のターゲットDBの名前を入力します。
    大文字、小文字を区別します。

    メモ

    ターゲットDBについてメモを入力します。

    この機能は、Insight DT 3.2以降で使用できます。

    データベース

    ターゲットDBの種類を選択します。

    バージョン

    ターゲットDBのバージョンを入力します。

    接続識別子

    接続識別子に簡易接続ネーミング・メソッドを使用した文字列、またはOracle Net Servicesのキーワード値ペアを入力します。または、事前に指定した接続識別子を入力します。
    データベースにOracleを選択時に表示されます。

    接続識別子の指定方法については、「接続識別子の指定」を参照してください。

    DSN

    Driver、UID、PWDを除いたODBCデータソース文字列を入力します。または、事前に指定したDSN(データソース名)を入力します。
    データベースにSQL Serverを選択時に表示されます。

    DSNの指定方法については、「データソース名の指定」を参照してください。

    ホスト名

    ホスト名を入力します。
    データベースにPostgreSQL、MySQLを選択時に表示されます。

    Amazon Auroraの場合は、通常はクラスターエンドポイントを指定しますが、テスト目的に応じ、リーダーエンドポイントやインスタンスエンドポイントを指定します。

    ポート

    ポート番号を入力します。
    データベースにPostgreSQL、MySQLを選択時に表示されます。

    データベース名

    データベース名を入力します。
    データベースにPostgreSQL、MySQLを選択時に表示されます。

    テスト接続

    ターゲットDBの接続を確認することができます。
    DBユーザーとパスワードを入力し、[テスト接続]をクリックしてください。
    接続結果は画面右上に表示されます。

    • ユーザー:DBユーザー名を入力します。
      接続確認で使用する、ターゲットDBの中にすでに存在しているユーザー名を入力します。

    • パスワード:DBユーザーのパスワードを入力します。

    [スナップショットからRDSインスタンス/Auroraクラスターを作成する]を選択する場合
    ターゲットDB_新規作成_スナップショットから
    項目 説明

    ターゲットDB名

    任意のターゲットDBの名前を入力します。
    大文字、小文字を区別します。

    メモ

    ターゲットDBについてメモを入力します。

    使用するAWSプロファイル名

    使用するAWSプロファイル名を選択します。「デフォルト」を選択した場合、共有AWS認証情報ファイルのdefault設定が存在すればそれを使用します。存在しない場合、IAMロールの設定で認証を試みます。
    AWSプロファイル名を指定した場合、指定したAWSプロファイル名で認証を行います。無効なAWSプロファイル名の場合、エラーが発生します。

    スナップショットARN

    ターゲットDBの作成の元となるスナップショットのARNを指定します。

    インスタンスクラス

    新規作成するターゲットDBのインスタンスクラスを指定します。

    リージョン

    新規作成するターゲットDBのリージョンを指定します。

    インスタンス名(クラスター名)

    新規作成するRDSのインスタンス名(Aurora DBクラスター名)を指定します。

    セキュリティグループ

    新規作成するターゲットDBのセキュリティグループのセキュリティグループIDを指定します。
    複数入力する場合は、「,」で区切ります。

    オプショングループ

    新規作成するターゲットDBのオプショングループのオプショングループ名を指定します。
    ターゲットDBの作成の元となるスナップショットにAurora DBクラスターを指定した場合は、指定できません。
    指定しない場合はデフォルトのオプショングループが使用されます。

    パラメータグループ

    新規作成するターゲットDBのパラメータグループのパラメータグループ名を指定します。
    テスト対象がAurora DBクラスターの場合にはクラスターパラメータグループ名を指定します。
    指定しない場合はデフォルトのパラメータグループまたはクラスターパラメータグループが使用されます。

    アップグレード後のエンジンバージョン

    アップグレードしたターゲットDBを作成する場合、アップグレード後のエンジンバージョンを指定します。
    スナップショットのデータベースバージョンから、1回でアップグレード(変更)可能なバージョンを指定してください。

    データベース名

    スナップショットから作成したデータベースのデータベース名を入力します。

    この機能は、Insight DT 3.7以降で使用できます。

ターゲットDBの一覧に情報が追加されると完了です。
ターゲットDBが追加されるまで時間がかかる場合があります。

  • スナップショットからアップグレードしたターゲットDBを作成する際、AWS側にスナップショットが自動で作成されます。
    作成されたスナップショットが不要な場合は削除してください。

  • RDSインスタンス、およびAurora DBクラスターは、作成後AWS上で課金対象となり、停止していても7日間利用が無ければ再起動される仕様となっています。
    Insight DTでは、再起動した後のRDSインスタンス、またはAurora DBクラスターの再停止処理は行いません。
    RDSインスタンス、およびAurora DBクラスターの管理は、お客様側で行ってください。

6.6.2. ターゲットDBの情報の変更と接続確認

すでに追加したターゲットDBの情報を変更します。また、ターゲットDBと接続確認もできます。

  1. ターゲットDBの一覧画面から情報を変更するターゲットDBにチェックを入れます。

  2. ローカルナビゲーションバーから[編集・テスト接続]をクリックします。
    Insight DT 3.4以前は[編集]をクリックします。

  3. ターゲットDBの情報が表示されます。

    • ターゲットDBと接続確認をしたいときは、DBユーザーとパスワードを入力し、[テスト接続]をクリックします。
      情報に変更が無ければ画面下部にある[キャンセル]をクリックしてください。

    • 適切な値に変更した場合は、画面下部にある[保存]をクリックします。

      ターゲットDB_編集_画面
      項目の詳細については、「ターゲットDBの追加」を参照してください。

ターゲットDBの一覧に表示されている情報が変更されると完了です。
ターゲットDBの変更が完了するまで時間がかかる場合があります。

Insight DT 3.3以降で、ターゲットDBの新規作成時に[スナップショットからRDSインスタンス/Auroraクラスターを作成する]から作成した場合、以下の項目は編集できません。

  • スナップショットARN

  • インスタンスクラス

  • リージョン

  • インスタンス名(クラスター名)

  • セキュリティグループ

  • オプショングループ

  • パラメータグループ

  • アップグレード後のエンジンバージョン

6.6.3. ターゲットDBの削除

ターゲットDBを削除します。
この操作はInsight DT内の情報のみを削除します。接続先のデータベースに影響はありません。

  1. ターゲットDBの一覧画面から削除するターゲットDBにチェックを入れます。

  2. ローカルナビゲーションバーから[削除]をクリックします。

  3. 確認用画面が表示されます。削除するターゲットDBを確認してください。
    問題が無ければ、画面下部にある[削除]をクリックしてください。

    ターゲットDB_削除_確認

一覧から、該当のターゲットDBがなくなると削除の完了です。
ターゲットDBの削除は数分かかる場合があります。 AWSマイグレーションから作成されたターゲットDB(Insight DTから作成されたRDSが紐づくターゲットDB)の場合、ターゲットDB削除時に削除可能なRDSインスタンス(Aurora DBクラスター)があれば同時に削除します。

6.7. アセスメント

評価SQLセットをターゲットDBへ実行します。

アセスメントには、1つのターゲットDBでのみ行うアセスメントと、テスト用ソースDBとターゲットDBの2つのデータベースを指定して行うアセスメントの2種類が存在します。

アセスメントの種類については、「製品の構成」を参照してください。
  • 事前に評価SQLセットを作成する必要があります。
    詳細は「評価SQLセット」を参照してください。

  • 事前にターゲットDBを登録する必要があります。
    詳細は「ターゲットDB」を参照してください。

  1. IDT Manager Webコンソールのグローバルナビゲーションバーから[アセスメント]をクリックします。

    アセスメントの一覧画面が表示されます。

    アセスメント

6.7.1. アセスメントの新規作成

  1. ローカルナビゲーションバーから[新規作成]をクリックします。

  2. 必要な値を入力した後、画面下部にある[新規作成]をクリックします。

6.7.1.1. アセスメントの新規作成(Insight DT 3.4以前)
アセスメント_新規作成_画面1db
アセスメント設定
項目名 説明

アセスメント名

アセスメントの名前を入力します。
大文字、小文字を区別します。

評価SQLセット名

ターゲットDBへ実行する評価SQLセットを選択します。
事前に評価SQLセットを作成する必要があります。
icon moveをクリックすると、評価SQLセットの一覧画面に遷移します。

詳細は「評価SQLセット」を参照してください。

テスト用ソースDBにもSQLを実行します

テスト用ソースDBとターゲットDBの2つのデータベースを指定したアセスメントを実行します。 トグルをオンにすると、テスト用ソースDBの設定ができます。

テスト用ソースDB

評価SQLセットを実行するデータベース(テスト用ソースDB)を選択します。
テスト用ソースDBとターゲットDBの2つのデータベースを指定したアセスメントを実行する場合に指定します。
事前にターゲットDBを登録する必要があります。
icon moveをクリックすると、ターゲットDBの一覧画面に遷移します。

詳細は「ターゲットDB」を参照してください。

[テスト用ソースDBにもSQLを実行します]を選択時に表示されます。

ターゲットDB

評価SQLセットを実行するデータベース(ターゲットDB)を選択します。
事前にターゲットDBを登録する必要があります。
icon moveをクリックすると、ターゲットDBの一覧画面に遷移します。

詳細は「ターゲットDB」を参照してください。

メモ

アセスメントについてメモを入力します。

この機能は、Insight DT 3.2以降で使用できます。
実行タイプ
実行タイプ
項目名 説明

実行タイプ

実行する方法を選択します。

  • 実行:評価SQLセットをターゲットDBに対して実行します。

  • パース:パース実行を行います。実行時間は取得できないため、速度が遅くなったSQL等の判定ができません。バインド変数の値がなくてもテーブルの有無や構文のチェックができます。

名前付きバインド変数書式を変換します

SQLに含まれる名前付きバインド変数をターゲットDBで実行可能な書式に変換してSQLを実行します。
移行先が名前付き引数に対応していないDBMSでもデータベース接続ドライバーまたはデータベース接続プログラムによって対応される場合を再現して、アセスメント実行時にSQLを自動変換して実行します。

修正したSQLを適用します

評価SQLセットに修正したSQLを適用してアセスメントを実行します。
修正SQLセットは、テスト用ソースDBに対する実行、およびターゲットDBに対する実行のそれぞれに対して指定することができます。

例えば、テスト用ソースDBには元のSQL、ターゲットDBには修正SQLを適用する等別々のSQLを適用することもできます。

修正SQL適用

テスト用ソースDBに使用する修正SQLセット

テスト用ソースDBに使用する修正SQLセットを実行します。
テスト用ソースDBをアセスメントで使用し、かつ修正SQLセットを用いる場合に設定します。[指定なし]を選択することで、修正SQLを使用しないこともできます。

[テスト用ソースDBにもSQLを実行します]をオンにし、[修正したSQLを適用します]を選択時に表示されます。

ターゲットDBに使用する修正SQLセット

ターゲットDBに使用する修正SQLセットを実行します。
修正SQLセットを用いる場合に設定します。[指定なし]を選択することで、修正SQLを使用しないこともできます。

[修正したSQLを適用します]を選択時に表示されます。

テスト接続
テスト接続
項目名 説明

SQLログと異なるユーザー名で実行する

評価SQLセットのユーザー名と異なるユーザー名に読み替えてアセスメントを行うことができます。
読み替えユーザーを指定しない場合は評価SQLセットのSQLログに記載されているユーザー名でSQLを実行します。
オンにすると、[読み替えユーザー]に実行したいユーザー名を指定できます。

この機能は、Insight DT 3.3以降で使用できます。

DBユーザー/
読み替えユーザー/
パスワード

実行するDBユーザーをフィルタリングできます。
チェックされているDBユーザーのSQLのみ実行されます。
実行するDBユーザーの対応するパスワードを入力してください。
チェックされていないDBユーザーのSQLは実行されません。

[SQLログと異なるユーザー名で実行する]をオンにすると、[読み替えユーザー]が表示されます。

読み替えユーザーの指定は、Insight DT 3.3以降で使用できます。
表示されるDBユーザー名は、評価SQLセットに格納されています。フィルタするDBユーザー名を変更する場合には、「評価SQLセットのユーザー変更」を参照してください。

テスト用ソースDB

テスト用ソースDBに対するテスト接続を行います。
[テスト用ソースDBにもSQLを実行します]を選択した場合に表示されます。

誤ったパスワードを指定するとログインエラーになりアセスメントを正しく行うことができません。
パスワードを入力したら、画面右下の[テスト用ソースDB]をクリックし、接続できるか確認してください。接続結果は、画面右上に以下のようなインフォメーションが表示されます。

アセスメント_接続表示

テスト接続/
ターゲットDB

ターゲットDBに対するテスト接続を行います。
[テスト用ソースDBにもSQLを実行します]を選択した場合には、[ターゲットDB]と表示されます。

誤ったパスワードを指定するとログインエラーになりアセスメントを正しく行うことができません。
パスワードを入力したら、画面右下の[テスト接続](または[ターゲットDB])をクリックし、接続できるか確認してください。接続結果は、画面右上に以下のようなインフォメーションが表示されます。

アセスメント_接続表示

高度な実行設定
高度な実行設定
項目名 説明

DBへのデータ反映

ターゲットDBへのデータ反映の設定を選択します。
ソースDBで実行された1セッションを1トランザクションとし、トランザクションをどの設定で実行するか選択できます。

  • 反映させる:実行したSQLをコミットします。INSERT文やDELETE文などはターゲットDBに実行結果が反映されます。SQLが失敗すると、そのトランザクション内のSQLはすべてロールバックされます。

  • 反映させない:実行したSQLをセッション単位でロールバックします。ターゲットDBには何も反映されません。評価対象のSQLにトランザクション制御文が含まれている場合、ロールバックが正しく行われない場合があります。また、データベース種類に応じた暗黙的なコミットについてはロールバックできません。

  • 指定なし:指定しません。ターゲットDBの設定に依存します。

実行タイプに[実行]を選択時に表示されます。

タイムアウト設定

SQL実行時のタイムアウトを設定します。

  • (指定しない):タイムアウトを明示的には指定しません。データベースの設定でタイムアウト設定がされていればそれに従います。

  • 0:タイムアウトしません。データベースのタイムアウトの設定に関わらず、タイムアウトを無効にします。

  • 1~:指定した時間(分)でタイムアウトします。SQLの実行時間が指定した時間を超えた場合、SQLの実行を強制終了し、失敗したSQLと判定します。

この機能は、Insight DT 3.1以降で使用できます。

同時セッション処理数

評価SQLセットをターゲットDBで実行する際に同時に処理するセッション数を指定します(最大16)。
ターゲットDBとManagerのリソースに余裕がある場合に、アセスメント実行の速度向上が見込めます。
ターゲットDBのリソース制限や接続設定によって、実行がタイムアウトエラーとなる場合があります。

フェッチ・サイズ値

一度にデータベースサーバーから受け取る行数を指定することができます。
例えば、フェッチ・サイズ値を1にした場合、ターゲットDB、テスト用ソースDB両方のフェッチ・サイズ値は1になります。
[テスト用ソースDBにもSQLを実行します]を選択した場合に表示されます。

データベースの種類により動作が異なります。

  • Oracle Databaseの場合:任意の値を指定できます。

  • PostgreSQL/MySQLの場合:0または1を指定した場合、1行ごとに取得します。
    2以上を指定した場合、全件取得します。

  • SQL Serverの場合:値に関係なく1行ごとに取得します。

この機能は、Insight DT 3.4以降で使用できます。

取得行数制限

アセスメント実行時に保持する行取得結果の上限値を指定することができます。
比較処理は上限値までの結果で評価します。
[テスト用ソースDBにもSQLを実行します]を選択した場合に表示されます。

この機能は、Insight DT 3.4以降で使用できます。
高度な比較設定_1DB
[テスト用ソースDBにもSQLを実行します]を選択しない場合
高度な比較設定_2DB
[テスト用ソースDBにもSQLを実行します]を選択した場合
高度な比較設定

実行タイプに[実行]を選択時に表示されます。

項目名 説明

0秒の仮定値

ソースDBでのSQL実行時間が0秒だった場合に、実行時間の仮定値として設定される値を入力します。
ターゲットDBのみを指定したアセスメントを実行する場合に指定します。
PISOのデフォルトのサンプリング間隔に基づき、デフォルトは0.2秒です。

詳細は「0秒時の対応」を参照してください。

カラム名の比較

クエリ実行結果を比較する場合に、テーブルのヘッダーを比較対象とするかを指定します。
テスト用ソースDBとターゲットDBの2つのデータベースを指定したアセスメントを実行する場合に指定します。
[テスト用ソースDBにもSQLを実行します]を選択時に表示されます。

  • 比較しない
    カラム名の文字比較を行いません。

  • 大文字・小文字を無視
    カラム名の大文字・小文字を無視して比較します。

  • 完全一致
    カラム名を完全一致で比較します。

カラム名の比較条件[大文字・小文字を無視][完全一致]の選択は、Insight DT 3.3以降で使用できます。

行順序の比較

取得結果の行順序の一致レベルを指定します。
[テスト用ソースDBにもSQLを実行します]を選択時に表示されます。

  • 完全一致
    行順序まで一致したものを成功したと判断します。再ソートによる評価はしません。

  • 完全一致(再ソート試行)
    行順序まで一致したものを成功したと判断します。再ソートによる評価も実施した結果も記録します。

  • 自動
    実行したSQL文にORDER BY句による順序指定がある場合は行順序を含む比較、指定がない場合は行順序を無視して評価します。

  • 無視
    行順序を無視して評価します。

この機能は、Insight DT 3.3以降で使用できます。

末尾の空白を削除して比較

取得結果が固定長文字列型の場合に末尾の空白を取り除いて比較します。
[テスト用ソースDBにもSQLを実行します]を選択時に表示されます。

この機能は、Insight DT 3.3以降で使用できます。

浮動小数点の誤差

取得結果が浮動小数点型の場合に許容する誤差を正の数で設定します。
未指定の場合は誤差を許容しません。
[テスト用ソースDBにもSQLを実行します]を選択時に表示されます。

この機能は、Insight DT 3.3以降で使用できます。

時間しきい値 [秒]

テスト用ソースDBでのSQL実行時間と、ターゲットDBでのSQL実行時間との差が指定秒数よりも大きい場合に性能が劣化したSQLと見なします。
未指定の場合は0 [秒]を指定したものと同じです。
[テスト用ソースDBにもSQLを実行します]を選択時に表示されます。

この機能は、Insight DT 3.2以降で使用できます。

割合しきい値 [%]

テスト用ソースDBでのSQL実行時間と、ターゲットDBでのSQL実行時間との比が指定パーセントよりも大きい場合に性能が劣化したSQLとみなします。
未指定の場合は100 [%]を指定したものと同じです。時間しきい値と割合しきい値の双方の条件で性能が劣化したSQLとみなされた場合に、対象SQLは性能が劣化したSQLとマークされます。
[テスト用ソースDBにもSQLを実行します]を選択時に表示されます。

この機能は、Insight DT 3.2以降で使用できます。
データ設定
項目名 説明

バインド変数補完

「バインド変数補完」を参照してください。

期間(セッション)

セッションの期間でフィルタリングして実行することができます。
選択されていない期間のセッションのSQLは実行されません。
[期間(セッション)]をクリックし、適切な期間を設定してください。

アセスメント_期間

6.7.1.2. アセスメントの新規作成(Insight DT 3.5以降)
アセスメント_新規作成_画面1DB実行タイプ
1つのターゲットDBでのみ行うアセスメント
アセスメント_新規作成_画面2DB実行タイプ
テスト用ソースDBとターゲットDBの2つのデータベースを指定して行うアセスメント
アセスメント設定
項目名 説明

アセスメント名

アセスメントの名前を入力します。
大文字、小文字を区別します。

メモ

アセスメントについてメモを入力します。

2DBモード

テスト用ソースDBとターゲットDBの2つのデータベースを指定したアセスメントを実行します。
トグルを「オン」にすると、テスト用ソースDBを設定できます。

エクスポート/
インポート

  • エクスポート:アセスメントの新規作成画面の入力状態をJSONファイルとしてダウンロードします。

  • インポート:JSONファイルから入力値を読み取り、アセスメントの新規作成画面に反映します。

JSONファイルは一部要素のみ記述することで特定の項目のみ更新することができます。

エクスポートしたJSONファイルには、属性「"is2dbMode": false」(1DBモード)または「"is2dbMode": true」(2DBモード)があります。
インポートしたJSONファイルに属性「is2dbMode」が無い場合は、インポート時のアセスメントフォームの「2DBモード」のオンオフ状態を維持したままインポートします。

評価SQLセット名

ターゲットDBへ実行する評価SQLセットを選択します。
事前に評価SQLセットを作成する必要があります。
icon moveをクリックすると、評価SQLセットの一覧画面に遷移します。

詳細は「評価SQLセット」を参照してください。

実行タイプ

実行する方法を選択します。

  • 実行:評価SQLセットをターゲットDBに対して実行します。

  • パース:パース実行を行います。実行時間は取得できないため、速度が遅くなったSQL等の判定ができません。バインド変数の値がなくてもテーブルの有無や構文のチェックができます。

バインド変数書式変換

SQLに含まれる名前付きバインド変数をターゲットDBで実行可能な書式に変換してSQLを実行します。
移行先が名前付き引数に対応していないDBMSでもデータベース接続ドライバー、またはデータベース接続プログラムによって対応される場合を再現して、アセスメント実行時にSQLを自動変換して実行します。
Insight DT 3.6以前の場合、修正SQLセットによって更新されたSQLは変換されません。

バインド変数書式変換は、Oracle Database以外のデータベースからOracle Databaseへの変換をサポートしていません(icon ex 「$1」や「?」から「:1」への変換)。

DBへのデータ反映

ターゲットDBへのデータ反映の設定を選択します。
ソースDBで実行された1セッションを1トランザクションとし、トランザクションをどの設定で実行するか選択できます。

  • コミット:実行したSQLをコミットします。INSERT文やDELETE文などはターゲットDBに実行結果が反映されます。SQLが失敗すると、そのトランザクション内のSQLはすべてロールバックされます。

  • ロールバック:実行したSQLをセッション単位でロールバックします。ターゲットDBには何も反映されません。評価対象のSQLにトランザクション制御文が含まれている場合、ロールバックが正しく行われない場合があります。また、データベース種類に応じた暗黙的なコミットについてはロールバックできません。

  • 指定なし:指定しません。ターゲットDBの設定に依存します。

実行タイプで[実行]を選択時に表示されます。

タイムアウト設定

SQL実行時のタイムアウトを設定します。

  • (指定しない):タイムアウトを明示的には指定しません。データベースの設定でタイムアウト設定がされていればそれに従います。

  • 0:タイムアウトしません。データベースのタイムアウトの設定に関わらず、タイムアウトを無効にします。

  • 1~:指定した時間(分)でタイムアウトします。SQLの実行時間が指定した時間を超えた場合、SQLの実行を強制終了し、失敗したSQLと判定します。

Insight DT 3.6.0.0以前の場合、実行タイプで[実行]を選択時に表示されます。
Insight DT 3.6.1.0以降の場合、実行タイプで[実行][パース]のどちらを選択した場合にも表示されます。

同時セッション処理数

評価SQLセットをターゲットDBで実行する際に同時に処理するセッション数を指定します(最大128)。
ターゲットDBとIDT Managerのリソースに余裕がある場合に、アセスメント実行の速度向上が見込めます。
ターゲットDBのリソース制限や接続設定によって、実行がタイムアウトエラーとなる場合があります。

Insight DT 3.6.0.0以前の場合、実行タイプで[実行]を選択時に表示されます。
Insight DT 3.6.1.0以降の場合、実行タイプで[実行][パース]のどちらを選択した場合にも表示されます。

0秒の仮定値

ソースDBでのSQL実行時間が0秒だった場合に、実行時間の仮定値として設定される値を入力します。
PISOのデフォルトのサンプリング間隔に基づき、デフォルトは0.2秒です。

詳細は「0秒時の対応」を参照してください。

1つのターゲットDBでのみ行うアセスメント、かつ実行タイプで[実行]を選択時に表示されます。

期間(セッション)

セッションの期間でフィルタリングして実行することができます。
選択されていない期間のセッションのSQLは実行されません。
[期間(セッション)]をクリックし、適切な期間を設定してください。

[2DBモード]が「オン」かつ実行タイプが[実行]の項目
項目名 説明

直列実行

トグルを「オン」にすると、SQLの開始時刻順にアセスメントを実行します。
評価SQLセットにトランザクション制御文を含めたSQLが、すべて含まれるようにしてください。

直列実行有効時は、以下の値は固定となります。

  • 実行タイプ:実行

  • DBへのデータ反映:指定なし

  • 同時セッション処理数:1

カラム名の比較

クエリ実行結果を比較する場合に、テーブルのヘッダーを比較対象とするかを指定します。

  • 比較しない
    カラム名の文字比較を行いません。

  • 大文字・小文字を無視
    カラム名の大文字・小文字を無視して比較します。

  • 完全一致
    カラム名を完全一致で比較します。

行順序の比較

取得結果の行順序の一致レベルを指定します。

  • 完全一致
    行順序まで一致したものを成功したと判断します。再ソートによる評価はしません。

  • 完全一致(再ソート試行)
    行順序まで一致したものを成功したと判断します。再ソートによる評価も実施した結果も記録します。

  • 自動
    実行したSQL文にORDER BY句による順序指定がある場合は行順序を含む比較、指定がない場合は行順序を無視して評価します。

  • 無視
    行順序を無視して評価します。

取得結果の保存条件

SQLを実行して取得した結果の保存条件を選択します。

  • 結果が異なるもののみ保存:従来どおり実行結果が[結果が相違]であったレコードを閲覧、ダウンロードできます。

  • すべて保存:SQLの比較結果に関わらず、SQLの実行で取得できたレコードを閲覧、ダウンロードできます(SQLの実行に失敗している場合や返り値のないSQLを除く)。

  • 保存しない:SQLの成功、失敗に関わらずレコードの保存を行いません。

実行計画の保存条件※2

アセスメント実行時に取得した実行計画の保存条件を選択します。
保存した実行計画は、アセスメントのSQL詳細画面から閲覧可能です。

  • 性能が劣化した場合に保存
    ターゲットDBとテスト用ソースDBで性能が劣化した場合のみ、実行計画を保存します。
    容量削減のため、この選択肢がデフォルトで設定されています。

  • すべて保存
    性能比較結果に関わらず、すべての実行計画を保存します。

  • 保存しない
    実行計画を保存しません。

取得結果をディスクに置いて比較※2

従来メモリ上で行う取得結果の比較処理をディスクを用いて行うことができます。

  • 有効
    取得結果の比較処理をディスクを用いて行います。通常よりアセスメントの実行に時間がかかります。
    メモリの使用量を削減することができます。

  • 無効
    今までと同様に、メモリ上で比較処理を行います。

末尾の空白を削除して比較

取得結果が固定長文字列型の場合に末尾の空白を取り除いて比較します。

浮動小数点の誤差

取得結果が浮動小数点型の場合に許容する誤差を正の数で設定します。
未指定の場合は誤差を許容しません。

時間しきい値 [秒]

テスト用ソースDBでのSQL実行時間と、ターゲットDBでのSQL実行時間との差が指定秒数よりも大きい場合に性能が劣化したSQLとみなします。
未指定の場合は0 [秒]を指定したものと同じです。

割合しきい値 [%]

テスト用ソースDBでのSQL実行時間と、ターゲットDBでのSQL実行時間との比が指定パーセントよりも大きい場合に性能が劣化したSQLとみなします。
未指定の場合は100 [%]を指定したものと同じです。時間しきい値と割合しきい値の双方の条件で性能が劣化したSQLとみなされた場合に、対象SQLは性能が劣化したSQLとマークされます。

取得行数制限

アセスメント実行時に保持する行取得結果の上限値を指定することができます。
比較処理は上限値までの結果で評価します。

期間(SQL開始時刻)

[2DBモード]が「オン」、実行タイプが[実行]、かつ[直列実行]が「オン」のときは、評価SQLセットのSQL開始時刻の期間でフィルタリングして実行することができます。
選択されていない範囲のSQLは実行されません。
[期間(SQL開始時刻)]をクリックし、適切な期間を設定してください。

※1 この機能は、Insight DT 3.6以降で使用できます。
※2 この機能は、Insight DT 3.7以降から使用できます。

ターゲットDB
項目名 説明

ターゲットDB

評価SQLセットを実行するデータベース(ターゲットDB)を選択します。
事前にターゲットDBを登録する必要があります。
icon moveをクリックすると、ターゲットDBの一覧画面に遷移します。

詳細は「ターゲットDB」を参照してください。

ターゲットDBに使用する修正SQLセット

ターゲットDBに使用する修正SQLセットを選択します。
修正SQLセットを用いる場合に設定します。修正SQLセットを使用しないときは[指定なし]を選択してください。

テスト用ソースDBには元のSQL、ターゲットDBには修正SQLを適用する等、別々のSQLを適用することもできます。

修正SQL適用

フェッチ・サイズ値(ターゲットDB)

一度にデータベースサーバーから受け取る行数を指定することができます。

[2DBモード]が「オン」、かつ実行タイプで[実行]を選択時に表示されます。
[ターゲットDBと異なる設定をする]が「オン」の時は、ターゲットDBとテスト用ソースDBでそれぞれ設定できます。
「オフ」の時は、ターゲットDBに設定した値がテスト用ソースDBにも適用されます。

データベースの種類により動作が異なります。

  • Oracle Databaseの場合:任意の値を指定できます。

  • PostgreSQL/MySQLの場合:0または1を指定した場合、1行ごとに取得します。
    2以上を指定した場合、全件取得します。

  • SQL Serverの場合:値に関係なく1行ごとに取得します。

テスト用ソースDB

[2DBモード]が「オン」のときに表示します。

項目名 説明

テスト用ソースDB

評価SQLセットを実行するデータベース(テスト用ソースDB)を選択します。
事前にターゲットDBを登録する必要があります。
icon moveをクリックすると、ターゲットDBの一覧画面に遷移します。

詳細は「ターゲットDB」を参照してください。

テスト用ソースDBに使用する修正SQLセット

テスト用ソースDBに使用する修正SQLセットを選択します。
テスト用ソースDBをアセスメントで使用し、かつ修正SQLセットを用いる場合に設定します。修正SQLセットを使用しないときは[指定なし]を選択してください。

ターゲットDBと異なる設定をする

「オン」にすると、次の項目をテスト用ソースDBとターゲットDBで異なる設定にすることができます。

  • フェッチ・サイズ値

  • テスト接続のパスワードと読み替えユーザ

  • バインド変数補完

「オフ」の場合はターゲットDBの設定がテスト用ソースDBと同期されます。この時、テスト用ソースDBの上記項目は編集不可になります。

ターゲットDBの設定をコピーする

「オン」にするとターゲットDBの下記項目がテスト用ソースDBにコピーされます。

  • フェッチ・サイズ値

  • テスト接続のパスワードと読み替えユーザ

  • バインド変数補完

[ターゲットDBと異なる設定をする]が「オフ」の時は無効になります。

フェッチ・サイズ値(テスト用ソースDB)

一度にデータベースサーバーから受け取る行数を指定することができます。

[2DBモード]が「オン」、かつ実行タイプで[実行]を選択時に表示されます。
[ターゲットDBと異なる設定をする]が「オン」の時は、ターゲットDBとテスト用ソースDBでそれぞれ設定できます。
「オフ」の時は、ターゲットDBで設定した値がテスト用ソースDBにも適用されます。

データベースの種類により動作が異なります。

  • Oracle Databaseの場合:任意の値を指定できます。

  • PostgreSQL/MySQLの場合:0または1を指定した場合、1行ごとに取得します。
    2以上を指定した場合、全件取得します。

  • SQL Serverの場合:値に関係なく1行ごとに取得します。

DBユーザー設定(テスト接続
項目名 説明

DBユーザー/
パスワード

実行するDBユーザーをフィルタリングできます。
チェックされているDBユーザーのSQLのみ実行されます。
実行するDBユーザーの対応するパスワードを入力してください。
チェックされていないDBユーザーのSQLは実行されません。

表示されるDBユーザー名は、評価SQLセットに格納されています。フィルタするDBユーザー名を変更する場合には、「評価SQLセットのユーザー変更」を参照してください。

読み替えユーザー

DBユーザー名を異なるユーザー名に読み替えてアセスメントを実行します。
読み替えユーザーを指定しない場合は、表示されているDBユーザー名でSQLを実行します。

テスト接続

ターゲットDB/テスト用ソースDBに対するテスト接続を行います。

パスワードに誤りがあると、ログインエラーになりアセスメントを正しく行うことができません。
パスワードを入力したら画面右下の[テスト接続]をクリックし、接続できるか確認してください。接続結果は、画面右上に以下のようなインフォメーションが表示されます。

アセスメント_接続表示

Insight DT 3.5の場合の表記です。

バインド変数補完
項目名 説明

バインド変数補完(ターゲットDB)/
バインド変数補完(テスト用ソースDB)

「バインド変数補完」を参照してください。
フック処理
項目名 説明

フック処理(ターゲットDB)/
フック処理(テスト用ソースDB)

アセスメントの開始前と終了後に任意のSQLを実行します。

  • アセスメント前後それぞれに実行したいDBユーザーとSQLの組を複数指定できます。入力はSQL1文ずつです。

  • SQLはアセスメントの実行タイプおよびトランザクション指定に関わらず1文ずつコミットします。

  • フック処理で設定したSQLの実行失敗はログに出力しますが、アセスメント処理は継続します。

  • DBユーザーのパスワードはアセスメント実行の[DBユーザー設定]の値を使用します。

  • 評価SQLセットに含まれていないDBユーザーを指定する場合には、[DBユーザー設定]から[+]ボタンでDBユーザーを追加します。

  • DBユーザー名で指定し、読み替えユーザーが設定されていれば実行時にそれを使用します。

フック処理

この機能は、Insight DT 3.6以降で使用できます。

6.7.1.3. バインド変数補完

評価SQLセットに取得されていないバインド変数をアセスメント実行時に補完します。
データ型ごとに補完する値を設定します。

  • バインド変数に求められる型情報を移行先データベースから取得できなかった場合は、「デフォルト」で指定した値を使用します。

  • 値にNULLを指定するときは、NULLにチェックを入れてください。

アセスメント_バインド変数補完

6.7.2. アセスメントを複製して新規作成

既存のアセスメント設定をもとに、新たなアセスメントを行います。

  1. アセスメントの一覧画面から複製するアセスメントにチェックを入れます。

  2. ローカルナビゲーションバーから[複製して新規作成]をクリックします。

    複製して新規作成
  3. 変更したい項目を修正し、[複製して新規作成]をクリックします。

    項目の詳細については、「アセスメントの新規作成」を参照してください。
この機能は、Insight DT 3.3以降で使用できます。

6.7.3. アセスメントの編集

アセスメントの名前とメモを編集します。

  1. アセスメントの一覧画面から編集するアセスメントにチェックを入れます。

  2. ローカルナビゲーションバーから[編集]をクリックします。

  3. アセスメント名やメモを変更し、[保存]をクリックします。

    アセスメント_編集_確認

一覧から、該当のアセスメント名が編集されていたら編集の完了です。

6.7.4. アセスメントの中断

処理中のアセスメントを中断します。

  1. アセスメントの一覧画面から中断するアセスメントにチェックを入れます。

  2. ローカルナビゲーションバーから[中断]をクリックします。

  3. 確認用画面が表示されます。中断するアセスメントを確認してください。
    問題が無ければ、画面下部にある[中断]をクリックしてください。

    アセスメント_中断‗確認

一覧で、処理中のアセスメントが終了状態になると中断の完了です。
終了したアセスメントとして、アセスメントサマリーなどを確認することができます。

この機能は、Insight DT 3.2以降で使用できます。

6.7.5. アセスメントの削除

アセスメントを削除します。

  1. アセスメントの一覧画面から削除するアセスメントにチェックを入れます。

  2. ローカルナビゲーションバーから[削除]をクリックします。

  3. 確認用画面が表示されます。削除するアセスメントを確認してください。
    問題が無ければ、画面下部にある[削除]をクリックしてください。

    アセスメント_削除_確認

一覧から、該当のアセスメント名がなくなると削除の完了です。
アセスメントの削除はデータ量に応じて数分かかる場合があります。

6.7.6. アセスメント結果のダウンロード

アセスメント結果をダウンロードします。
複数を選択した場合は複数個別にダウンロードされます。

この機能は、Insight DT 3.6以降で使用できます。
  1. アセスメントの一覧画面からダウンロードするアセスメントにチェックを入れます。

  2. ローカルナビゲーションバーから[ダウンロード]をクリックします。

  3. ダウンロード画面が表示されます。ダウンロードするデータのリンク(ZIP)をクリックしてください。

    アセスメント結果ダウンロード
    項目 説明

    フィルタ設定

    1つのターゲットDBでのみ行うアセスメントの場合、実行結果のうち成功したSQLのみダウンロードする場合は[成功]のみにチェックを入れます。
    失敗したSQLのみダウンロードする場合は[失敗]のみにチェックを入れます。
    結果に関係なくすべてのSQLの実行結果を取得する場合は[成功][失敗]両方にチェックを入れます。

    テスト用ソースDBとターゲットDBの2つのデータベースを指定して行うアセスメントの場合、実行結果の[ターゲットDBでのみ失敗][両DBで失敗][結果が相違][性能が劣化][成功][テスト用ソースDBでのみ失敗]から選択します。

    テスト用ソースDB

    テスト用ソースDBとターゲットDBの2つのデータベースを指定して行うアセスメントでテスト用ソースDBの情報も取得する場合には、トグルスイッチを「オン」にします。

    各データのダウンロードリンク

    ダウンロードするデータ内容(実行結果、詳細情報、またはその両方)を選択します。

    • SQL毎の実行結果を出力します

    • SQL毎の詳細情報を出力します

    • 実行結果と詳細情報を統合して出力します

    ダウンロード開始間隔

    アセスメント一覧画面で複数のアセスメントをチェックした場合に表示されます。ファイル毎のダウンロード開始間隔を調整します。
    1ファイルのダウンロード完了まで長時間になることが予想される場合は、負荷分散のため間隔を長くとることを推奨します。

    すべてのファイルのダウンロードが開始されるまでブラウザ画面のリロードは行わないでください。

6.7.7. ログの確認

ログicon logをクリックすると、アセスメントを実行した際のログを確認することができます。
また、利用可能なログはダウンロードできます。

この機能は、Insight DT 3.2以降で使用できます。

6.7.8. アセスメント結果の確認

サマリーの画面から実行したSQLの実行結果を確認します。

  1. アセスメントの一覧画面から確認するアセスメント名をクリックします。

    アセスメント_選択
  2. サマリー画面が表示されます。

    サマリー画面の詳細については、「サマリー」を参照してください。

6.7.9. サマリー

アセスメントの一覧からアセスメント名を選択することで、サマリーの画面へ遷移し、アセスメントのサマリーを閲覧します。
1つのターゲットDBでのみ行うアセスメントと、テスト用ソースDBとターゲットDBの2つのデータベースを指定して行うアセスメントとでサマリー画面の表示形式が異なります。

  • 1つのターゲットDBでのみ行うアセスメントでのサマリー画面

    1つのターゲットDBでのみ行うアセスメント
    • ソースDBでSQLを取得した際のSQL実行時間情報を対象に、ターゲットDBでのSQL実行時間との比較を行います。

  • テスト用ソースDBとターゲットDBの2つのデータベースを指定して行うアセスメントでのサマリー画面

    テスト用ソースDBとターゲットDBの2つのデータベースを指定して行うアセスメント
    • テスト用ソースDBでSQLを実行した際のSQL実行時間情報を対象に、ターゲットDBでのSQL実行時間、SQL実行結果との比較を行います。

      ステータス テスト用ソースDB ターゲットDB 備考

      ターゲットDBでのみ失敗
      (失敗したSQL)

      成功

      失敗

      -

      両DBで失敗
      (両DBで失敗したSQL)

      失敗

      失敗

      -

      結果が相違
      (結果が異なるSQL)

      成功

      成功

      SELECT結果の比較/DMLの実行結果行数の比較で結果が異なる場合

      性能が劣化
      (性能が劣化したSQL)

      成功

      成功

      結果は同じだが、ターゲットDBでの処理が遅かった場合

      成功
      (問題がなかったSQL)

      成功

      成功

      ターゲットDBでの処理時間がテスト用ソースDB以下の場合

      テスト用ソースDBでのみ失敗
      (テストができなかったSQL)

      失敗

      成功

      テスト用ソースDBでの処理が失敗した場合

      ()内はInsight DT 3.2以前のバージョンでのステータス表記です。

エラーメッセージ、エラーユーザー、エラープログラムの件数が10件を超える場合には、[全体表示]ボタンをクリックして他のエラー内容を確認します。

サマリー画面の左のサイドバーのメニューからSQL実行結果一覧画面へ移動できます。
また、右のサイドバーを開くと、アセスメント実行時の設定情報を確認できます。

設定項目の詳細については、「アセスメント」を確認してください。

Insight DTのバージョンによって、サマリー画面からSQL実行結果一覧(SQL実行結果一覧・修正作業進捗)画面への移動方法が異なります。

  • Insight DT 3.2以前の場合
    以下のいずれかの方法でSQL実行結果一覧・修正作業進捗画面に移動できます。

    • [修正すべきSQL一覧][成功した全てのSQLを見る][失敗した全てのSQLを見る]をクリックしてSQL実行結果一覧・修正作業進捗画面へ移動します。

    • 各ステータスや[エラーメッセージ][エラーユーザー]などでグルーピングされた一覧のリンクをクリックします。

  • Insight DT 3.3以降の場合
    [修正すべきSQL一覧][成功した全てのSQLを見る][失敗した全てのSQLを見る]のリンクが削除され、左のサイドバーが追加になりました。以下のいずれかの方法でSQL実行結果一覧画面に移動できます。

    • 左のサイドバーのメニューからSQL実行結果一覧をクリックします。

    • 各ステータスや[エラーメッセージ][エラーユーザー]などでグルーピングされた一覧のリンクをクリックします。

6.7.9.1. ターゲットDBでのみ失敗/ターゲットDBにて失敗したSQL

実行できなかったSQL(左側)と実行できたSQL(右側)の割合が表示されます。
それぞれの件数と、すべてのSQLに対しての割合が表示されます。
評価に含まれていたSQLをすべて実行していますが、実行する際にDBユーザー、セッション等でフィルタリングを行った場合は、SQLが絞り込まれています。

テスト用ソースDBとターゲットDBの2つのデータベースを指定して行うアセスメントでは、ターゲットDBでの実行が失敗したSQL(ステータスが[ターゲットDBでのみ失敗][両DBで失敗])が表示対象になります。
Insight DT 3.2以前の場合、ターゲットDBでの実行が失敗したSQLは、ステータス[失敗したSQL][両DBで失敗したSQL]が表示対象です。

実行できなかったSQLは3つの観点からグルーピングしています。

  • エラーメッセージ

  • エラーユーザー

  • エラープログラム

それぞれの件数を集計し、上位10件を表示します。
上位11件以降を参照する場合、[全体表示]をクリックするとページネーション表示(icon pagenation)になり、残りを参照できます。
各項目のSQL情報を閲覧する場合は、対象の行を選択します。

6.7.9.2. 結果が異なるSQL

テスト用ソースDBとターゲットDBの2つのデータベースを指定して行うアセスメントで、左側に結果が異なったSQL、右側に同じ結果になったSQLの割合と件数が表示されます。
結果は「取得結果」で確認できます。

結果が異なるSQL

サマリー画面で[SQLテキスト]をクリックすると、SQL詳細画面を表示します。

結果が異なるSQL_2DB
テスト用ソースDBとターゲットDBの2つのデータベースを指定して行うアセスメントの場合
6.7.9.3. 性能が劣化したSQL

左側に遅くなったSQL、右側に遅くならなかったSQLの割合と件数が表示されます。
割合の分母は成功したSQLの件数です。

1つのターゲットDBでのみ行うアセスメントでは、ソースDBで取得した実行時間とターゲットDBで取得した実行時間を比較し、100%以上になるものを遅くなったSQLとして算出、上位10件を表示します。
テスト用ソースDBとターゲットDBの2つのデータベースを指定して行うアセスメントでは、アセスメント実行の際にテスト用ソースDBで取得した実行時間とターゲットDBで取得した実行時間を比較し、テスト用ソースDBでの実行時間に対してターゲットDBでの実行時間が100%以上になるものを遅くなったSQLとして算出、上位10件を表示します。
パースモードで実行した場合は、実行時間が取得できないため表示されません。
実行時間を取得する場合は、アセスメントの実行タイプを実行に指定してアセスメントしてください。
SQL情報を閲覧する場合は、対象の行を選択します。

サマリー_遅くなったSQL

[SQLテキスト]をクリックすると、SQL詳細画面を表示します。

サマリー_遅くなったSQL_2DB
テスト用ソースDBとターゲットDBの2つのデータベースを指定して行うアセスメントの場合
  • 取得したSQLの「実行計画」を確認できます。

  • 1つのターゲットDBでのみ行うアセスメントでは、ソースDBのSQLの実行時間が0秒として取得されている場合があります。

詳細は「0秒時の対応」を参照してください。
6.7.9.4. テスト用ソースDBにて失敗したSQL

テスト用ソースDB、またはテスト用ソースDBとターゲットDBの両データベースでエラーになったSQLを、出現順序の早い順で表示します。
タイトルをクリックするとTOP10以降を確認できます。
SQLテキストをクリックすると該当SQLの詳細を表示します。

左側にテスト用ソースDBで失敗したSQLのパーセンテージと件数、右側にテスト用ソースDBで失敗しなかったSQLのパーセンテージと件数が表示されます。
パーセンテージの分母はエラーが出たSQLの件数です。

テスト用ソースDBにて失敗したSQL
6.7.9.5. 移行情報

バインド変数変換や構文でエラーになるものを集計し、表示します。

  • バインド変数書式変換がある場合に変換したもの

  • 取得できていないバインド変数に値を埋めたもの

  • バインド変数型の型変換で、エラーの可能性があるもの

  • 非互換構文について取得したもの(Oracle Databaseのみ)

サマリー_移行情報
6.7.9.6. サマリーのダウンロード

アセスメント結果をCSVファイル形式でダウンロードします。

  1. ローカルナビゲーションバーから[ダウンロード]をクリックします。

    サマリー_ダウンロード
  2. SQLのフィルタ条件(ステータスまたはフィルタ設定)を選択します。

    1. Insight DT 3.5以前の場合、必要な追加情報をオンにして、画面下部の[ダウンロード]をクリックします。

      サマリー_ダウンロード_画面
      1つのターゲットDBでのみ行うアセスメントの場合
      2dbダウンロード
      テスト用ソースDBとターゲットDBの2つのデータベースを指定して行うアセスメントの場合
    2. Insight DT 3.6の場合、ダウンロードするデータのリンク(ZIP)をクリックします。

      サマリー_ダウンロード_画面
      1つのターゲットDBでのみ行うアセスメントの場合
      2dbダウンロード
      テスト用ソースDBとターゲットDBの2つのデータベースを指定して行うアセスメントの場合
      項目 説明

      フィルタ設定(ステータス※1

      1つのターゲットDBでのみ行うアセスメントの場合、実行結果のうち成功したSQLのみダウンロードする場合は[成功]のみにチェックを入れます。
      失敗したSQLのみダウンロードする場合は[失敗]のみにチェックを入れます。
      結果に関係なくすべてのSQLの実行結果を取得する場合は[成功][失敗]両方にチェックを入れます。

      テスト用ソースDBとターゲットDBの2つのデータベースを指定して行うアセスメントの場合、実行結果の[ターゲットDBでのみ失敗][両DBで失敗][結果が相違][性能が劣化][成功][テスト用ソースDBでのみ失敗]から選択します。※2

      テスト用ソースDB

      テスト用ソースDBとターゲットDBの2つのデータベースを指定して行うアセスメントでテスト用ソースDBの情報も取得する場合には、トグルスイッチを「オン」にします。

      追加情報※3

      実行結果加え、追加情報も取得する場合には、以下のトグルスイッチを「オン」にします。

      • SQL毎の詳細情報を取得します:実行結果に加え、SQL毎の詳細データも取得する場合にオンにします。

      • 実行結果と詳細情報をマージして1つのCSVにします:実行結果CSVと詳細データCSVを1つのファイルにまとめたい場合にオンにします。

      各データのダウンロードリンク※4

      ダウンロードするデータ内容(実行結果、詳細情報、またはその両方)を選択します。

      • SQL毎の実行結果を出力します

      • SQL毎の詳細情報を出力します

      • 実行結果と詳細情報を統合して出力します

      ※1 Insight DT 3.5以前の場合の表記です。

      ※2 Insight DT 3.2以前の場合、ステータスは[失敗したSQL][両DBで失敗したSQL][結果が異なるSQL][性能が劣化したSQL][問題がなかったSQL][テストができなかったSQL]と表示されます。

      ※3 Insight DT 3.5以前の場合、表示されます。

      ※4 Insight DT 3.6以降の場合、表示されます。

  3. ZIP圧縮されたCSVファイルのダウンロードが開始します。

CSVファイルの項目の詳細は「CSVファイルのカラムについて」を参照してください。
6.7.9.7. 修正を評価SQLセットに適用

修正したSQLを評価SQLセットにマージします。

  1. [修正を評価SQLセットに適用]をクリックします。

    サマリー_修正を評価SQLセットに適用
  2. 確認用の画面が表示されます。
    [評価SQLセット]を選択し、画面下部の[修正を評価SQLセットに適用]をクリックします。

    サマリー_修正を評価SQLセットに適用_適用

選択した評価SQLセットへマージされます。
修正したSQLは評価SQLセットへ上書きされますので、必要に応じて評価SQLセットのコピーを作成してください。

6.7.9.8. SQLの抽出(ツール連携)

実行したアセスメントの結果から構文の重複を排除してSQLテキストを抽出します。
抽出したSQLは、失敗したSQLの自動変換など、外部ツールと連携して利用できます。

  1. Insight DT 3.5以前の場合、[ツール連携]>[SQLの抽出]をクリックすると、ダウンロードの確認画面が表示されます。

    SQLの抽出

    Insight DT 3.6以降の場合、[SQLの抽出]をクリックすると、ダウンロードの確認画面が表示されます。

    SQLの抽出
  2. どの実行ステータスのSQLをダウンロードするかを選択し、画面下部の[ダウンロード]をクリックします。
    ダウンロードが実行します。

    失敗したSQLの抽出
    1つのターゲットDBでのみ行うアセスメントの場合

    テスト用ソースDBとターゲットDBの2つのデータベースを指定して行うアセスメントでは、[ターゲットDBでのみ失敗][両DBで失敗][結果が相違][性能が劣化][成功][テスト用ソースDBでのみ失敗]から選択します。

    Insight DT 3.2以前の場合、ステータスは[失敗したSQL][両DBで失敗したSQL][結果が異なるSQL][性能が劣化したSQL][問題がなかったSQL][テストができなかったSQL]と表示されます。

    失敗したSQLの抽出
    テスト用ソースDBとターゲットDBの2つのデータベースを指定して行うアセスメントの場合
詳細は「失敗したSQLの抽出」の項目を参照してください。

6.7.10. SQL実行結果一覧

サマリー画面の左のサイドバーのメニューからSQL実行結果一覧へ遷移します。
または、サマリーの画面からSQLを絞り込むとSQL実行結果一覧画面へ遷移します。

サマリーの画面からのSQL絞り込みは、パイチャートのステータスやグルーピングされた一覧のリンクをクリックします。
クリックしたリンクによって、SQL実行結果一覧での初期のフィルタの状態が異なります。

SQL実行結果一覧画面上部の修正完了率(バーチャート)では、左側に未修正のSQL、右側に修正済のSQLの割合と件数が表示されます。
初期表示は未修正のSQLが100%、修正済のSQLが0%です。

SQL実行結果一覧では、一番左に表示されるSQL実行の番号(#)をクリックすると、そのSQL詳細画面へ遷移します。

SQLのステータスが失敗アイコン[失敗アイコン]の場合、SQLを修正、保存することで修正アイコン[修正アイコン]に変わります。
SQLの保存については、「SQLの保存」を参照してください。
保存していくことでSQLのステータスや画面上部の修正完了率が変更されていきます。

実行結果一覧_2DB
Insight DT 3.2以前では、パンくずリストの「SQL実行結果一覧」が「SQL実行結果一覧・修正作業進捗」と表示されます。
6.7.10.1. 実行結果一覧

SQL実行結果、修正状態、グルーピング、フィルタリングから選択した項目で実行結果一覧の表示が切り替わります。

各項目の詳細は「使用している項目名について」を参照してください。
SQL実行結果
1つのターゲットDBでのみ行うアセスメントの場合
実行結果一覧_1DB
項目名 説明

失敗
(失敗したSQL)

SQL実行が失敗したものを表示します。

成功
(問題がなかったSQL)

SQL実行が成功したものを表示します。

()内はInsight DT 3.2以前のバージョンでのステータス表記です。

テスト用ソースDBとターゲットDBの2つのデータベースを指定して行うアセスメントの場合
実行結果一覧_2DB
項目名 説明

ターゲットDBでのみ失敗
(失敗したSQL)

ターゲットDBでのみSQL実行が失敗したものを表示します。

両DBで失敗
(両DBで失敗したSQL)

テスト用ソースDBとターゲットDBの両データベース上でSQL実行が失敗したものを表示します。

結果が相違
(結果が異なるSQL)

テスト用ソースDBとターゲットDBの両データベース上でSQL実行が成功したが、SQL実行結果が異なったものを表示します。

性能が劣化
(性能が劣化したSQL)

テスト用ソースDBとターゲットDBの両データベース上でSQL実行が成功し、SQL実行結果は同じであったが、ターゲットDBでの実行時間がテスト用ソースDBよりも遅かったものを表示します。

成功
(問題がなかったSQL)

SQL実行が成功したものを表示します。

テスト用ソースDBでのみ失敗
(テストができなかったSQL)

テスト用ソースDBでのみSQL実行が失敗したものを表示します。

()内はInsight DT 3.2以前のバージョンでのステータス表記です。

修正状態
修正状態
項目名 説明

修正済

SQL詳細画面で修正が完了したSQLを表示します。

未対処

SQL詳細画面で未修正のSQLを表示します。

グルーピング

グルーピングのチェックボックスにチェックを入れて、プルダウンメニューからグルーピングする項目を選択することで、SQLをグルーピングします。

グルーピング

グルーピングできる項目は条件によって異なります。グルーピングできる項目は以下のとおりです。

  • PI Hash

  • SQL ID

  • エラーコード

  • エラーメッセージ

  • ユーザー

  • プログラム

この機能は、Insight DT 3.2以前で使用できます。Insight DT 3.3以降では使用できません。
フィルタリング

実行結果一覧の以下の項目の中から、特定の値(グレーボックスで囲まれたセル)をクリックすることで、表示されているSQLをフィルタリングします。
フィルタリングする項目は複数選択できます。

フィルタリング

フィルタリングできる項目は条件によって異なります。フィルタリングできる項目は以下のとおりです。

  • PI Hash

  • SQL ID

  • DBユーザー

  • プログラム

  • ターゲットDBエラーコード

  • ターゲットDBエラーメッセージ

Insight DT 3.3で、フィルタリングに以下の機能が追加されました。

フィルタリングメニューからフィルタリング(Insight DT 3.3以降)

項目名の隣のフィルタリングメニューをクリックして、フィルタリングもできます。
チェックを入れて[適用]をクリックすると、チェックした値でフィルタリングされます。
フィルタ後は表内のフィルタ処理は無効になります。

SQL一覧_カラムフィルタリング
  • 1ページ当たり100件まで表示します。

  • 検索はページ内でのみ有効です。

詳細フィルタを用いたフィルタリング(Insight DT 3.3以降)

フィルタリングの右の[詳細フィルタ]をクリックすると、メニューが表示されます。
フィルタ条件にフィルタ対象、演算子、値を入力して[適用]をクリックします。
フィルタリング結果に詳細フィルタを適用することもできます。

SQL一覧_詳細フィルタ
  • ステータス項目以外の項目をフィルタ条件に追加することができます。

  • Insight DT 3.3以前では、適用中のフィルタはフィルタ対象に表示されません。
    Insight DT 3.4以降では、適用中のフィルタはフィルタ対象にも表示され、編集できます。

  • 中央の項は演算子を選択します。

  • 演算子がNULL、NOT NULLの場合、値はグレー表示になり設定できません。

  • フィルタ対象の重複が許されるのは、一部演算子(<、≦、>、≧)のみです。

  • 演算子「IN」を選択すると、値の右に[+]アイコンが表示され、OR条件を作成することができます。この時、フィルタ対象と演算子はグレー表示になり設定できません。
    OR検索用の行は、各項目に不備がない状態でのみ行の追加ができます。演算子が「IN」のときのみ表示されます。
    Insight DT 3.5から、ILIKEが指定可能になりました。LIKEとILIKEの違いは下記のとおりです。

    演算子 説明

    LIKE

    [値]に指定されたパターンに一致する文字列でフィルタします。大文字小文字を区別します。

    ILIKE

    [値]に指定されたパターンに一致する文字列でフィルタします。大文字小文字を無視します。

  • 内部で処理できない値を入力すると、その旨のメッセージが表示されます。

SQL実行結果一覧の表示項目とSQLのソート

アセスメントの実行タイプによって、SQL実行結果一覧の表示される項目が異なります。
また、項目名をマウスでホバリングすると項目名の前または後ろに矢印が表示されます。矢印をクリックすると、SQLを昇順と降順でソートします。

SQL一覧_ソート

ソートできる項目は条件によって異なり、ソートできる項目は以下のとおりです。
表中の「1DB」は1つのターゲットDBでのみ行うアセスメントを指します。
また、「2DB」はテスト用ソースDBとターゲットDBの2つのデータベースを指定して行うアセスメントを指します。

項目 1DB(パース) 1DB(実行) 2DB(パース) 2DB(実行) ソート

#(連番)

SQLテキスト

修正済みSQL

不可

変換済みSQL(テスト用ソースDB)※1

変換済みSQL(ターゲットDB)※1

PI Hash

SQL ID

DBユーザー

バインド変数名

不可

変換済みバインド変数(テスト用ソースDB)※1

不可

変換済みバインド変数(ターゲットDB)※1

不可

SQL開始時刻

SQL終了時刻※2

プログラム

ログオン時刻

ログオフ時刻※2

テスト用ソースDBエラーコード

不可

テスト用ソースDBエラーメッセージ

不可

ターゲットDBエラーコード

ターゲットDBエラーメッセージ

ソースDB実行時間(秒)

テスト用ソースDB実行時間(秒)

ターゲットDB実行時間(秒)

遅くなった割合(%)

テスト用ソースDB処理時間(秒)※1

ターゲットDB処理時間(秒)※1

テスト用ソースDB取得行数※1

ターゲットDB取得行数※1

影響のあった行数(テスト用ソースDB)※1

影響のあった行数(ターゲットDB)※1

収集時処理行数※1

行比較結果※1

セッションID※1

オブジェクト

ORDER BY句指定※1、3

行取得中断※2

Action※2

Action Operation※2

Action Program※2

Client Information※2

Client Info IP※2

Client Info Host※2

Client Info User※2

〇:表示、✕:非表示、可:ソートできる、不可:ソートできない
※1 この項目は、Insight DT 3.3以降で使用できます。
※2 この項目は、Insight DT 3.4以降で使用できます。
※3 行順序の比較で[完全一致]を選択した時以外はNULLになります。

重複排除

SQL IDまたはPI Hashを用いて同じSQL文を持つ結果を排除します。PI Hashによる重複排除は意味的に同じSQL文を同一とみなします。
プルダウンメニューの[しない][PI Hash][SQL ID]から重複排除する項目を選択します。

SQL一覧_重複排除
この機能は、Insight DT 3.3以降で使用できます。
カラム表示設定

実行結果一覧画面に表示されるカラムをカスタマイズできます。

カラム表示設定

[カラム表示設定]ボタンを押すと、表示するカラム一覧が表示され、表示させたくないカラムのチェックを外すと非表示になります。

  • デフォルトではすべてのカラムを表示しています。

  • [#][ステータス][SQLテキスト]は常に表示されるカラムで、非表示にできません。

  • 変更した表示設定は同一ブラウザにおいて保持されます。

    カラム表示設定
    この機能は、Insight DT 3.7以降で使用できます。
6.7.10.2. SQL実行結果一覧のダウンロード

アセスメント結果をCSVファイル形式でダウンロードします。
アセスメント結果にフィルタリングを反映させた結果をダウンロートすることができます。

この機能は、Insight DT 3.6以降で使用できます。
  1. SQL実行結果一覧画面でフィルタリング設定を行った後、[ダウンロード]をクリックします。

  2. 現在設定されているフィルタリング結果をダウンロードする場合、[現在設定されているフィルタを使用]のトグルスイッチを「オン」にして、ダウンロードするリンクをクリックします。
    または、現在設定されているフィルタリング結果は使用しない場合、[現在設定されているフィルタを使用]を「オフ」にします。フィルタリングしたいフィルタ設定の実行結果にチェックを入れて、ダウンロードするリンクをクリックします。

    ope sqllist download modal
    項目 説明

    フィルタ設定

    [現在設定されているフィルタを使用]のトグルスイッチを「オン」にするとダウンロードする実行結果を現在設定されているフィルタで絞り込みを行うことができます。

    [現在設定されているフィルタ]の対象は、SQL実行結果一覧画面の下記項目です。

    • Insight DT 3.6以前の場合

      • [SQL実行結果]

      • [フィルタリング]

    • Insight DT 3.7以降の場合

      • Insight DT 3.6以前の場合の対象

      • [重複排除]

    [現在設定されているフィルタを使用]を「オフ」にすると、以下の実行結果から選択できます。

    • 1つのターゲットDBでのみ行うアセスメントの場合、[成功][失敗]、または結果に関係なくすべてのSQLの実行結果を取得する場合は[成功][失敗]両方にチェックを入れます。

    • テスト用ソースDBとターゲットDBの2つのデータベースを指定して行うアセスメントの場合、[ターゲットDBでのみ失敗][両DBで失敗][結果が相違][性能が劣化][成功][テスト用ソースDBでのみ失敗]、またはすべてにチェックを入れます。

    テスト用ソースDB

    テスト用ソースDBとターゲットDBの2つのデータベースを指定して行うアセスメントでテスト用ソースDBの情報も取得する場合には、トグルスイッチを「オン」にします。

    各データのダウンロードリンク

    ダウンロードするデータ内容(実行結果、詳細情報、またはその両方)を選択します。

    • SQL毎の実行結果を出力します

    • SQL毎の詳細情報を出力します

    • 実行結果と詳細情報を統合して出力します

    • マイニングサーチ形式でダウンロード
      [現在設定されているフィルタを使用]をオンにした場合、表示されます。フィルタリング後のSQLをマイニングサーチ形式で出力します。

  3. ZIP圧縮されたCSVファイルのダウンロードが開始します。

6.7.11. SQLの詳細と実行

サマリーの画面からドリルダウンし、SQL実行結果一覧の画面左の連番(#)をクリックすると、SQL詳細画面に遷移します。

  • 1つのターゲットDBでのみ行うアセスメントと、テスト用ソースDBとターゲットDBの2つのデータベースを指定して行うアセスメントとで表示内容が異なります。

  • 修正SQLセットを適用して実行した場合は、適用されたSQLが表示されます。

SQL詳細
1つのターゲットDBでのみ行うアセスメント
SQL詳細_2db
テスト用ソースDBとターゲットDBの2つのデータベースを指定して行うアセスメント
6.7.11.1. SQLの修正

[SQLの修正]タブでは、SQLを修正しての実行確認などを行うことができます。

ステータス

画面上部にはステータスが表示されます。
実行できなかったSQLの場合は、エラーコードとエラーメッセージが表示されます。
実行できたSQLの場合は、ターゲットDBでのSQL実行時間が表示されます。

テスト用ソースDBとターゲットDBの2つのデータベースを指定して行うアセスメントでは、両データベースに対してSQLを実行して得られた情報が表示されます。
アセスメント設定の行順序の比較で一致レベルを指定した場合、ステータスに再ソートした結果であるかどうかを表示します。

  • 順序を含めて完全一致

  • 再ソート実行したが不一致

  • 再ソート実行により一致

SQL詳細_ステータス_再ソート
ステータスに再ソートした結果を表示する機能は、Insight DT 3.3以降で使用できます。
SQLの編集、実行計画取得、実行と保存

SQLを編集と実行計画取得、実行、保存します。

テスト用ソースDBとターゲットDBの2つのデータベースを指定して行うアセスメントでは、両データベースに対してそれぞれSQLを修正して、実行計画取得、実行を行います。
保存はターゲットDBに対して行ったSQLのみ保存対象となります。

SQLの整形

[SQLの修正]タブを選択して、画面左の[整形する]をクリックすると、現在表示されているSQLを整形します。

テスト用ソースDBとターゲットDBの2つのデータベースを指定して行うアセスメントでは、それぞれのSQLテキスト編集ペインで利用できます。

SQLの実行と実行先の設定

SQLの実行先を設定して、SQLを実行します。

  1. 画面左のSQLを、ターゲットDBへ実行させるSQLに書き換えます。

  2. 画面右の[設定][バインド変数]タブにて、実行先のデータベースの設定を行います。

  3. 必要な値を入力します。

    SQL詳細_設定_保存
    設定
    項目名 説明

    ターゲットDB

    SQLの実行先のDBを選択します。

    DBユーザー

    DBユーザー名を入力します。
    ターゲットDBに存在するユーザーを入力します。

    パスワード

    DBユーザーのパスワードを入力します。
    入力すると、グレーアウトした[SQLの実行]が有効になります。

    実行タイプ

    実行する方法を選択します。
    実行:実際にSQLを実行します。
    パース:パース実行を行います。バインド変数の値がなくてもテーブルの有無や構文のチェックができます。

    フェッチ・サイズ値※1

    一度にデータベースサーバーから受け取る行数を指定します。

    SQL実行結果をコミットします

    トグルスイッチをオンにすると、SQL実行をロールバックせずにコミットして、結果をターゲットDBに保持します。

    バインド変数書式変換
    (名前付きバインド変数形式を変換します※2

    トグルスイッチをオンにすると、SQLに含まれる名前付きバインド変数(ex :name)をターゲットDBで実行可能な書式に変換してSQLを実行します。
    移行先が名前付き引数に対応していないDBMSでもデータベース接続ドライバー、またはデータベース接続プログラムによって対応される場合を再現してアセスメント実行時にSQLを自動変換します。

    バインド変数書式変換は、Oracle Database以外のデータベースからOracle Databaseへの変換をサポートしていません(icon ex 「$1」や「?」から「:1」への変換)。

    ※1 Insight DT 3.4以降で設定できます。
    ※2 Insight DT 3.5以前での表記です。

    SQL詳細_バインド変数
    バインド変数
    項目名 説明

    バインド変数

    バインド変数とその値を入力します。
    icon plus]をクリックすると入力要素が表示されます。行の右にある[icon x]をクリックすると当該の入力要素が削除されます。

    • 変数名、値、データ型を入力します。

      • 値にNULLを指定するときは、NULLにチェックを入れてください。

      • データ型は、[文字列][固定長文字列]※3[任意精度数値][整数][小数][時刻][日付][日付時刻][真偽値][バイナリ]から選択してください。

    • 変数名の頭に「:」や「$」は必要ありません。

    ※3 Insight DT 3.3以降で設定できます。

    バインド変数については「ターゲットDB実行時の型指定と入力書式」を参照してください。
  4. 画面右の[SQL実行]をクリックすると、SQLが実行されます。

  5. 結果は、画面右上のインフォメーションに表示されます。

    SQL詳細_SQLの実行_結果
    • SQLがSELECTのときは取得結果を表示します(最大100行表示)。

      取得結果
    • DML(Update/Insert/Delete)のときは更新された行数の情報を表示します。

      取得結果
SQLの保存

SQLの修正をアセスメントに保存します。
ここで保存した修正は、サマリー画面での修正を評価SQLセットに適用する場合、または修正SQLセットを作成する際に使用できます。
テスト用ソースDBとターゲットDBの2つのデータベースを指定して行うアセスメントでは、ターゲットDBに対して実行したペインでのみSQL保存ができます。
Insight DT 3.6以降の場合、SQLの保存の設定時にバインド変数の保存有無を選択したり、保存したSQLの修正を取り消すことができます。

  1. SQLを修正した後、[SQLの保存]をクリックします。

    SQL詳細_保存
    項目名 説明

    SQLの保存

    修正したSQLを保存します。
    SQLのみの保存となるため、バインド変数はNULLとして保存されます。
    すでにバインド変数を保存している場合、NULLとして上書き保存されてしまう点に注意してください。

    バインド変数も含めて保存

    修正したSQLとバインド変数の設定の両方を保存します。
    [SQLの保存]右横の下三角形のアイコンをプルダウンするとメニューが表示されます。

    バインド変数のみ保存

    バインド変数の設定のみ保存します。
    [SQLの保存]右横の下三角形のアイコンをプルダウンするとメニューが表示されます。
    バインド変数のみの保存となるため、SQLはNULLとして保存されます。
    [SQLの保存]と同様、すでにSQLを保存している場合、NULLとして上書き保存されてしまう点に注意してください。

    この機能は、Insight DT 3.6以降で使用できます。

  2. [修正の取り消し]をクリックすると、保存したSQL(バインド変数)を取り消します。
    修正したSQLが保存されている場合に[修正の取り消し]が有効になります。

    SQL詳細_修正の取り消し
    この機能は、Insight DT 3.6以降で使用できます。
実行計画取得

[実行計画取得]をクリックすると、詳細画面で表示されているSQLに対して実行計画を取得します。

実行計画取得後の表示形式は、対象データベースにより異なります。
実行計画
6.7.11.2. 取得結果

[取得結果]タブでは、テスト用ソースDBとターゲットDBの2つのデータベースを指定して行うアセスメントで取得結果が異なったSQLに対して、アセスメント実行時に取得したSQLの実行結果を表示します。

  • SQLがSELECTのときに取得行数と取得結果を表示します。

  • 取得結果が(最初に)異なる箇所をメッセージ、およびハイライトで表示します。

    • 取得行数、カラム数が異なる場合は、画面上部にメッセージが表示されます。

      (最初に)異なる箇所をメッセージ
    • 上記以外のカラム名など異なる場合等は、メッセージと該当セルをハイライトで表示します。

      (最初に)異なる箇所をハイライト
  • 取得行数が多い場合は、ページ番号、表示件数を指定して移動することができます。

    ページ移動
    この機能は、Insight DT 3.3以降で使用できます。
  • すべてのページまたは現在表示しているページを選択してダウンロードできます(JSONまたはCSV形式)。
    データが大きい場合(10MB)は、取得結果の一覧に表示されませんが、ダウンロードして確認することができます。

    取得結果のダウンロード
    • Insight DT 3.2で実行されたアセスメントについては、[全てのページ(JSON形式)]のみダウンロードできます。

    • この機能は、Insight DT 3.3以降で使用できます。

  • カラム名に値の型をツールチップで表示します。

    値の型チップ
    この機能は、Insight DT 3.6以降で使用できます。
6.7.11.3. 性能

[性能]タブでは、テスト用ソースDBとターゲットDBの2つのデータベースを指定して行うアセスメントでアセスメント実行時の実行時間を並べて表示します。

[性能]タブは、Insight DT 3.4で廃止になりました。
Insight DT 3.4で[性能]タブの内容は[SQLの修正]タブの画面上部のステータスに表示されます。
6.7.11.4. 実行計画

[実行計画]タブでは、テスト用ソースDBとターゲットDBの2つのデータベースを指定して行うアセスメントで、アセスメント実行時に取得・保存した実行計画を表示します。 保存条件はバージョンにより異なります。

  • Insight DT 3.6以前の場合:性能が劣化したSQLを対象に実行計画を保存します。

  • Insight DT 3.7以降の場合:アセスメント設定の[実行計画の保存条件]に従います。

実行計画_2DB
6.7.11.5. ソースSQL

[ソースSQL]タブでは、ソースDBで実行されていたSQLを確認します。
[SQLの修正]タブでSQLを修正した場合、こちらの[ソースSQL]タブから編集前のSQLを確認できます。
またInsight DT 3.3以降では、[SQLの修正]タブでバインド変数を修正した場合でも、[ソースSQL]タブから編集前のバインド変数を確認できます。

SQL詳細_ソースSQL_バインド変数
6.7.11.6. 詳細情報

[詳細情報]タブでは、SQL実行結果の詳細情報を確認します。
表示される項目は、SQL実行結果一覧と同様です。

SQL詳細_詳細情報
項目の詳細は「使用している項目名について」を参照してください。

6.8. 修正SQLセット

修正SQLセットは、評価SQLセットの一部のSQLに対し、修正を適用してアセスメントを実行する機能です。

1回目のアセスメントで実行エラーとなったSQLを、外部ツールなどで更新して再度実行する場合に、修正した部分を追加適用してアセスメントを行います。

6.8.1. 修正SQLセットの作成

  1. グローバルナビゲーションバーから[修正SQLセット]をクリックします。

  2. 修正SQLセットの一覧画面から[新規作成]をクリックします。

    修正SQLセット
  3. 必要な値を入力した後、画面下部の[新規作成]をクリックします。

    修正SQLセットの新規作成1
    アセスメント結果にて保存してSQLから作成
    修正SQLセットの新規作成2_外部
    外部ツールで変換したSQL情報から作成
    項目名 説明

    修正SQLセット名

    任意の修正SQLセットの名前を入力します。
    大文字、小文字を区別します。

    修正SQLセットのソース選択

    修正SQLセットは、以下のいずれかの手段から作成できます。

    • アセスメント結果にて保存したSQLから作成
      アセスメントに対して[SQLの修正]で修正保存したSQLを使用する場合に選択してください。

    • 外部ツールで変換したSQL情報から作成
      評価SQLセットに対してツール連携で適用可能な、ZIPファイルまたはCSVファイルをアップロードする場合に選択してください。

    アセスメント結果にて保存したSQLから作成

    アセスメント

    ▼をクリックし、修正SQLセットに使用するアセスメントを選択してください。

    外部ツールで変換したSQL情報から作成

    データ元ファイル

    icon ope clipまたは入力欄をクリックし、修正SQLセットに使用するファイルを選択してください。

    メモ

    修正SQLセットについてのメモを入力します。

修正SQLセットの一覧に情報が追加されると完了です。
修正SQLセットが追加されるまで時間がかかる場合があります。

6.8.2. 修正SQLセットのSQL詳細

修正SQLセットを作成した後、修正SQLセットの中のSQLの詳細を確認します。

  1. 修正SQLセットの一覧画面から詳細情報を確認する修正SQLセット名を選択します。

  2. SQLの一覧画面が表示されます。

    修正SQLセットのSQL詳細

6.8.3. 修正SQLセットの結合

複数の修正SQLセットを結合して1つの修正SQLセットを作成します。

Insight DT 3.3以前の場合
  1. ローカルナビゲーションバーから[結合]をクリックします。

    修正SQLセットの結合
  2. 新たに生成する修正SQLセット名を入力し、生成の元になる複数の修正SQLセットを選択します。
    画面下部にある[新規作成]をクリックします。

    修正SQLセットのセット名
    項目名 説明

    修正SQLセット名

    新たに生成する修正SQLセットの名前を入力します。既存の修正SQLセット名と異なる名前にしてください。
    大文字、小文字を区別します。

    修正SQLセット

    ▼をクリックし、結合したい修正SQLセットにチェックします。
    2つ以上の修正SQLセットを選択してください。

    メモ

    修正SQLセットについてのメモを入力します。

Insight DT3.4以降の場合
  1. 修正SQLセットの一覧画面から結合する修正SQLセットにチェックを入れます。
    ステータスが完了アイコン[ope status success]の修正SQLセットを選択してください。
    ステータスが失敗アイコン[ope status failed]の修正SQLセットは選択しても、内部フィルタで除外されます。

    修正SQLセットの結合
  2. ローカルナビゲーションバーから[結合]をクリックします。

  3. 新たに生成する修正SQLセット名を入力し、結合するSQLセットの順番をドラッグアンドドロップで並べ替えます。
    画面下部にある[結合]をクリックします。
    ※ステータスが失敗アイコン[ope status failed]の修正SQLセットは表示されません。

    修正SQLセットのセット名
    項目名 説明

    修正SQLセット名

    新たに生成する修正SQLセットの名前を入力します。既存の修正SQLセット名と異なる名前にしてください。
    大文字、小文字を区別します。

    メモ

    修正SQLセットについてのメモを入力します。

修正SQLセットの一覧に情報が追加され、完了アイコン[完了アイコン]になると完了です。
修正SQLセットを作成中はアイコンが[作成アイコン]になります。完了まで時間がかかる場合があります。

6.8.4. 修正SQLセットの編集

修正SQLセットの名前やメモを編集します。

  1. 修正SQLセットの一覧画面から編集する修正SQLセットにチェックを入れます。

  2. ローカルナビゲーションバーから[編集]をクリックします。

  3. 必要な値を入力した後、画面下部にある[保存]をクリックします。

    評価SQLセット_編集_画面
    項目名 説明

    修正SQLセット名

    変更する修正SQLセット名を入力します。

    メモ

    修正SQLセットについてのメモを入力します。

修正SQLセットの一覧の表示が変更になると、編集の完了です。

6.8.5. 修正SQLセットの削除

  1. 修正SQLセットの一覧画面から削除する修正SQLセットにチェックを入れます。

  2. ローカルナビゲーションバーから[削除]をクリックします。

  3. 確認用画面が表示されます。削除する修正SQLセットを確認してください。
    問題が無ければ、画面下部にある[削除]をクリックしてください。

    修正SQLセット_削除_確認

一覧から、該当の修正SQLセット名がなくなると削除の完了です。
修正SQLセットの削除はデータ量に応じて数分かかる場合があります。

6.9. AWSマイグレーション

AWSマイグレーションは、あらかじめスケジュールを設定した期間中に、定期的に評価SQLセットの作成とアセスメントの実行を繰り返すことができる機能です。
データベースのスナップショットから、テスト用ソースDBとターゲットDBを作成して、2つのデータベースを指定したアセスメントを行います。

6.9.1. AWSマイグレーションの一覧

  1. グローバルメニューバーから[AWSマイグレーション]をクリックします。

  2. 設定されているAWSマイグレーションの一覧が表示されます。

    AWSマイグレーションの一覧

    一覧では、それぞれのAWSマイグレーションの状態が表示されます。

    項目 説明

    ステータス

    最新のアセスメント実行のステータスをアイコンで示します。

    execution ico スケジュール状態

    現在スケジュール実行が有効かどうかを示します。

    マイグレーション名

    設定したマイグレーションの名前を表示します。

    メモ

    設定したメモ情報を表示します。

    マイグレーション

    テスト用ソースDB、ターゲットDBの情報を表示します。

    スケジュール

    設定したスケジュール情報を表示します。

    結果
    (Insight DT 3.6以前の場合)

    実行済みのアセスメント結果のサマリーを表示します。

    SQL数
    (Insight DT 3.7以降の場合)

    実行されたSQL数(件)を表示します。

    失敗した割合
    (Insight DT 3.7以降の場合)

    実行されたSQLのうち、失敗したSQLの割合(%)を表示します。

    更新日時
    (Insight DT 3.4以前の場合:最終更新日)

    最後に更新された日付を表示します。

    作成日時
    (Insight DT 3.4以前の場合:生成日時)

    マイグレーションプロジェクトを作成した日時を表示します。

6.9.2. AWSマイグレーションの新規作成

  1. AWSマイグレーションの一覧画面から[新規作成]をクリックします。

  2. AWSマイグレーションの作成では以下の設定を行い、最後にバリデーションを実行してから新規作成します。

    • 概要の設定

    • SQLログ取得設定

    • SQL実行先データベース設定

    • アセスメント設定

    • スケジュール設定

バリデーションに成功した場合でも、AWSアカウントの状態などにより、処理を開始できない場合があります。

新規作成されたAWSマイグレーションは一覧へ追加され、テスト用ソースDBが作成されたのち、実行待ち状態(スケジュールが有効な状態)となります。
設定された処理タイミングになると、ソースDBからのログ取得、評価SQLセットの作成、アセスメントが実行されます。

6.9.2.1. 概要の設定

AWSマイグレーションの概要情報を設定します。
概要情報は後から変更することができます。

概要の設定
項目 説明

マイグレーション名

AWSマイグレーションの設定名を入力します。
大文字、小文字を区別します。半角英数字のみ使用できます。

メモ

マイグレーションの概要を入力します。

6.9.2.2. SQLログ取得設定

ソースDB(SQL収集元)になるRDSのデータベース情報を設定します。
本番データベースや開発用データベースなど、アプリケーションからSQLが実行され、そのSQL実行がログとして記録されているデータベースを指定します。

SQLログ取得設定
項目 説明

使用するAWSプロファイル名

使用するAWSプロファイル名を選択します。「デフォルト」を選択した場合、共有AWS認証情報ファイルのdefault設定が存在すればそれを使用します。存在しない場合、IAMロールの設定で認証を試みます。
AWSプロファイル名を指定した場合、指定したAWSプロファイル名で認証を行います。無効なAWSプロファイル名の場合、エラーが発生します。

リージョン

SQL収集元データベースのデータベースインスタンスまたはクラスターがあるリージョンを指定します。

インスタンスID/クラスタID

SQL収集元データベースのインスタンスIDを指定します。
対象がAurora DBクラスターの場合にはクラスターIDを指定します。

データベース名

SQL収集元データベースのデータベース名を指定します。
インスタンス内で複数のデータベースを運用していて、それらをテスト対象としたい場合は、AWSマイグレーションは別々に設定する必要があります。

SQL収集開始日

SQL収集元データベースからSQLを収集する日時を指定します。
すでに出力されているような古いSQL情報をテスト対象としたくない場合に指定します。
指定しない場合は、取得できる最も古いデータまで遡ります。

この機能は、Insight DT 3.7以降で使用できます。

6.9.2.3. SQL実行先データベース設定

テスト対象(SQL実行先)になるテスト用ソースDBとターゲットDBを設定します。
以下の2パターンで作成することができます。

スナップショットからRDSインスタンス/Auroraクラスタを作成する

あらかじめ手動で作成し用意したスナップショットからテスト用ソースDBやターゲットDBになるRDSインスタンスやAurora DBクラスターを作成するには、以下の設定を行います。
スナップショットからテスト用ソースDBやターゲットDBを作成する場合、AWSマイグレーションの作成直後に、最初にインスタンスの作成が実行されます。

スナップショットからRDSインスタンス/Auroraクラスタを作成する
項目 説明

使用するAWSプロファイル名

使用するAWSプロファイル名を選択します。「デフォルト」を選択した場合、共有AWS認証情報ファイルのdefault設定が存在すればそれを使用します。存在しない場合、IAMロールの設定で認証を試みます。
AWSプロファイル名を指定した場合、指定したAWSプロファイル名で認証を行います。無効なAWSプロファイル名の場合、エラーが発生します。

スナップショットARN

テスト用ソースDB/ターゲットDBの作成の元となるスナップショットのARNを指定します。

インスタンスクラス

新規作成するテスト用ソースDB/ターゲットDBのインスタンスクラスを指定します。

リージョン

新規作成するテスト用ソースDB/ターゲットDBのリージョンを指定します。

セキュリティグループ

新規作成するテスト用ソースDB/ターゲットDBのセキュリティグループのセキュリティグループIDを指定します。
複数入力する場合は、「,」で区切ります。

オプショングループ

新規作成するテスト用ソースDB/ターゲットDBのオプショングループのオプショングループ名を指定します。
テスト用ソースDB/ターゲットDBの作成の元となるスナップショットにAurora DBクラスターを指定した場合は、指定できません。
指定しない場合はデフォルトのオプショングループが使用されます。

パラメータグループ

新規作成するテスト用ソースDB/ターゲットDBのパラメータグループのパラメータグループ名を指定します。
テスト対象がAurora DBクラスターの場合にはクラスターパラメータグループ名を指定します。
指定しない場合はデフォルトのパラメータグループまたはクラスターパラメータグループが使用されます。

アップグレード後のエンジンバージョン

アップグレードしたターゲットDBを作成する場合、アップグレード後のエンジンバージョンを指定します。
スナップショットのデータベースバージョンから、1回でアップグレード(変更)可能なバージョンを指定してください。

アセスメント完了後の自動停止

トグルスイッチをオンにすると、アセスメントが完了したタイミングで作成したデータベースを停止します。

この機能は、Insight DT 3.7以降で使用できます。

  • AWSマイグレーションからアップグレードしたデータベースを作成する際、AWS側にスナップショットが自動で作成されます。
    作成されたスナップショットが不要な場合は削除してください。

  • [アセスメント完了後の自動停止]を選択していても、次の処理開始までの時刻が30分以内の場合には停止はされません。

  • RDSインスタンス、およびAurora DBクラスターは、作成後AWS上で課金対象となり、停止していても7日間利用が無ければ再起動される仕様となっています。
    Insight DTでは、再起動した後のRDSインスタンス、またはAurora DBクラスターの再停止処理は行いません。
    RDSインスタンス、およびAurora DBクラスターの管理は、お客様側で行ってください。

登録してあるターゲットDBを使用する

Insight DTからテスト用ソースDBを作成せずに、既存のターゲットDBを使用してAWSマイグレーションを行います。

登録してあるターゲットDBを指定
項目 説明

テスト用ソースDB

テスト用ソースDBとして使用するデータベースを指定します。

ターゲットDB

ターゲットDBとして使用するデータベースを指定します。

6.9.2.4. アセスメント設定

アセスメントを実行する際の設定を行います。

アセスメント設定
項目の詳細については、「アセスメント」を確認してください。
6.9.2.5. スケジュール設定

SQL情報を取得してアセスメント実行を繰り返し行うためにスケジュール、終了時期の設定を行います。
また、スケジュール設定を行わずに、直後に1回のみ実行することもできます。

スケジュール設定
項目 説明

スケジュール設定

SQLの収集とアセスメント実行スケジュールを指定して定期的に実行する場合は、[スケジュールを設定する]を選択します。
今収集しているSQLのみをアセスメント実行する場合は、[直ちに実行する]を選択します。

マイグレーション実施期間

アセスメント実行の終了日を指定します。終了日の23:59までに開始されるスケジュールが実行対象となります。

評価SQLセット/アセスメントの実行頻度

評価SQLセット作成とアセスメント実行の頻度を[時間ごと]※1または[日ごと]に指定します。

※1 [時間ごと]では実行開始タイミングにかかわらず0時を基準としたタイミングで実行します。
また、指定した時間で24時間を割り切れない場合、最後の間隔が指定した時間とは異なります。

  • 2時間おき:0,2,4,6, …​ , 22

  • 3時間おき:0,3,6,9, …​ , 21

  • 5時間おき:0,5,10, …​ , 20(最後の間隔は4時間になります)

6.9.2.6. 確認

設定内容を確認します。
[バリデーション]をクリックすると、入力した値が正しいかAWSに接続し確認します。
バリデーションに成功すると、[新規作成]がクリックできます。クリックすると続けてAWSマイグレーションを作成できます。

確認

6.9.3. AWSマイグレーションを複製して新規作成

既存のAWSマイグレーション設定をもとに、新たなマイグレーション作成を行います。
既存のものと同様の設定で一部のみを変更してAWSマイグレーションの設定を行いたい場合に便利です。

  1. AWSマイグレーションの一覧画面からもとにするAWSマイグレーションにチェックを入れます。

  2. ローカルナビゲーションバーから[複製して新規作成]をクリックします。

    複製して新規作成
  3. マイグレーション情報画面に沿って、設定を変更します。最後の確認画面で[新規作成]をクリックします。

    複製して新規作成:設定

6.9.4. AWSマイグレーションの編集

AWSマイグレーションの名前やメモを変更します。

  1. AWSマイグレーションの一覧画面から編集したいAWSマイグレーションにチェックを入れます。

  2. ローカルナビゲーションバーから[編集]をクリックします。

  3. 必要な値を入力した後、画面下部にある[適用]をクリックします。

    AWSマイグレーションの編集画面

6.9.5. AWSマイグレーションのスケジュールの変更

AWSマイグレーションをスケジュール実行する場合、終了日付と実行頻度を設定、変更することができます。
[変更後にスケジュール実行を開始します]をオンにして[適用]ボタンを押すと、変更したスケジュールの日時でアセスメント実行を開始します。
[変更後にスケジュール実行を開始します]をオフにして[適用]ボタンを押すと、スケジュールの日時は変更されますがアセスメント実行はされません。

  1. AWSマイグレーションの一覧画面からスケジュールを変更したいAWSマイグレーションにチェックを入れます。

  2. ローカルナビゲーションバーから[スケジュールの変更]をクリックします。

  3. 日時を変更後、[変更後にスケジュール実行を開始します]をオンにします。

    設定項目は、「スケジュール設定」を参照してください。
  4. 画面下部にある[適用]をクリックします。

    AWSマイグレーションのスケジュールの変更
この機能は、Insight DT 3.3以降で使用できます。

6.9.6. AWSマイグレーションの再開

設定されている終了日付が過ぎていないマイグレーションのみ再開します。

  1. AWSマイグレーションの一覧画面から再開したいAWSマイグレーションにチェックを入れます。

  2. ローカルナビゲーションバーから[再開]をクリックします。

  3. 問題が無ければ、画面下部にある[再開]をクリックします。

    AWSマイグレーションの再開
この機能は、Insight DT 3.3以降で使用できます。

6.9.7. AWSマイグレーションの中断

スケジュールが有効なAWSマイグレーションのスケジュール実行を無効化します。
中断したもののスケジュールを再度有効化することはできません。

  1. AWSマイグレーションの一覧画面から中断したいAWSマイグレーションにチェックを入れます。

  2. ローカルナビゲーションバーから[中断]をクリックします。

  3. 問題が無ければ、画面下部にある[中断]をクリックします。

    AWSマイグレーションの中断画面

6.9.8. AWSマイグレーションの削除

AWSマイグレーションの削除を行います。
対象のAWSマイグレーションから作成されたアセスメントや評価SQLセットを同時に削除しますが、ターゲットDBは削除されません。
[スナップショットからRDSインスタンス/AURORAクラスタを作成する]から作成した「ターゲットDBの削除」をする際、RDSインスタンスが削除可能な場合は削除します。

  1. AWSマイグレーションの一覧画面から削除したいAWSマイグレーションにチェックを入れます。

  2. ローカルナビゲーションバーから[削除]をクリックします。

  3. 問題が無ければ、画面下部にある[削除]をクリックします。

    AWSマイグレーションの削除画面

6.9.9. AWSマイグレーション結果の確認

  1. スケジュールが実行中、またはスケジュールが終了したAWSマイグレーションに対してマイグレーション名を選択します。

    AWSマイグレーションの選択
  2. マイグレーションの設定情報ならびに、実行済みのアセスメントの一覧が表示されます。

    AWSマイグレーションの結果確認

    アセスメント結果をCSVファイル形式でダウンロードすることもできます。
    サマリー画面右上の[ダウンロード]ボタンをクリックすると、ダウンロード画面を表示します。
    取得したい情報を選択して[ダウンロード]ボタンをクリックすると、ZIP圧縮されたファイルのダウンロードを開始します。

    AWSマイグレーションの結果ダウンロード:実行時
    実行タイプに[実行]を選択した場合
    AWSマイグレーションの結果ダウンロード:パース
    実行タイプに[パース]を選択した場合
  3. さらにアセスメント名を選択することで、アセスメントサマリーを表示することができます。

    サマリー画面の詳細については、「サマリー」を参照してください。

6.9.10. AWSマイグレーション実行時のログファイル出力設定について

AWSマイグレーションでログ情報を取得するためには、RDSインスタンスまたはAurora DBクラスターにてログ出力の設定が必要です。

設定方法は、「Amazon RDS上でのログファイル出力設定」を参照してください。

6.9.11. AWSマイグレーション実行時に必要なIAM設定について

AWSマイグレーションを実施するためにはIAMロールの設定が必要です。

詳細は「必要なIAM設定について」を参照してください。

6.10. その他の操作

6.10.1. ツール連携

失敗したSQLをユニークな形でファイル抽出します。
SQLを自動変換するツールを使用する際などに使用してください。
抽出単位は1SQLにつき1ファイルです。

通常のSQL実行評価までの手順は、以下の5ステップになります。

  1. ソースDBからIDT Managerへ網羅的にSQLを蓄積

  2. IDT Managerから評価SQLセットを作成

  3. ターゲットDBへ評価SQLセットを実行

  4. 実行結果を取得

  5. 実行結果の参照

ツール連携の場合は、続けて次の処理を行います。

  1. [失敗したSQLの抽出]失敗したSQLをユニークにし、1SQLにつき1ファイルの単位で抽出する

  2. 抽出したものを別途ツールに読み込ませ、自動修正等処理を行う

  3. 修正したSQL1つにつき1つのファイルとして保存する

  4. [修正を評価SQLセットに適用]修正したSQLを3で使用した評価SQLセットへマージする

  5. 再度ターゲットDBへ評価SQLセットを実行

  6. 実行結果を取得

  7. 修正したSQLがどれくらい修正できたか確認する

この手順を踏むことで、手動で修正するSQLの数を減らすことができます。

ツール連携の利便性について

以下、ツール連携にあたりInsight DTに用意されている機能の詳細です。

6.10.1.1. 失敗したSQLの抽出

実行したSQLの結果から、失敗したSQLをユニークな形で抽出します。

  1. アセスメントのサマリー画面から[ツール連携]>[SQLの抽出]をクリックします。
    Insight DT 3.6以降の場合、アセスメントのサマリー画面から[SQLの抽出]をクリックします。

  2. 「失敗」のステータスのみを選択して、実行に失敗したSQLファイルをダウンロードします。

ダウンロードしたZIPファイル内には、1SQLにつき1ファイルの単位でSQLが保存されています。
SQL自動変換ツールや、手動で修正など、任意の方法でSQLを修正してください。

6.10.1.2. 修正を評価SQLセットに適用

失敗したSQLの抽出で抽出したSQLを任意の方法で修正した後、評価SQLセットに修正したSQLを適用することで、修正したSQLにて再度アセスメントを実行します。

  1. 再度アセスメントを実行する評価SQLセットにチェックを入れます。

  2. ローカルナビゲーションバーの[外部連携]をクリックします。

  3. 適用するファイルの[ファイルを選択]をクリックして、修正したSQLのCSVファイルを選択します。

  4. [適用]をクリックします。
    評価SQLセットの中身が更新されます。

6.10.2. 画面の更新

ローカルナビゲーションバーの[更新]をクリックすると、画面を最新の情報に更新します。

  1. [▼]をクリックして、画面の更新間隔を選択します。
    プルダウンメニューから任意の秒数を指定してください。
    画面を自動で更新させたくないときは[停止]を選択してください。

    画面の更新

6.11. 補足

6.11.1. ソースDB、ターゲットDBの型対応

ソースDBから取得可能なデータは以下のとおりです。

ソースDB SQL バインド変数値 バインド変数型

Oracle Database

PostgreSQL

×

SQL Server

×

×

MySQL

×

×

  • Oracle Databaseからデータを取得するPISO Target for Oracleは、デフォルトではバインド変数を取得しません。
    バインド変数を取得するには PISO Target for Oracleのマニュアルを参照し設定してください。

  • Amazon RDS for Oracleのバインド変数の取得については、PISO Managerインストールマニュアルの「監視対象がRDS for Oracleの機能と制限事項」を参照してください。

  • PISO Target for PostgreSQLは、デフォルトではバインド変数を取得しません。
    バインド変数を取得するにはPISO Target for PostgreSQLのマニュアルの「SQL実行時のパラメータの取得について」を参照し、設定してください。

  • バインド変数の取得には制限があります。「バインド変数について」を参照してください。

ターゲットDBへの実行時に使用可能なデータと機能は以下のとおりです。

ターゲットDB SQL実行 バインド変数型指定 バインド変数型変換エラー推定※1

Oracle Database

×

PostgreSQL

SQL Server

MySQL

×

※1 ターゲットDB実行時、SQL構文に問題が無い場合にバインド変数の暗黙の型変換でエラーになる箇所を推定する機能です。

6.11.2. ターゲットDB実行時の型指定と入力書式

ターゲットDBへのSQL実行時にInsight DTのバインド変数型指定に応じてDBMS固有の型を設定します。
IDT Manager Webコンソール上で設定した型の指定と値の入力は、アセスメント作成時のバインド変数補完、およびSQL詳細画面のSQL実行時に行います。

以下の表はターゲットDB実行時の型と入力書式の対応を示します。

型指定 Oracle Database PostgreSQL MySQL SQL Server 入力書式

デフォルト※1

VARCHAR2

UNKNOWN

LONGTEXT

VARCHAR

文字列

VARCHAR2

TEXTまたはVARCHAR※2

LONGTEXT

VARCHAR

固定長文字列※3

CHAR(n)

CHAR(n)

CHAR(n)

CHAR(n)

任意精度数値

NUMBER

NUMERIC

DECIMAL

DECIMAL

整数

NUMBER

BIGINT

BIGINT

BIGINT

小数

NUMBER

DOUBLE PRECISION

DOUBLE PRECISION

FLOAT

時刻

TIMESTAMP

TIME

TIME

TIME

YYYY/MM/DD HH24:MI:SS または YYYY/MM/DD HH24:MI:SS.FF の形式で、日付部分・時刻部分のみでも入力できます。

日付

TIMESTAMP

DATE

DATE

DATE

YYYY/MM/DD HH24:MI:SS または YYYY/MM/DD HH24:MI:SS.FF の形式で、日付部分・時刻部分のみでも入力できます。

日付時刻

TIMESTAMP

TIMESTAMP WITHOUT TIME ZONE

DATETIME

DATETIME2

YYYY/MM/DD HH24:MI:SS または YYYY/MM/DD HH24:MI:SS.FF の形式で、日付部分・時刻部分のみでも入力できます。

真偽値

VARCHAR2

BOOLEAN

BOOLEAN

BIT

TRUEの場合は「1」、FALSEの場合は「0」を入力します。

バイナリ

RAW

BYTEA

LONGBLOB

VARBINARY

バイトデータを接頭辞(0x、0X)無しの16進数の文字列で入力します。

※1 型指定が無い場合はデフォルトの型指定を使用します。画面によっては「未指定」と表記しています。
※2 Insight DT 3.3以降では、環境変数IDT_POSTGRES_TEXT_TYPEによって文字列の型を切り替えできます。デフォルトはVARCHARです。
 Insight DT 3.2以前では、文字列の型の切り替えはできません。デフォルトはTEXTです。
※3 固定長文字列の設定は、Insight DT 3.3以降で使用できます。

6.11.3. 0秒時の対応

ソースDBのSQLの実行時間は、ソースDBの使用しているメモリを参照して取得しています。
そのため、タイミングによっては実行時間が0秒になることがあります。
0秒の場合、ターゲットDBの実行時間と比較することができず、遅くなったSQLのカテゴライズを正しく行うことができません。

遅くなったSQLを適切に算出するため、実行時間が0秒のSQLには、アセスメントを実行する際に入力した[0秒の仮定値]を代入して計算しています。
PISOのデフォルトのサンプリング間隔が0.2秒のため、0秒の仮定値はデフォルトで0.2秒になっています。
サンプリング間隔を変更した場合は、それによって0秒の仮定値を任意の値に変更してください。

6.11.4. ユニークSQLについて

SQLを一意にするためのハッシュ値(SQL IDもしくはSQLHASH)と、弊社独自で付与しているPI Hashを掛け合わせたものでユニークとしています。

PI Hashの詳細は「PI Hashについて」を参照してください。

6.11.5. PI Hashについて

弊社独自のSQLのハッシュ値を指します。
SQLのリテラルを無視し、同じ構成のSQLに同じハッシュ値を付与します。

6.11.6. 使用している項目名について

SQL実行結果一覧画面やSQL詳細画面で使用している項目名の詳細です。

項目名 説明

ステータス

SQLの実行結果のステータス情報を表します。

  • ope status success:成功

  • ope status failed:失敗、または、ターゲットDBでのみ失敗

  • icon status both failed:両DBで失敗

  • icon status different return:結果が相違

  • icon status performance degradation:性能が劣化

  • icon status failed only in test src db:テスト用ソースDBでのみ失敗

  • icon status corrected:修正済。修正が完了したSQLを表します。

  • icon status not corrected:未対処。未修正のSQLを表します。

PI Hash

SQLに付与する弊社独自のハッシュ値を表します。

詳細は「PI Hashについて」を参照してください。

SQL ID

SQLを識別するIDを表します。

エラーコード

データベースから出力されたエラーコードを表します。

エラーメッセージ

データベースから出力されたエラーメッセージを表します。

DBユーザー

SQLを実行したDBユーザーを表します。

プログラム

ソースDBで取得したSQLを発行したプログラム名を表します。

オブジェクト

SQLに含まれるオブジェクト名を表します。

遅くなった割合(%)

ソースDBと比較してターゲットDBではSQLの実行時間が何%になったかの値を表します。
ソースDBでの実行時間が0秒の場合は計算することができません。

詳細は「0秒時の対応」を参照してください。

ログイン時間

ソースDBへ接続された日時を表します。

データベース

データベースの種類を表します。

データ元ファイル

PISO Managerのマイニングサーチから出力したCSVファイルを表します。

ユニークSQL

ユニークSQLの有無を表します。

日付

実行日を表します。

セッション期間

ソースDBへ接続した期間を表します。

件数※1

ソースDBのSQLの件数を表します。

SQL実行時間

ソースDBでのSQL実行時間を表します。

SQLテキスト

ソースDBから収集したSQLを表します。

SQL開始時間

ソースDBで取得したSQLの開始時間を表します。

エラー時の件数

評価SQLセット作成時にエラーが発生した時点で処理済みのSQLの件数を表します。

バインド変数名

取得したSQL実行時に指定されたバインド変数の変数名を表します。

SQL開始時刻

ソースDBでSQLが実行された時刻を表します。

ログオン時刻

ソースDBでSQLが実行された際のセッションのログオン時刻を表します。

SQL件数※1

SQLの件数を表します。

修正済みSQL

[SQLの修正]タブで保存された修正後のSQLを表します。

テスト用ソースDB実行時間(秒)

テスト用ソースDBへSQLの実行要求をしてから初回のレスポンスが返ってくるまでの時間を表します。
ネットワークを経由した時間が含まれます。

ターゲットDB実行時間(秒)

  • 1つのターゲットDBでのみ行うアセスメント実行時
    ターゲットDBのSQLの実行時間を表します。

  • テスト用ソースDBとターゲットDBの2つのデータベースを指定して行うアセスメント実行時
    ターゲットDBへSQLの実行要求をしてから初回のレスポンスが返ってくるまでの時間を表します。

ネットワークを経由した時間が含まれます。

ソースDB実行時間(秒)

ソースDBのSQLの実行時間を表します。
PISOのSQLサンプリング間隔設定により、実行時間が0秒になる場合があります。

テスト用ソースDBエラーコード

テスト用ソースDBから出力されたエラーコードを表します。

テスト用ソースDBエラーメッセージ

テスト用ソースDBから出力されたエラーメッセージを表します。

ターゲットDBエラーコード

ターゲットDBから出力されたエラーコードを表します。

ターゲットDBエラーメッセージ

ターゲットDBから出力されたエラーメッセージを表します。

変換済みSQL(テスト用ソースDB)※2

アセスメントのオプションにより変換され、実際にテスト用ソースDBへ実行されたSQLを表します。

変換済みSQL(ターゲットDB)※2

アセスメントのオプションにより変換され、実際にターゲットDBへ実行されたSQLを表します。

変換済みバインド変数(テスト用ソースDB)※2

アセスメントのオプションにより変換され、実際にテスト用ソースDBへ適用されたバインド変数を表します。

変換済みバインド変数(ターゲットDB)※2

アセスメントのオプションにより変換され、実際にターゲットDBへ適用されたバインド変数を表します。

テスト用ソースDB処理時間(秒)※2

テスト用ソースDBへSQLの実行要求をしてからすべての結果をプログラムで取得するまでの時間を表します。
ネットワークを経由した時間が含まれます。

ターゲットDB処理時間(秒)※2

  • 1つのターゲットDBでのみ行うアセスメント実行時
    ターゲットDBでSQLを実行してから終了するまでの時間を表します。

  • テスト用ソースDBとターゲットDBの2つのデータベースを指定して行うアセスメント実行時
    ターゲットDBへSQLの実行要求をしてからすべての結果をプログラムで取得するまでの時間を表します。

ネットワークを経由した時間が含まれます。

テスト用ソースDB取得行数※2

テスト用ソースDBの取得行数を表します。

ターゲットDB取得行数※2

ターゲットDBの取得行数を表します。

影響のあった行数(テスト用ソースDB)※2

テスト用ソースDBの影響のあった行数を表します。

影響のあった行数(ターゲットDB)※2

ターゲットDBの影響のあった行数を表します。

セッションID※2

ソースDBで取得したセッションIDを表します。

行比較結果※2

SELECT文の取得結果に対する行比較結果を表します。

ORDER BY句指定※2

クエリにORDER BY句による指定があるかどうかを表します。
行順序の比較で[完全一致]を選択した時以外はNULLになります。

収集時処理行数※2

PISO Targetで取得した時点のSQLの取得行数または処理行数を表します。
SQLがSELECTのときは取得行数、UPDATE、INSERT、DELETEの場合は処理行数を表します。

行取得中断※3

アセスメント実行時、行取得中断の有無を表します。

ログオフ時刻※3

SQLを実行したDBユーザーのログオフ時刻を表します。

SQL終了時刻※3

SQLの実行終了時刻を表します。

Action※3

アプリケーション上のモジュール・アクション(DBMS_APPLICATION_INFO.SET_MODULE)の情報を表します。

Action Operation※3

アプリケーション上のオペレーション名を表します。

Action Program※3

アプリケーション上のプログラム名を表します。

Client Information※3

アプリケーションサーバー経由のクライアント(DBMS_APPLICATION_INFO.SET_CLIENT_INFO)情報を表します。

Client Info IP※3

アプリケーションサーバー経由のクライアントのIPアドレスを表します。

Client Info Host※3

アプリケーションサーバー経由のクライアントのホスト名を表します。

Client Info User※3

アプリケーションサーバー経由のユーザー名を表します。

※1 この項目は、Insight DT 3.2以前の場合に表示されます。Insight DT 3.3以降では表示されません。
※2 この項目は、Insight DT 3.3で追加されました。
※3 この項目は、Insight DT 3.4で追加されました。

6.11.7. CSVファイルのカラムについて

アセスメントの結果をCSVダウンロードした際に使用しているカラム名の詳細です。

実行結果CSVファイルのカラム
項目名 説明

id

SQL実行結果に割り当てられる連番のIDです。

result

ターゲットDBでSQL実行した結果を表します。
success:SQLが成功した場合
failed:失敗した場合

resultCode

アセスメントによるSQL実行結果に割り当てたコードで、テスト対象SQLの成功・失敗を表します。

詳細は「APIドキュメント」の[アセスメント]>[resultCodeについて]を参照してください。

patchCreated

SQLのステータス情報を以下の2種類で表します。
0:未修正のSQL
1:修正済みのSQL

patchSqlText

ユーザーが修正したSQLを表します。
未修正のSQLの場合は空です。

elapsedTimeOnProgram

ターゲットDBでSQLを実行してから終了するまでの時間を表します。
ネットワークを経由した時間が含まれます。

elapsedTimeOnDb

ターゲットDBのSQLの実行時間を表します。
ネットワークを経由した時間が含まれます。

elapsedTimeRatio

ソースDBと比較してターゲットDBではSQLの実行時間が何%になったかの値を表します。
ソースDBでの実行時間(elapsedTime)が0秒の場合は、アセスメント実行時に指定した[0秒の仮定値]をもとに計算されます。

詳細は「0秒時の対応」を参照してください。

piHash

SQLに付与する弊社独自のハッシュ値を表します。

詳細は「PI Hashについて」を参照してください。

sqlId

SQLを識別するIDを表します。

user

ターゲットDBへSQLを実行したDBユーザーを表します。

program

ソースDBで取得したSQLを発行したプログラム名を表します。

object

SQLに含まれるオブジェクト名を表します。

sessionStartTime

ソースDBへ接続された日時を表します。

sessionIdentifier

ソースDBで取得したセッションIDを表します。

sqlStartTime

ソースDBで取得したSQLの開始時間を表します。

sqlStartTimeFraction

ソースDBで取得したSQL開始時間のマイクロ秒部分を表します。

elapsedTime

ソースDBでのSQL実行時間を表します。
SQLのサンプリング間隔により、実行時間が0秒になることがあります。

sqlText

ソースDBから収集したSQLです。

bind

バインド変数情報の配列データを以下のようにJSON文字列形式で出力します。

ex [{"name": "バインド変数名", "type": "バインド変数型", "value": "値"},,,]

modifiedSqlText

アセスメントのオプションにより変換され、実際にターゲットDBへ実行されたSQLを表します。

modifiedBind

アセスメントのオプションにより変換され、実際にターゲットDBへ適用されたバインド変数を表します。

errorCode

データベースから出力されたエラーコードを表します。

errorMessage

データベースから出力されたエラーメッセージを表します。

queryTotal※1

ターゲットDBの取得行数を表します。

queryAffectedRows※1

ターゲットDBの影響のあった行数を表します。

rowsProcessed※1

PISO Targetで取得した時点のSQLの取得行数または処理行数を表します。
SQLがSELECTのときは取得行数、UPDATE、INSERT、DELETEの場合は処理行数を表します。

fetchTruncated※2

行取得中断の有無を表します。

sessionEndTime※2

SQLを実行したDBユーザーのログオフ時刻を表します。

sqlEndTime※2

SQLの実行終了時刻を表します。

action※2

アプリケーション上のモジュール・アクション(DBMS_APPLICATION_INFO.SET_MODULE)の情報を表します。

actionOperation※2

アプリケーション上のオペレーション名を表します。

actionProgram※2

アプリケーション上のプログラム名を表します。

clientInfo※2

アプリケーションサーバー経由のクライアント(DBMS_APPLICATION_INFO.SET_CLIENT_INFO)情報を表します。

clientInfoIp※2

アプリケーションサーバー経由のクライアントのIPアドレスを表します。

clientInfoHost※2

アプリケーションサーバー経由のクライアントのホスト名を表します。

clientInfoUser※2

アプリケーションサーバー経由のユーザー名を表します。

(source) errorCode※3

テスト用ソースDBから出力されたエラーコードを表します。

(source) errorMessage※3

テスト用ソースDBから出力されたエラーメッセージを表します。

(source) elapsedTimeOnProgram※3

テスト用ソースDBでSQLを実行してから終了するまでの時間を表します。
ネットワークを経由した時間が含まれます。

(source) elapsedTimeOnDb※3

テスト用ソースDBのSQLの実行時間を表します。
ネットワークを経由した時間が含まれます。

(source) modifiedSqlText※3

アセスメントのオプションにより変換され、実際にテスト用ソースDBへ実行されたSQLを表します。

(source) modifiedBind※3

アセスメントのオプションにより変換され、実際にテスト用ソースDBへ適用されたバインド変数を表します。

(source) queryTotal※1、3

テスト用ソースDBの取得行数を表します。

(source) queryAffectedRows※1、3

テスト用ソースDBの影響のあった行数を表します。

rowsMatchedCode※1、3

SELECT文の取得結果に対する行比較結果を表します。
0:取得結果が順序を含めて完全に一致する
1:一致しない
2:取得結果を再ソートして一致する

queryHasOrder※1、3

クエリにORDER BY句による指定があるかどうかを表します。
TRUE:実行するSQLにORDER BY句による指定がある
NULL:上記以外の場合
行順序の比較で[完全一致]を選択した時以外はNULLになります。

※1 この項目は、Insight DT 3.3で追加されました。
※2 この項目は、Insight DT 3.4で追加されました。
※3 この項目は、ダウンロード画面で[テスト用ソースDBの情報も取得します]をオンにすると取得できます。

追加情報CSVファイルのカラム
項目名 説明

resultId

実行結果CSVの「id」に対応する値を表します。

rank

同一のresultIdのSQLに対して発見または適用された順番を表します。

applied

SQLに対して変更を加えたかどうかを示します。
変更を加えた場合は「1」、加えてない場合には「0」と表します。

type

分類を表します。

action

typeに対応する詳細説明です。

severity

深刻度を表します。

detail

type、actionに関連する詳細データのJSON文字列を表します。

6.11.8. 評価対象のSQLについて

ソースDBから取得するSQLが評価対象のSQLとなり、評価SQLセットとして登録、アセスメントされます。
SQLの取得方法によって、評価対象となるSQLが異なります。

評価対象のSQLについて
SQL取得方法 説明

PISO Managerの機能でSQLを取得する
PISOで蓄積したSQLに対してマイニングサーチを実行して評価SQLセットを作成する

  • SELECTとDML(Insert/Update/Delete)のみが評価対象となります。

  • RDS for MySQL、RDS for MariaDB、Amazon Aurora(MySQL互換エディション)に対して、PISOで蓄積したSQLを評価対象とする場合、行コメントのあるSQLを正しく評価することができません。

  • バインド変数のNULLと空文字の区別ができません(アセスメント時は双方とも空文字として扱われます)。※1

  • 依存オブジェクトが存在しないSQLは評価対象になりません。例えば、「select 1;」「select version();」は取得しません。

Insight DTの機能でSQLを取得する
評価SQLセットの新規作成でAmazon RDSからSQLを取得、または、AWSマイグレーション機能からSQLを取得して評価SQLセットを作成する

  • Amazon RDSのログファイルに出力されたものを評価対象とします。

    • 結果の反映(トランザクション)オプションは、評価対象のSQLに「COMMIT」や「ROLLBACK」などのトランザクション制御文が含まれている場合に、アセスメント自体の「元に戻すオプション」は正しく動作しません。

    • RDS for PostgreSQL、Amazon Aurora(PostgreSQL互換エディション)では標準ログと監査ログ(pgAudit)での出力を対象とします。※2

      監査ログ(pgAudit)の場合、以下の制限があります。
      • バインド変数のNULLと空文字の区別ができません(アセスメント時は双方とも空文字として扱われます)。

      • PL/pgSQL内のSQL実行がpgAuditログに出力されているものについては、評価対象とはしません。

      標準ログの場合は以下の制限があります。

      Insight DT 3.6以前の場合、発行元の「プログラム」は取得できません。

    • RDS for MySQL、Amazon Aurora(MySQL互換エディション)では一般ログ(general log)での出力を対象とします。

※1 ソースDBがオンプレミスのOracle Databaseである場合、取得できるバインド変数に制限事項があります。
詳細については、「バインド変数について」を参照してください。

※2 Insight DT 3.3以降でログの出力形式の選択ができます。

6.11.9. 評価SQLセット生成元のデータファイルについて

6.11.9.1. マイニングサーチ出力CSV形式

IDT Managerでは、PISO ISMやPISO Managerのマイニングサーチ結果(CSVファイル)を評価SQLセットとして取り込むことができます。また、同様のCSVファイルを用意することで、任意のSQLを評価SQLセットとして取り込みアセスメントを行うことが可能です。
出力されるCSVファイルのカラム名と値の定義は、弊社サポートサイト(Service Portal)の[PISO]>[ナレッジ]から文書番号00369の「カラム名(PISO 5.x以降)」一覧に従います。

ユニーク化の処理を除いて評価SQLセット格納時点では値を使用しません。
正当性をチェックしないので必要カラムが存在すれば評価SQLセットの作成は完了します。

CSVファイルの属性
属性

文字コード

BOM無しUTF-8

改行コード

LFまたはCRLF

カラム数

ヘッダとデータで一致すること

カラム順

順不同

読み取りカラム
カラム名 カラムの存在が必須 備考

Host

はい ※1

PISO Targetで指定したホスト名です。

Database

はい※1

PISO Targetで指定したインスタンス名です。

SID

はい※2、3

Serial

はい※2、3

Logged In

はい※3、4

SQLを実行したOracleユーザーのログイン時刻です。
書式:YYYYMMDDHHmmss
icon ex 20210630152047

Logged Out

いいえ

SQLを実行したOracleユーザーのログオフ時刻です。
Insight DT 3.4で追加されました。

DB User

はい※3

Oracleユーザー名です。

SQL Start Time

はい※4

SQLの実行開始時刻です。
書式:YYYYMMDDHHmmss
icon ex 20210630152047

SQL Start Time(Micro Sec)

はい※4

SQLの実行開始時刻(マイクロ秒)です。
書式:6桁までの正の整数値

SQL End Time

いいえ

SQLの実行終了時刻です。
Insight DT 3.4で追加されました。

SQL Text

はい

SQL文です。

SQL Hash

いいえ※5、6

SQL Textに対応するハッシュ値です。

PI Hash

いいえ※5、6

SQL Textからリテラルを除いた構造に対応するハッシュ値です。

Bind Variables

はい※7

バインド変数です。
空文字列でも実行可能です。
書式:#1(3):abc #2(1):5 …​、または
#1(3,1):abc #2(1,1):1 …​

詳しい書式は、「Bind Variablesの書式について」を参照してください。

Object

はい

アクションの対象オブジェクトです。
空文字列でも実行可能です。
ソース環境情報です。

Rows Processed

いいえ

PISO Targetで取得した時点のSQLの取得行数または処理行数を表します。
Insight DT 3.3で追加されました。

Elapsed Time

はい

SQL実行にかかった時間(秒)の実数値です。
値が無ければ0.0になります。

Program

はい

実行したプログラム名です。
空文字列でも実行可能です。
ソース環境情報です。

Action

いいえ

アプリケーション上のモジュール・アクション(DBMS_APPLICATION_INFO.SET_MODULE)の情報です。
Insight DT 3.4で追加されました。

Action - Operation

いいえ

アプリケーション上のオペレーション名です。
Insight DT 3.4で追加されました。

Action - Program

いいえ

アプリケーション上のプログラム名です。
Insight DT 3.4で追加されました。

Client Information

いいえ

アプリケーションサーバー経由のクライアント(DBMS_APPLICATION_INFO.SET_CLIENT_INFO)情報です。
Insight DT 3.4で追加されました。

Client Information - IP Address

いいえ

アプリケーションサーバー経由のクライアントのIPアドレスです。
Insight DT 3.4で追加されました。

Client Information - Host

いいえ

アプリケーションサーバー経由のクライアントのホスト名です。
Insight DT 3.4で追加されました。

Client Information - User

いいえ

アプリケーションサーバー経由のユーザー名です。
Insight DT 3.4で追加されました。

※1 HostとDatabaseの値を結合して一意のデータベースインスタンスを識別します。

※2 内部的にSIDとSerialの値を結合して扱います。どちらかが空文字列であっても一意性を維持できる場合は処理可能です。

※3 Host、Database、SID、Serial、Logged In、DB Userの値を結合して一意のセッションを識別します。

※4 アセスメント実行はLogged Inの昇順でソートしたセッションごとに行います。
 セッションごとにSQL Start Time、SQL Start Time(Micro Sec)の昇順でSQLを実行します。

※5 SQL HashとPI Hashの値を結合して一意のSQL文を認識します。

※6 カラムが存在しない場合は、SQL文のmd5値を使用します。

※7 バインド変数の型情報を付与する場合に必要です。
 (3)と記載された場合、バインド変数値を文字列とみたときのバイト数を意味します。
 (3,1)と記載された場合、バイト数とデータ型を意味します。
 icon ex 1個目のバインド変数を数値、2個目のバインド変数を文字列扱いとする場合
  #1(3,2):123 #2(3,1):123

Bind Variablesの書式について
Bind Variablesの書式
  • バインド変数型の出力が無効になっている場合:
    #バインド位置(バイト数):バインド変数値

  • バインド変数型の出力が有効になっている場合:
    #バインド位置(データ型,バイト数):バインド変数値

バイト数は、バインド変数値を文字列とみたときのバイト数を意味します。
 データ型は、バインド変数のデータ型を意味します。

バインド変数値が取得できない場合、バイト数は「?」と表示されます。
NULL値がバインドされた場合、バイト数は「-」と表示されます。
空値がバインドされた場合、バイト数は「0」と表示されます。

バインド変数のデータ型の出力値は、Oracle Databaseでバインド変数型を表すコードとなります。

VARCHAR2, NVARCHAR2 : 1
CHAR, NCHAR         : 96    -> Insight DTでは、文字列として処理。
NUMBER              : 2     -> Insight DTでは、任意精度の数値として処理。
DATE                : 12
TIMESTAMP           : 180   -> Insight DTでは、日付時刻として処理。
RAW                 : 23    -> Insight DTでは、バイナリとして処理。値は16進数文字列で表す(先頭の0x無し)。
6.11.9.2. 評価SQLセット用CSVファイルについて
SQLの評価順
  • SQLはセッション単位でまとめて評価されます。

  • セッションは、Host+Database+SID+Serial+Logged In+DB User単位で識別されます。

  • SQLは、セッションのLogged Inの昇順で、かつ、同セッション内のSQLのSQL Start Timeの昇順でソートされます。
    そのため、すべてのSQLを順番に処理したい場合は、1SQLごとに、SIDとSerialに0001、0002、0003・・・と設定し、Logged Inも適当に昇順にします。また、SQL Start Timeも評価したい順に並べます。
    同セッション内でSQL Start Timeが同じ値である場合は、CSVファイルで上にある方を先に実行します。

アセスメント時のDBへのデータ反映
  • アセスメント設定時の[DBへのデータ反映]オプションは、セッション単位でコミット/ロールバックされます。
    連続したSQLとして評価しても問題ないのであれば、同一セッションでSQLを処理した方が高速に処理できます。
    ただし、1セッションのSQLが100万件といった場合はあまり想定していないため、適当に分割することを推奨します。

  • 1SQLごとにロールバックしたい場合は、すべてのSQLを別セッションにします。
    セッション確立のオーバーヘッドがあるため、同一セッションでロールバックする場合に比べて処理が遅くなりますが、アセスメント設定時の[同時セッション処理数]オプションでの並列指定が有効に働きます。

SQLの識別
  • SQLは、SQL Hash+PI Hash単位で識別されます。
    実際のSQL Textが同じでも、この識別子が異なれば別SQLとして扱われます。

  • 修正SQLセットとの紐づけもSQL HashとPI Hashを結合した値で行います。

  • SQL HashとPI Hash値自体は、任意の値を設定します。例えば、SQLごとに、SQL Hashに A、B、C…​と設定して、PI Hashに 1、2、3…​などと設定してください。

  • アセスメント順は、この値には影響されません。

6.11.10. テスト対象のDBユーザーの権限設定について

6.11.10.1. テスト対象のDBユーザーに必要な権限設定

2DBモード(テスト用ソースDBとターゲットDBの2つのデータベースを指定して行う)でアセスメントを直列実行で行う場合、MySQLのロック状態を取得するためには特定の権限をDBユーザーに設定する必要があります。
それぞれのバージョンに応じた設定方法は以下のとおりです。

MariaDB/MySQL 5.7以下の場合

下記のSQLを使用し、必要な権限をユーザーに付与します。

GRANT PROCESS ON *.* TO 'ユーザー';
MySQL 8.0の場合

下記のSQLを使用し、必要な権限をユーザーに付与します。

GRANT PROCESS ON *.* TO 'ユーザー';
GRANT SELECT ON sys.* TO 'ユーザー'@'%';
GRANT EXECUTE ON sys.* TO 'ユーザー'@'%';
GRANT SELECT ON performance_schema.* TO 'ユーザー'@'%';
6.11.10.2. アセスメント実行の前後での権限設定

権限は、データベースに直接設定することも、アセスメントの事前SQL実行で付与し、事後SQL実行でデフォルト値に戻すことも可能です。

6.11.10.3. SQL実行タイムアウト

ロック解放待ち中にSQLが終了される事象が発生した場合は、アセスメント設定で長いタイムアウト時間を設定することを推奨します。

7. 制限事項

7.1. バインド変数について

ソースDBによって、取得できるバインド変数には以下のような制限があります。

オンプレミスのOracle Databaseの制限事項
  • WHERE句とHAVING句で使用されるバインド変数のみ取得できます。

  • 同じSQLのバインド変数値が変化する場合、キャプチャリング直前のバインド変数値のみ取得できます(バインド変数値のキャプチャリングの間隔に起因しています)。

  • 取得可能なバインド変数の数や値は3999バイトまでです。

RDS for PostgreSQL、Aurora(PostgreSQL互換エディション)の制限事項
  • PISO Managerの機能でSQLを取得する場合、取得可能なバインド変数の数や値は4000バイトまでです。

  • バインド変数にNULLが指定されている場合、Insight DTのSQL取得方法によってNULLと空文字の区別の可不可が異なります。

    SQL取得方法 PostgreSQLのログ形式 バインド変数のNULLと空文字の区別

    PISO Managerの機能でSQLを取得する
    SELECTとDML(Insert/Update/Delete)のみが取得可能

    PostgreSQL監査ログ(pgAudit)

    区別できない

    Insight DTの機能でSQLを取得する
    評価SQLセットの新規作成でAmazon RDSからSQLを取得、または、AWSマイグレーション機能からSQLを取得

    PostgreSQL標準ログ(デフォルト)

    区別できる

    PostgreSQL監査ログ(pgAudit)

    区別できない

RDS for MySQL、Aurora(MySQL互換エディション)の制限事項

バインド変数は取得できません。

7.2. 1SQLのサイズ上限値

IDT Managerで処理可能な1SQLの最大サイズは10Mバイトです。
それ以上のサイズでは、環境により処理できない可能性があります。

PISO Targetが取得する1SQLのデフォルトサイズは21674バイトです。
このデフォルトサイズは、以下のパラメーターで変更可能です。

  • PISO Target内の設定ファイル
    $IST_HOME/usr/${HOSTNAME}/${ORACLE_SID}/etc/sgamond.prm

  • パラメータ

     MAX_SQLTEXT_LENGTH=21674

サイズの変更後、PISO TargetのSQL Collectorを再起動してください。

PISO Targetを使用せずにAmazon RDSからSQLを取得する場合、1SQLの最大サイズは10Mバイトです。

SQLを表示している画面において、以下のような制限があります。

  • アセスメントサマリーおよびアセスメントのSQL一覧では、画面サイズに応じて内容を表示します。

  • 評価SQLセットおよび修正SQLセットのSQL一覧では、最大10000文字までのSQLを表示します。

  • SQL詳細画面では、利用環境の利用可能メモリ量などの状況により、表示できない場合があります。

7.3. AWSマイグレーション機能について

取得対象のソースDBに対するSQL実行のセッションがスケジュールの切り替わるタイミングをまたがっている場合、スケジュール切り替わり前から実行されていたセッションによるSQLを評価対象とすることができません。

7.4. Amazon RDSのログ制限

  • PISO Managerを用いない場合に、UTF-8以外の収集元データベースと発行SQLは対応していません。
    icon ex サーバー側(RDS)の符号化方式をUTF-8以外(EUC-JP、Shift_JIS等)に設定している場合、RDSからログを取得して評価SQLセットを作成することはできません。

  • COPYコマンドの実行は対応していません。
    icon ex COPY pg_class TO '/pg_class_file'; の場合、パース(構文チェック)は可能です。ただし実行(実際にテーブルをコピーしてファイルに出力)はできません。
    評価SQLセットにCOPYコマンドが入っている場合、アセスメント実行時は以下のようになります。

    • Insight DT 3.6以前の場合、評価SQLセットにCOPYコマンドが含まれている場合、アセスメントが異常終了します。

    • Insight DT 3.7以降の場合、評価SQLセットにCOPYコマンドが含まれている場合アセスメント時にCOPYコマンドをスキップします。
      実行結果はエラーとして扱います。

  • ログ文中に複数のSQLが連結されている場合の実行は対応していません。
    icon ex 下記のようにRDSのログ文中にSQLが連結されている場合には対応していません。

    2022-12-06 08:36:25 UTC:IP address (Port):insight@insight:[31886]:LOG:  statement: select 1;
    
      	select 2;
    
      	select 3;
    
      	select sum_(1,2);
    
      	select sum_(2,3), sum_(4,5);
    
      	create TEMP table if not exists hoge (c1 double precision, c2 int);
    
      	insert into hoge values (sum_(6.0, 7), sum_(8, 9.0::int));

7.5. [DBのログから作成する]における制限

評価SQLセットの新規作成時に[DBのログから作成する]を選択する場合、ログファイル種別によって制限があります。
ログファイル種別で「MySQL」または「MySQL 5.7 互換 Aurora MySQL バージョン2」を選択した場合、複数データベースの情報が記録されたログを登録すると1つのデータベースの情報しか登録されません。

8. AWS上で利用時の留意事項

8.1. 導入作業について

製品の特性上、本製品の導入や利用時には、AWSの利用(IAM、VPC、EC2、EBS、RDSなど)に関する一般的な知識、Oracle Linux、データベース、SQLなどに関する一般的な知識があることを想定しています。
導入ではEC2インスタンスの起動を行います。AWS Marketplaceを通してAMIからEC2を起動可能な権限のあるユーザーで作業を実施してください。以下に導入ユーザーに必要となるIAMポリシー例を記載します。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "aws-marketplace:ViewSubscriptions",
                "aws-marketplace:Subscribe",
                "aws-marketplace:Unsubscribe"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:Describe*",
                "ec2:GetConsole*",
                "ec2:CreateTags"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "ec2:RunInstances",
            "Resource": [
                "arn:aws:ec2:*:*:subnet/*",
                "arn:aws:ec2:*:*:network-interface/*",
                "arn:aws:ec2:*:*:instance/*",
                "arn:aws:ec2:*:*:volume/*",
                "arn:aws:ec2:*::image/ami-*",
                "arn:aws:ec2:*:*:key-pair/*",
                "arn:aws:ec2:*:*:security-group/*"
            ]
        }
    ]
}

また、ディスクの拡張が必要な場合、SSHで接続可能な環境から作業を実施してください。

導入作業をAWSアカウントのルートユーザーで行うことは推奨されていません。導入作業はIAMユーザーで行ってください。
ルートユーザーについては AWSアカウントのルートユーザーを参照してください。
  • 権限の設定については、 IAMでのセキュリティのベストプラクティス を参照してください。

  • 導入手順については 「IDT Managerの構築と設定(EC2の場合)」を参照してください。

  • IDT ManagerはシングルAZ構成のみをサポートしています。マルチAZ構成/マルチリージョン構成はサポートしていません。

  • SSHを使用してインスタンスに接続する場合は、EC2起動時にキーペアを指定する必要があります。キーペアの指定については Amazon EC2キーペアとLinuxインスタンス を参照してください。

  • バックアップ時に生成されるEBSのスナップショットや、EBS暗号化においてKMSのカスタマー管理型のキーを使う場合など、利用するサービス・設定により、サービス利用にかかる費用が別途発生します。

8.2. 利用可能なリージョンについて

IDT ManagerはAWS上のEC2で起動するため、EC2およびVPCなどが利用可能なリージョンを使用する必要があります。
また、ソースDBやテスト用ソースDBとしてRDSを使用する場合はRDSを利用可能なリージョンである必要があります。IDT ManagerとRDSのリージョンは同じである必要はありません。

8.2.1. RDS / AuroraへのSSL接続について

  • RDS for MySQL / Aurora MySQL / RDS for PostgreSQL / Aurora PostgreSQLからSQLを取得する場合

    • RDS APIへのアクセスはhttps接続となり、通信は暗号化されています。

  • RDS for MySQL / Aurora MySQLをテスト用ソースDBとして使用する場合

    • DB(クラスター)へのSSL/TLS接続の要求が要求されている場合(require_secure_transportパラメータがONになっている場合)
      SSL/TLSを使用したDBクラスターへの接続の暗号化 から証明書ファイルをダウンロードし、IDT Managerの/home/insight/idt/etcにあるmy.cnfファイルに証明書のパスを以下のように記述します。
      icon ex /home/insight/idt/etc/ap-northeast-1-bundle.pemというパスでファイルを置いた場合は「ssl-ca=/idt/etc/ap-northeast-1-bundle.pem」の行を追加します。

  • RDS for PostgreSQL / Aurora PostgreSQLをテスト用ソースDBとして使用する場合

    • DB(クラスター)へのSSL/TLS接続の要求が要求されている場合(rds.force_sslパラメータが1(オン)の場合)でも、IDT Managerは評価可能です。
      ただし、「sslmode=verify-ca」による証明書の検証はサポートしていません。

8.3. EC2内に保存されるデータについて

EC2上に構築したIDT Managerは、EC2で使用するストレージ(EBS)上に蓄積されたデータベース内にSQL等のデータを保存しています。
EBSの暗号化については、ユーザーのセキュリティ要件に応じた暗号化などの対策を推奨します。

EBSの暗号化については Amazon EBS暗号化 を参照してください。

EBSの暗号化でKMS keyを使用する場合、 AWS KMS keys ローテーション の必要性も確認してください。

8.4. AWS Marketplaceでの提供形式について

IDT Managerはインスタンスごとに課金される時間課金(年間課金)、また、契約期間中の利用にインスタンス数の制限のない月間課金、別途契約の取り決めを行う(BYOL)の複数のパターンで提供されています。
利用形態に応じたパターンを選択し、サブスクライブしてください。
詳細は、以下のAWS Marketplace上の弊社の製品リストを参照してください。BYOLの価格、ライセンス形態についてはお問い合わせください。

8.5. アプリケーション稼働状況のモニタリングについて

起動したIDT ManagerのEC2インスタンスは、AWSで提供されているEC2のモニタリング機能を利用することで稼働状態のモニタリングが可能です。

Amazon EC2 のモニタリングについては、 Amazon EC2 のモニタリング を参照してください。

アプリケーションが稼働しているかについては、IDT Manager Webコンソールからログインを行いサービスにアクセス可能であることを確認してください。
IDT Manager Webコンソールにアクセスできない場合、ec2-userユーザーにてSSHで接続し、以下のコマンドでサービスが正常起動していることを確認します。

[ec2-user@idt ~]$ sudo systemctl status piso-manager
[ec2-user@idt ~]$ sudo -u insight sh -c 'XDG_RUNTIME_DIR=/run/user/$(id -u) systemctl --user status idt-manager'

定期的に稼働状況を確認する必要がある場合、IDT ManagerへAPI経由でアクセスして動作を確認することが可能です。

APIの使用方法については、IDT Manager WebコンソールからAPIマニュアルを参照してください。

8.6. AWSのサービスを利用したバックアップと復旧について

IDT ManagerはEC2とEBSで動作しており、EBSボリュームと Amazon EC2インスタンスをバックアップすることにより、障害等に備えることが可能です。
事前にバックアップ処理とリストア処理が正しく動作することを確認したうえで本番運用設定を行ってください。

8.6.1. 自動バックアップの設定について

以下の手順で自動バックアップを設定します。

  1. Amazon EC2コンソールから[Elastic Block Store]>[ライフサイクルマネージャー]>[ライフサイクルポリシーの作成]を選択します。

    lifecyclemanager
  2. 以下を設定して、ファイルサイクルポリシーを作成します。

    • ポリシータイプ:EBS-backed AMIポリシー

    • これらのタグを持つターゲット:Nameを選択し、EC2インスタンスの名前を選択します。
      Nameタグを付与していない場合は、IDT Managerのインスタンスへ名前を設定するなど、対象のインスタンスを識別しやすくすることを推奨します。

    • 使用するIAMロールを選択します。通常はデフォルトのロールで問題ありませんが、別のロールを選択することも可能です。

    • ポリシースケジュール(実行頻度、開始時刻、保持数等)を設定します。

      • バックアップ作成の頻度については任意の期間を設定可能ですが、1日に1回程度、バックアップを取得することを推奨します。

        • 頻度の設定により、何らかの障害が発生した際にどの程度最新の状態へ戻せるかが決まります。例えば、1日に1回バックアップを取得する場合は、最低でも1日前の状態まで戻すことが可能となります。

      • 設定例

        • 頻度:毎日

        • 毎:24時間

        • 開始時刻:18:00(UTC)

        • 保持タイプ:カウント

        • カウント数:3など

    • インスタンスの再起動:再起動しない設定の場合、バックアップ取得処理はオンライン(起動状態)のまま実行されますが、Insight DTが処理中などの状態がバックアップとして保存される場合があります。その場合、リストア後に一度再起動が必要となる場合があります。

    • その他のオプションを必要に応じて設定します。

      自動バックアップ処理の設定については、 スナップショットのライフサイクルの自動化を参照してください。
    • ポリシーの作成を実行すると、定期的なバックアップの作成が有効となります。

バックアップは定期的な設定以外にも、手動で実行することも可能です。
大規模な変更などを行った場合には、手動でバックアップを行うことも検討してください。

8.6.2. バックアップからの復旧

ライフサイクルマネージャーでの設定により、EC2インスタンスはAMIとしてバックアップされます。
バックアップされたAMIには、インスタンスの起動に必要な情報と元のEC2インスタンスにアタッチされた各EBSボリュームのスナップショットが含まれています。
バックアップから復旧されるのに要する時間については、AMIからのEC2インスタンス起動の処理となるため、新規導入作業時に要する時間と同じです。

Amazonマシンイメージ(AMI)については、以下のAWSのドキュメントを確認してください。
Amazon マシンイメージ (AMI)
  1. Amazon EC2コンソールから[イメージ]>[AMI]を選択します。ライフサイクルマネージャーから作成されたAMIには、dlm:managed というタグが付与されています。

    dlm-ami
  2. インスタンスタイプを選択します。

    インスタンスタイプは、AWS Marketplaceから導入時に許可されているインスタンスタイプのみ選択することが可能です。許可されていないインスタンスタイプを選択するとエラーとなります。
  3. 以降のインスタンス起動の設定は、導入時のインスタンス起動手順と同じです。

  • バックアップ実行時の状態により、バックアップから復旧したEC2インスタンスでWebコンソールにアクセスできない場合があります。その場合、一度、EC2インスタンスを再起動し、再度アクセス可能か確認してください。

  • IDT Managerでのadministratorなどのユーザーのパスワードは、バックアップ元のEC2インスタンスの環境の情報が引き継がれます。
    既定のadministratorのパスワードは、EC2のインスタンスIDですが、このインスタンスIDは、バックアップ元の環境のインスタンスIDであることに注意してください。

8.7. AWSのサービスの障害からの復旧

8.7.1. AWSのサービスの障害時の影響について

IDT ManagerはEC2とEBSで動作しています。また、内部のサービスはインスタンス起動時に自動起動されます。
何らかの理由でIDT ManagerのEC2インスタンスが稼働していない場合、ソースDBから送られるSQL情報を収集・蓄積することができません。
一定期間ソースDB内で保持されていますが、あらかじめ設定された保持可能容量を超えた場合にはその間のログを収集することができなくなります。
IDT ManagerでのSQL蓄積実行中に、AWSのサービス障害等でIDT ManagerのEC2インスタンスが停止した場合には、以降の手順でIDT Managerを復旧してください。

8.7.2. EC2インスタンスまたはアプリケーションの障害時の復旧

何らかの原因で、EC2インスタンスが終了してしまっている、もしくはアプリケーションの障害によりログインできない、などの場合はEC2インスタンスを再起動することでアプリケーションを再起動できます。

  1. EC2インスタンスの一覧より対象のEC2インスタンスを選択し、右クリックで表示されるメニューから、[EC2インスタンスの開始]もしくは[EC2インスタンスの再起動]を選択してください。

  2. EC2インスタンスが起動後、IDT Manager Webコンソールへアクセスしてログイン可能であることを確認してください。

8.7.3. 現在のEC2をそのまま起動させることができない障害時の復旧

起動中のEC2が存在するAZに障害が発生するなど、現在のEC2インスタンスをそのまま起動させることができない障害が発生している場合、取得済みのバックアップから別AZでインスタンスを起動することでアプリケーションを稼働させることが可能です。
「バックアップからの復旧」 の手順に従い、正常なAZでバックアップ取得したAMIからEC2インスタンスを起動してください。