Tosca Data Integrityを利用してみる(実践編: Row by Row Comparison実行)
本記事はTosca Data Integrityを利用してみる(準備編: SAP接続・ODBC接続)を実施した上での実践編の記事です。
背景
準備編で ODBC接続 と SAP Custom Data Reader の設定が完了したら、次は実際に比較テストを回して差分を確認します。
本記事ではData Integrityの Complete Row by Row Comparisonを最小構成で実施し、結果ファイルの読み方までを整理します。
本記事の範囲
-
Complete Row by Row Comparisonの基本設定を作る -
Row KeyとGeneral Optionsを実務向けに調整する - 比較レポートを出力して、差分の見方を押さえる
前提
- Source/Targetで比較したいテーブルやクエリを用意済み
- Row Key候補(業務キーまたは複合キー)を決められる
Step 1: テストケースを作成する
Tosca CloudでData Integrityフォルダ配下にテストケースを作成し、Complete Row by Row Comparison モジュールを追加します。
まずは最小構成で、Source と Target の接続を設定します。
Source / Target の設定例
- DB接続を使う場合:
ConnectionにDI connection名を指定 - SAP Readerを使う場合:
Custom Data Readerを選び、Class Attribute Name = SapReaderとParametersを設定
準備編で作成したDI connectionを使う場合、DSN / UserID / Password / Connection String は Connection で置き換えられます。
SAP Data Rader設定
SAP Tableを読み込む場合は、Custom Data Readerを利用しSAPReaderを指定します。
Parametersには必要な情報を入力します。
| Parameter name | Value(日本語説明) | Optional |
|---|---|---|
| SystemNumber | ABAPアプリケーションサーバーのインスタンス番号(0〜99の値)。 | No |
| ApplicationServer | RFC要求を受け付けるアプリケーションサーバーのゲートウェイプロセスのサービス名、またはポート番号。DNS名またはIPアドレスを指定(例:sap-server.acme.com)。 | No |
| Client | SAPシステムへログインする際に使用するクライアントID(例:200)。 | No |
| Language | SAPシステムへログインする際の言語コード(例:EN)。 | No |
| Username | テスト実行時にSAPシステムへアクセスするユーザー名。 | No |
| Password | 指定ユーザーのパスワード。 | No |
| Tablename | 読み取り対象となるデータを保持するSAPテーブル名(大文字・小文字を区別)。 | No |
| DataProvisioningTimeout | SAPからデータが返却されるまでTosca Cloudが待機する秒数。デフォルトは300秒。 | Yes |
| RowFilters | SAPテーブルから特定行のみ取得するためのフィルタ設定。構文:F[], O[], L[], H[], S[]。 | Yes |
ODBC接続設定
ODBC接続の場合は接続情報を記載するか、準備編で登録したConnection情報を利用します。
以下の例ではConnectionを利用した設定を記載します。

Step 2: Row Keyを定義する
Row by Row比較にて実施する2テーブル間のUnique Keyを定義します。
単一の列名でも、複数の列名でも構いません。複数列名の場合は; semicolonでつなげます。
指定ルール
- 1列指定:
OrderID - 複数列指定:
OrderID;LineNo - すべての列をキー扱い:
All Source Columns - 未指定: 行全体を識別子として扱う
列名はテーブル定義と完全一致が必要です(大文字小文字、空白含む)。
ここではMANDTとBUKRSします
Step 3: General Optionsを設定する
最初は次の設定から始めると扱いやすいです。
| 項目 | 初期推奨値 | 意図 |
|---|---|---|
Max Errors |
100 |
エラー過多時に早めに停止 |
Columns to Exclude |
必要列のみ除外 | 監査対象外列を比較から外す |
Case Sensitive Column Names |
False から開始 |
列名大小文字差分での失敗を抑える |
Skip Rowcount |
False(大規模時はTrue検討) |
件数カウント時間とのトレードオフ |
Allow Empty Data Sources |
要件に応じて設定 | 空データを許容する比較で使用 |
Report Unmatched Target Rows |
True |
ターゲット側余剰行も検知 |
Export Matched Data |
False |
レポート肥大化を防ぎ性能維持 |
Step 4: Toleranceを入れて誤検知を減らす
値の微差を許容したい列にはToleranceを設定します。
数値トレランスの例:
-
-2;+2(絶対値で許容) -
-1%;+1%(割合で許容)
注意点:
- Row Key列にはToleranceを設定できない
- 小数点と桁区切りはLocale依存なので、Source/TargetのLocale設定をそろえる
Step 5: 実行して結果を確認する
テスト結果の確認にはTestStepのResult欄をOK*と指定する事で結果確認が簡単に検証できます。
それではテストを実行しましょう。
テストを実行したら、まず次の順番で見ます。
- 失敗件数と
Max Errors到達有無 - Unmatched Source / Unmatched Target の件数
- Matched row内のセル差分(Tolerance適用後でも残る差分)
Report Path を設定しておくと、比較結果をSQLiteベースのレポートとして保存できます。
必要に応じてReport ExporterでHTML/CSVへ展開し、レビュー共有しやすくします。
成功時
成功時はLogInfoより処理件数などが確認できます。
(上記のResultでOK*と設定している場合)

