【SPSS Modeler】CP4DaaS版利用における備忘録①（Mergeノードの入力順序で気を付けること）

# はじめに
本記事ではSPSS Modeler FlowでMergeノード（レコード結合ノード）を扱う上で、特に入力順序の設定に関する留意事項をまとめています。
Desktop版からCP4DaaS版に環境移行されるかた、CP4DaaS版で度々同一のMergeノード設定を変更されているかたは是非ご一読ください。

## 背景
今回の記事執筆に至るまでの背景を説明します。
1. SPSS Modeler Desktop版で作成されたストリームをSPSS Modeler Flow（※以下、CP4DaaS版と記載）に環境移行するタスクを実施
1. 環境移行前後で終端テーブルの出力結果が一致していないことを確認
1. 調査の結果、「Desktop版とCP4DaaS版とで、操作画面上のMergeノードの設定内容は同一なのに出力結果が一致しない」事象を確認
1. 製品サポートに問い合わせた結果、Mergeノードに関する（奇妙な）挙動が発覚 
    - 2023年10月現在もバグ未修正の様子

## 検証パターン
前項「背景」3番の事象詳細について、サンプルデータで説明します。
紹介順は以下です。

- Desktop版（Modeler Client）
    - ①販売データ、商品情報の順で結合
    - ②商品情報、販売データの順で結合
- CP4DaaS版（Modeler Flow）
    - ③販売データ、商品情報の順で結合
    - ④商品情報、販売データの順で結合

### 検証詳細

#### Desktop版｜販売データ、商品情報の順で結合
サンプルデータとして、「販売データ」「商品情報」の2テーブルを記載の順序で部分結合します。
順序入れ替えは簡単で、Mergeノードの設定で入力タブから手動で順序を入れ替えます。
 <img width="600" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/638050/659c7255-f4a7-c420-da11-2dda9285ab1b.png"> <img width="600" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/638050/0a7bae18-d037-b25d-a07e-74affb49257a.png">

結合結果は以下です。
左から商品名、No.、販売数、商品ID、製造メーカーの順に結合できています。
 <img width="600" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/638050/6329548c-33fc-a386-59c5-796dafecd3bf.png">

#### Desktop版｜商品情報、販売データの順で結合
続けて、結合順序を入れ替えて「商品情報」「販売データ」の順で結合結果を見てみます。
 <img width="600" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/638050/73a09ece-b4fd-8978-2b9f-d8d2f5c77ef6.png">  <img width="600" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/638050/f098d532-8bf4-8da6-9c7b-ff0da9c09ad4.png">

結合結果は以下です。
結合順序を入れ替えたことで、左から商品名、商品ID、製造メーカー、No.、販売数の順に結合されています。

 <img width="600" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/638050/422bd7e4-1d4f-172e-6cc7-55a36079d62c.png"> 

#### CP4DaaS版｜販売データ、商品情報の順で結合
Desktop版と同様に結合させます。

 <img width="500" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/638050/a32bac8e-d709-89c2-7a6e-62a1d9fa8f00.png"> 

 出力結果は以下です。
Desktop版と同様に、左から商品名、No.、販売数、商品ID、製造メーカーの順に結合できています。
 <img width="500" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/638050/10e9e092-52a1-02e2-f991-08a7d7c60318.png"> 


#### CP4DaaS版｜商品情報、販売データの順で結合
画面上で入力順序を入れ替えて出力します。

ここでは、商品情報の左端にチェックをつけ、右端の「上へ移動」をクリックし、保存します。
 <img width="500" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/638050/3874a585-b04d-7b81-ffcf-a699e0e9a638.png"> 
 <img width="500" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/638050/8d886bda-97b7-2994-ea50-f3011bf683b8.png"> 

