複数のファイルをマージし、グループ化したい
キーワード:マージ,結合,グループ化,グルーピング
概要
複数のファイルをマージしてグループ化したい場合、マージ処理およびグループ化ロジックを使用します。
3つのCSVファイルを読み取り、「本部ID」をキー項目としてマージを行います。
マージしたデータを「本部ID」をキー項目としてグループ化し、XMLファイルに書き込みます。
入出力のイメージ
入力データ(1)
|
入力データ(2)
|
入力データ(3)
|
出力データ
<root>
<本部情報>
<本部名></本部名>
<本部ID></本部ID>
<部署名></部署名>
<部署ID></部署ID>
<社員>
<社員名></社員名>
<社員ID></社員ID>
</社員>
</本部情報>
</root>
|
処理の流れ
サンプルプロジェクトの処理の流れは以下の通りです。
- 「CSVファイル読み取り処理」で1つ目のCSVファイルを読み取ります。
- 「CSVファイル読み取り処理」で2つ目のCSVファイルを読み取ります。
- 「CSVファイル読み取り処理」で3つ目のCSVファイルを読み取ります。
- 「マージ処理」の「Or-Integrateマージロジック」で「本部ID」をキー項目としてマージします。
- 「マッピング処理」の「グループ化ロジック」で「本部ID」をキー項目としてグループ化します。
- 「XMLファイル書き込み処理」でグループ化したデータをXMLファイルに書き込みます。

実行結果のイメージについては、サンプルプロジェクトのサンプルデータ「output.xml」を参照してください。
ポイントとなる機能
名前 |
説明 |
ツールパレット上の場所 |
Or-Integrateマージロジック |
Or-Integrate形式でマージします。 |
「マージ」-「基本」-「Or-Integrateマージ」 |
グループ化ロジック |
グループ化を行います。 |
「繰り返し」-「基本」-「グループ化」 |
処理のポイント
グループ化ロジックは、グループ対象にするキー項目を指定してグループ化を行います。
また、グループ化した際に繰り返すノードを指定し、繰り返し出力します。
サンプルプロジェクトの使用方法
上記処理を実装したサンプルプロジェクトを用意しています。サンプルプロジェクトを使用する場合の手順は、以下の通りです。
- サンプルプロジェクトの展開
サンプルプロジェクト「rl_reference_035.zip」を展開します。
- プロジェクトのアップロード
「rl_reference_035.zip」を展開後に作成される「rl_reference_035プロジェクト」ディレクトリがプロジェクトファイルとなります。
DataSpider Studioを起動し、マイプロジェクトの画面から[ファイル]-[ローカルからアップロード]で展開したディレクトリ「rl_reference_035プロジェクト」をアップロードしてください。
- サンプルデータの準備
「rl_reference_035.zip」を展開後に作成される「samples」ディレクトリがサンプルデータとなります。
$DATASPIDER_HOME/server/samplesディレクトリに上書きしてください。
スクリプトの作成手順

プロセスフローおよびデータフローは、「
サンプルプロジェクトの説明」のスクリプト画像を参照して適宜設定してください。
- デザイナのツールパレット「ファイル」-「CSV」-「CSVファイル読み取り」から、CSVファイル読み取り処理をスクリプトキャンバスに配置します。
- CSVファイル読み取り処理の設定は、以下のように行います。
[必須設定]タブ
[読み取り設定]タブ
- デザイナのツールパレット「ファイル」-「CSV」-「CSVファイル読み取り」から、CSVファイル読み取り処理をスクリプトキャンバスに配置します。
- CSVファイル読み取り処理の設定は、以下のように行います。
[必須設定]タブ
[読み取り設定]タブ
- デザイナのツールパレット「ファイル」-「CSV」-「CSVファイル読み取り」から、CSVファイル読み取り処理をスクリプトキャンバスに配置します。
- CSVファイル読み取り処理の設定は、以下のように行います。
[必須設定]タブ
[読み取り設定]タブ
- デザイナのツールパレット「変換」-「基本」-「マージ」から、マージ処理をスクリプトキャンバスに配置します。
マージ処理には複数の入力元よりデータフローを引くことができます。
- マージ処理のMapperエディタを開き、「本部ID」をキー項目としてマージする処理を作成します。
- マッピングキャンバスは、以下のように設定します。
マッピングキャンバス

番号 |
ロジック名 |
説明 |
ツールパレット上の場所 |
(1) |
Or-Integrateマージ |
Or-Integrate形式でマージします。 |
「マージ」-「基本」-「Or-Integrateマージ」 |
- デザイナのツールパレット「変換」-「基本」-「マッピング」から、マッピング処理をスクリプトキャンバスに配置します。
- マッピング処理のMapperエディタを開き、「本部ID」をキー項目としてグループ化する処理を作成します。
- マッピングキャンバスは、以下のように設定します。
マッピングキャンバス

番号 |
ロジック名 |
説明 |
ツールパレット上の場所 |
(1) |
グループ化 |
グループ化を行います。 |
「繰り返し」-「基本」-「グループ化」 |
(2) |
単純な繰り返し |
指定したノードを繰り返します。 |
「繰り返し」-「基本」-「単純な繰り返し」 |
処理のポイント
- グループ化ロジックで「本部ID」をキー項目としてグループ化を行います。
- 繰り返しポイントを指定することで、指定した要素を繰り返し出力することができます。
サンプルでは繰り返しポイントとして、社員要素を指定しています。
- 出力先のコンポーネントがテーブルモデル型の場合、グループ化を行うことはできません。
|
- デザイナのツールパレット「ファイル」-「XML」-「XMLファイル書き込み」から、XMLファイル書き込み処理をスクリプトキャンバスに配置します。
- XMLファイル書き込み処理の設定は、以下のように行います。
[必須設定]タブ
[書き込み設定]タブ
- スクリプトを実行し、正常終了すれば成功です。