エラー時
エラー時はLogInfoよりエラー件数等の詳細が確認可能です。

Step 6: Report Exporter/Report Viewer
実行結果のレポート等が必要な場合は実施結果のDBファイルからHTML形式またはCSV形式での出力が可能です。
Report Exporterはexeファイルをダウンロードし、利用します。
使用例
C:\Files\DI>Tricentis.DataIntegrity.Report.Exporter.exe ^
--input "C:\Files\DI\Row by Row Comparison\Cloud\TestResultReport_yyyymmdd-hhmmss.db" ^
--output "C:\Files\DI\Row by Row Comparison\Cloud" ^
--format HTML
Report Exporter 引数一覧
| Argument | 説明 |
|---|---|
--i, --input
|
Data Integrity テストレポートの絶対パスを指定します。 |
--o, --output
|
出力ファイルの保存先を指定します。 使用方法: ・1テーブルのみ出力する場合:ディレクトリまたはファイルパスを指定可能 ・複数テーブルを出力する場合:ディレクトリを指定(形式: <レポート名>_<テーブル名>)・全テーブルを出力する場合:ディレクトリを指定 ⚠ Summaryタブは常にJSON形式で出力されます。ファイル指定時は .json 拡張子が必須です。 |
--f, --format
|
出力形式を指定します。 デフォルト: CSVHTML を指定するとHTML形式でエクスポートします。 |
--t, --table
|
出力対象テーブルを指定します。 指定可能値: Differences / Unmatched / Invalid / UnmatchedSource / UnmatchedTarget / InvalidSource / InvalidTarget / Summary※ HTML形式では Matched 行のエクスポートは未対応。 複数テーブル出力方法: ・引数を複数回指定(テーブル毎) ・未指定の場合は全テーブルを出力 |
--d, --delimiter
|
CSV出力時のみ使用。区切り文字を指定します。 デフォルト: ,(カンマ) |
--progress |
エクスポート進捗を表示します。 |
--h, --help
|
ヘルプを表示します。 |
--v, --version
|
バージョン情報を表示します。 |
Report Viewer を利用すると比較結果の差異一覧が容易に確認できますので
手動でエクセルなどで比較する場合と比べても、圧倒的に簡単に差分比較が実現可能です。
Report Viewer Summary
Report Viewer Differences
Report Viewer In Source Only
Report Viewer In Target Only
トラブルシュート
行が大量に不一致になる
- Row Keyが一意でない可能性を確認
- Source/Targetで比較対象の抽出条件(WHERE句)が一致しているか確認
実行が重い
-
Export Matched Data=Falseを徹底 - 必要なら
Skip Rowcount=Trueを試す - 比較不要列は
Columns to Excludeへ移す
想定外の「差分なし」になる
-
Columns to Excludeに重要列を入れていないか確認 - Tolerance設定が広すぎないか確認
まとめ
実践編の要点は以下です。
- Row Keyは一意性重視で設計する
- General Optionsは「精度」と「性能」のバランスで調整する
- レポート出力まで含めて運用設計を目指す
この次のステップとしては、定期実行を前提に「失敗時の切り分けフロー」と「運用メトリクス(失敗率・差分傾向)」まで落とし込むのがおすすめです。
補足
注 SAPReader利用時の列名指定について
SAPReaderを利用する際にはテーブル情報のTechnical Nameを指定します。
Technical NameはSE16やSE11で確認してください。
最小設計サンプル
参考リンク(公式ドキュメント)
- Validate your data integrity
https://docs.tricentis.com/tosca-cloud/en-us/content/data_integrity/di_intro.htm - Complete Row by Row Comparison module
https://docs.tricentis.com/tosca-cloud/en-us/content/data_integrity/di_complete_row_by_row.htm - Run Reconciliation tests
https://docs.tricentis.com/tosca-2025.1/en-us/content/data_integrity/di_reconciliation_run.htm - Generate comparison reports
https://docs.tricentis.com/tosca-2025.1/en-us/content/data_integrity/di_reconciliation_error_reports.htm - Define tolerances
https://docs.tricentis.com/tosca-16.0/en-us/content/data_integrity/di_tolerances.htm - Use the Report Exporter
https://docs.tricentis.com/tosca-cloud/en-us/content/data_integrity/di_report_exporter.htm
本記事は 2026-02-24 時点の公開ドキュメントをもとに作成しています。