出力結果は以下です。
本来なら結合順序を入れ替えたことで、左から商品名、商品ID、製造メーカー、No.、販売数の順に結合されているはずですが、 [販売データ、商品情報の順で結合させたとき](https://qiita.com/riina_hoiz/items/1400bf90c27a0c320c1a#cp4daas%E7%89%88%E8%B2%A9%E5%A3%B2%E3%83%87%E3%83%BC%E3%82%BF%E5%95%86%E5%93%81%E6%83%85%E5%A0%B1%E3%81%AE%E9%A0%86%E3%81%A7%E7%B5%90%E5%90%88) から結果が変わっていません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/638050/b076b524-9b79-c039-c225-23af6e5e23d9.png)




### 検証まとめ
マージノードの結合入力順序を入れ替える際、
- Desktop版（Modeler Client）：設定済みの結合入力順序を更新すると、更新後の順序で結合処理される
- CP4DaaS版（Modeler Flow）：設定済みの結合入力順序を更新しても、<font color="DeepPink">画面上では順序更新できているように見えるが処理や出力では更新内容が反映されない。</font>


# 製品サポートに聞いてみた
タイトル通り製品サポートに問い合わせたところ、以下回答が得られました（ニュアンス翻訳です）
- CP4DaaS版では初期設定の入力順序が継続記憶されるため、画面上で入力順序を入れかえても最初に設定された順序で処理される
- 入力順序を正しく入れ替えるには都度Mergeノードを新規作成し、正しい入力順で設定すること

回答にあったように、Mergeノードを新規作成したところ意図した順序で結合ができました。

# 最後に
（手間ですが）**Mergeノードの設定変更時には都度ノードを新規作成のうえ設定するのが良い**でしょう。
またMergeノード以外にも同様の事象が起こりうる可能性がありますので、総じてCP4DaaS上で設定変更する際にはノードを新規作成するのがベターです。

# お断り
:::note warn
このサイトの掲載内容は私自身の見解であり、必ずしも所属会社の立場、戦略、意見を代表するものではありません。 記事は執筆時点の情報を元に書いているため、必ずしも最新情報であるとはかぎりません。 記事の内容の正確性には責任を負いません。自己責任で実行してください。
:::

# 参考サイト
- IBM SPSSソフトウェア公式サイト：https://www.ibm.com/jp-ja/spss
- IBM SPSS Modeler（公式サイト、英語）：https://www.ibm.com/products/spss-modeler
- SPSS Modeler Flowとは： [IBM Cloud Pak for Data > Docs > データの分析とモデルの操作 > SPSS Modeler](https://dataplatform.cloud.ibm.com/docs/content/wsd/spss-modeler.html?context=cpdaas&audience=wdp&locale=ja#:~:text=SPSS,Modeler%20%E3%83%95%E3%83%AD%E3%83%BC%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%E3%81%A8%E3%80%81%E3%83%93%E3%82%B8%E3%83%8D%E3%82%B9%E3%81%AE%E5%B0%82%E9%96%80%E7%9F%A5%E8%AD%98%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E4%BA%88%E6%B8%AC%E3%83%A2%E3%83%87%E3%83%AB%E3%82%92%E8%BF%85%E9%80%9F%E3%81%AB%E9%96%8B%E7%99%BA%E3%81%97%E3%80%81%E3%81%9D%E3%82%8C%E3%82%89%E3%82%92%E3%83%93%E3%82%B8%E3%83%8D%E3%82%B9%E3%83%BB%E3%82%AA%E3%83%9A%E3%83%AC%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AB%E3%83%87%E3%83%97%E3%83%AD%E3%82%A4%E3%81%97%E3%81%A6%E3%80%81%E6%84%8F%E6%80%9D%E6%B1%BA%E5%AE%9A%E3%82%92%E5%90%91%E4%B8%8A%E3%81%95%E3%81%9B%E3%82%8B%E3%81%93%E3%81%A8%E3%81%8C%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%80%82)
- SPSS Modeler Mergeノード：https://www.ibm.com/docs/ja/spss-modeler/saas?topic=nodes-merge-node