複数のデータをマージしたい
キーワード:マージMapper,マージ,結合
概要
複数のデータを組み合わせたい場合、マージを使用します。サンプルプロジェクトの説明
2つのCSVファイル(「備品管理簿.csv」・「社員マスタ.csv」)をマージして「備品所有状況一覧.csv」を作成します。「備品管理簿.csv」に存在するレコードを基準としてマージします。

処理の流れ
サンプルプロジェクトの処理の流れは以下の通りです。- 「CSVファイル読み取り処理」で入力ファイル「備品管理簿.csv」を読み取ります。
- 「CSVファイル読み取り処理」で入力ファイル「社員マスタ.csv」を読み取ります。
- 「マージ」の「Left-Right-Joinマージロジック」を用いて上記2つのファイルをマージします。
- 「CSVファイル書き込み処理」で出力ファイル「備品所有状況一覧.csv」を書き込みます。

ポイントとなる機能
名前 | 説明 | ツールパレット上の場所 |
---|---|---|
Left-Right-Joinマージロジック | Left-Right-Join形式でマージします。 | 「マージ」-「基本」-「Left-Right-Joinマージ」 |
処理のポイント
2つのファイルのキーがマッチしたデータは出力し、キーがマッチしなかったデータは「備品管理簿.csv」に存在するレコードのみ出力します。マージ用Mapperロジックのうち、Left-Right-Joinマージロジックを使用します。
サンプルプロジェクトの使用方法
上記処理を実装したサンプルプロジェクトを用意しています。サンプルプロジェクトを使用する場合の手順は、以下の通りです。サンプルプロジェクトのダウンロード | 逆引きリファレンス シナリオ048のサンプルプロジェクト |
---|
- サンプルプロジェクトの展開
サンプルプロジェクトファイル「rl_reference_048.zip」を展開します。 - プロジェクトのアップロード
「rl_reference_048.zip」を展開後に作成される「rl_reference_048プロジェクト」ディレクトリがプロジェクトファイルとなります。
DataSpider Studioを起動し、マイプロジェクトの画面から[ファイル]-[ローカルからアップロード]で展開したディレクトリ「rl_reference_048プロジェクト」をアップロードしてください。 - サンプルデータの準備
「rl_reference_048.zip」を展開後に作成される「samples」ディレクトリがサンプルデータとなります。
$DATASPIDER_HOME/server/samplesディレクトリに上書きしてください。
スクリプトの作成手順

- 「備品管理簿.csv」を読み取るため、デザイナのツールパレット「ファイル」-「CSV」-「CSVファイル読み取り」から、CSVファイル読み取り処理をスクリプトキャンバスに配置します。
- CSVファイル読み取り処理の設定は、以下のように行います。
[必須設定]タブ
[読み取り設定]タブ
- CSVファイル読み取り処理の設定は、以下のように行います。
- 「社員マスタ.csv」を読み取るため、デザイナのツールパレット「ファイル」-「CSV」-「CSVファイル読み取り」から、CSVファイル読み取り処理をスクリプトキャンバスに配置します。
- CSVファイル読み取り処理の設定は、以下のように行います。
[必須設定]タブ
[読み取り設定]タブ
- CSVファイル読み取り処理の設定は、以下のように行います。
- デザイナのツールパレット「変換」-「基本」-「マージ」から、マージ処理をスクリプトキャンバスに配置します。
マージ処理には複数の入力元よりデータフローを引くことができます。
- デザイナのツールパレット「ファイル」-「CSV」-「CSVファイル書き込み」から、CSVファイル書き込み処理をスクリプトキャンバスに配置します。
- CSVファイル書き込み処理の設定は、以下のように行います。
[必須設定]タブ
[書き込み設定]タブ
- CSVファイル書き込み処理の設定は、以下のように行います。
- マージ処理のMapperエディタを開き、Left-Right-Joinマージロジックを使用して、複数の入力データを1つの出力データにマッピングします。
- マッピングキャンバスは、以下のように設定します。
マッピングキャンバス
番号 ロジック名 説明 ツールパレット上の場所 (1) Left-Right-Joinマージ Left-Right-Join形式でマージします。 「マージ」-「基本」-「Left-Right-Joinマージ」
処理のポイント
- 出力の基準となる入力元「csv_read」のrow要素をLeft-Right-Joinマージロジックの第一ハンドラにマッピングします。
続いて、マージするキーとなる要素「所有者社員ID」を第二ハンドラにマッピングします。 - マージする入力元「csv_read(1)」のrow要素を第三ハンドラにマッピングします。
続いて、マージするキーとなる要素「社員ID」を第四ハンドラにマッピングします。 - Left-Right-Joinマージから出力先「csv_write」のrow要素へマッピングします。
- 最後に、出力したい要素を入力元から出力先へマッピングします。
- 出力の基準となる入力元「csv_read」のrow要素をLeft-Right-Joinマージロジックの第一ハンドラにマッピングします。
- マッピングキャンバスは、以下のように設定します。
- スクリプトを実行し、正常終了すれば成功です。