マスタデータに存在しないトランザクションデータを抽出したい
キーワード:マージMapper,マージ,キーマッチ,マッチング,CSV
シナリオ一覧に戻る
概要
マスタデータに存在しないトランザクションデータを抽出したい場合、Or-Integrateマージロジックを使用します。
CSVファイルのマスタデータおよびトランザクションデータを読み取ります。
トランザクションデータの「会社コード」がマスタデータに存在しないデータを抽出し、CSVファイルに出力します。
処理の流れ
サンプルプロジェクトの処理の流れは以下の通りです。
- 「CSVファイル読み取り処理」でCSVファイルのマスタデータを読み取ります。
- 「CSVファイル読み取り処理」でCSVファイルのトランザクションデータを読み取ります。
- 「マージ処理」の「Or-Integrateマージロジック」でマスタデータから「会社コード」にマッチした「会社名」を取得します。
- 「マッピング処理」の「条件による抽出ロジック」で「会社名」が空文字のデータを抽出します。
- 「CSVファイル書き込み処理」で抽出したデータをCSVファイルに書き込みます。
実行結果のイメージについては、サンプルプロジェクトのサンプルデータ「output.csv」を参照してください。
ポイントとなる機能
名前 |
説明 |
ツールパレット上の場所 |
Or-Integrateマージロジック |
Or-Integrate形式でマージします。 |
「マージ」-「基本」-「Or-Integrateマージ」 |
処理のポイント
Or-Integrateマージロジックでマージを行い、キーにマッチした場合、マスタから取得した値をセットします。
マスタから取得できずに空文字となっているデータを抽出することで、マスタデータに存在しないトランザクションデータのみ出力することが可能です。
サンプルプロジェクトの使用方法
上記処理を実装したサンプルプロジェクトを用意しています。サンプルプロジェクトを使用する場合の手順は、以下の通りです。
サンプルプロジェクトファイル名 |
rl_reference_024.zip |
- サンプルプロジェクトの展開
サンプルプロジェクトファイル「rl_reference_024.zip」を展開します。
- プロジェクトのアップロード
「rl_reference_024.zip」を展開後に作成される「rl_reference_024プロジェクト」ディレクトリがプロジェクトファイルとなります。
DataSpider Studioを起動し、マイプロジェクトの画面から[ファイル]-[ローカルからアップロード]で展開したディレクトリ「rl_reference_024プロジェクト」をアップロードしてください。
- サンプルデータの準備
「rl_reference_024.zip」を展開後に作成される「samples」ディレクトリがサンプルデータとなります。
$DATASPIDER_HOME/server/samplesディレクトリに上書きしてください。
スクリプトの作成手順
プロセスフローおよびデータフローは、「サンプルプロジェクトの説明」のスクリプト画像を参照して適宜設定してください。
- マスタデータを読み取るため、デザイナのツールパレット「ファイル」-「CSV」-「CSVファイル読み取り」から、CSVファイル読み取り処理をスクリプトキャンバスに配置します。
- CSVファイル読み取り処理の設定は、以下のように行います。
[必須設定]タブ
[読み取り設定]タブ
- トランザクションデータを読み取るため、デザイナのツールパレット「ファイル」-「CSV」-「CSVファイル読み取り」から、CSVファイル読み取り処理をスクリプトキャンバスに配置します。
- CSVファイル読み取り処理の設定は、以下のように行います。
[必須設定]タブ
[読み取り設定]タブ
- デザイナのツールパレット「変換」-「基本」-「マージ」から、マージ処理をスクリプトキャンバスに配置します。
マージ処理には複数の入力元よりデータフローを引くことができます。
- デザイナのツールパレット「変換」-「基本」-「マッピング」から、マッピング処理をスクリプトキャンバスに配置します。
- マージ処理のMapperエディタを開き、Or-Integrateマージロジックを使用して、キーにマッチしたデータおよびマッチしなかったデータをひとつの出力データにマッピングします。
- マッピングキャンバスは、以下のように設定します。
マッピングキャンバス

番号 |
ロジック名 |
説明 |
ツールパレット上の場所 |
(1) |
Or-Integrateマージ |
Or-Integrate形式でマージします |
「マージ」-「基本」-「Or-Integrateマージ」 |
処理のポイント
- 出力の基準となるマスタデータ「csv_read」のrow要素をOr-Integrateマージロジックの第一ハンドラにマッピングします。
続いて、マージするキーとなる要素「会社コード」を第二ハンドラにマッピングします。
- マージするトランザクションデータ「csv_read(1)」のrow要素を第三ハンドラにマッピングします。
続いて、マージするキーとなる要素「会社コード」を第四ハンドラにマッピングします。
- Or-Integrateマージロジックから出力先「mapping」のrow要素へマッピングします。
- 最後に、出力したい要素を入力元から出力先へマッピングします。
|
- デザイナのツールパレット「ファイル」-「CSV」-「CSVファイル書き込み」から、CSVファイル書き込み処理をスクリプトキャンバスに配置します。
- CSVファイル書き込み処理の設定は、以下のように行います。
[必須設定]タブ
- マッピング処理のMapperエディタを開き、条件による抽出ロジックを使用して、「会社名」が空文字のデータを抽出します。
- マッピングキャンバスは、以下のように設定します。
マッピングキャンバス

番号 |
ロジック名 |
説明 |
ツールパレット上の場所 |
(1) |
条件による抽出 |
条件にマッチしたもののみ繰り返して出力します。 |
「繰り返し」-「条件指定」-「条件による抽出」 |
(2) |
同じ |
二つの入力文字列が等しいかどうか判定します。 |
「条件」-「文字列」-「同じ」 |
(3) |
単一行文字列定数 |
単一行の文字列定数を出力します。
[必須設定]タブの[一行文字列]には何も入力しません。 |
「文字列」-「基本」-「単一行文字列定数」 |
処理のポイント
- マスタから取得できずに空文字となっているデータを抽出することで、マスタデータに存在しないトランザクションデータのみ出力することが可能です。
|
- スクリプトを実行し、正常終了すれば成功です。