【CP4DaaS】SPSS Modelerフローをデプロイメント・スペースにプロモートし、バッチジョブを作成する

# 1. はじめに
IBM Cloud Pak for Data as a Service（CP4DaaS）のSPSS Modelerフローをデプロイメント・スペースにプロモートしバッチジョブを作成する方法について記載します。

SPSS Modelerフローをデプロイメント・スペースにプロモートする場合、これまではプロジェクトをエクスポートしてからデプロイメント・スペースにインポートする必要がありました。
2024年11月19日の新機能により、SPSS Modelerフローをプロジェクトからデプロイメント・スペースに直接プロモートできるようになりました。

:::note info
[SPSS Modelerフローを展開スペースにプロモートする](https://dataplatform.cloud.ibm.com/docs/content/wsj/getting-started/whats-new.html?context=cpdaas&audience=wdp#promote-spss-modeler-flows-to-deployment-spaces)
:::

また2024年9月10日の新機能により、デプロイメント・スペースでSPSS Modelerフローのバッチジョブを作成できるようになりました。

:::note info
[展開スペースで SPSS Modeler フローのバッチ ジョブを作成する](https://dataplatform.cloud.ibm.com/docs/content/wsj/getting-started/whats-new.html?audience=wdp&context=cpdaas#create-batch-jobs-for-spss-modeler-flows-in-deployment-spaces)
:::

この記事では上記の新機能を使用してSPSS Modelerフローをデプロイメント・スペースにプロモートしバッチジョブを作成・実行するまでの手順を記載します。

（2024年12月時点の機能をもとに記載していますが、今後UIや仕様に変更が入る可能性がある点をご了承ください。）

# 2. SPSS Modelerフローの作成
まず以下のようなシンプルなSPSS Modelerフロー（spss_modeler_flow）を作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492427/55738851-66cb-3053-291e-5c4d598ead86.png)

このフローではデータ資産ノードでCSVファイル（input.csv）をインポートし、フィルター・ノードでヘッダー名を変更した後、データ資産エクスポート・ノードでCSVファイル（output.csv）をエクスポートしています。
フローを1度実行し、output.csvを出力しておきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492427/cad3d8ac-54b6-bd90-a005-a94cbaf64858.png)

参考までに上記のファイルはこちらからダウンロードできます。

https://github.com/3BA-FVDNFF/2024_4Q_SPSSBatchJob/tree/main/sample


# 3. デプロイメント・スペースへのプロモート
次にSPSS ModelerフローとCSVファイルをデプロイメント・スペースへプロモートします。
（事前にデプロイメント・スペースを作成しておきます。）

プロジェクトをエクスポートしてデプロイメント・スペースにインポートする従来の方法も可能ですが、ここではSPSS ModelerフローとCSVファイルをデプロイメント・スペースへ直接プロモートします。

まずSPSS Modelerフローのオーバーフロー・メニューをクリックし、「スペースへのプロモート」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492427/39b0affb-276a-7077-a0f7-f46bcf3b7ecc.png)

プロモート先のデプロイメント・スペースを選択し、「プロモート」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492427/c3693334-9801-9d69-0cb7-528ea56229a8.png)

プロモートが成功したら、メッセージ内の「デプロイメント・スペース」のリンクをクリックして、デプロイメント・スペースを表示します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492427/827e5a12-53d5-fe8b-2376-1a9a718efb92.png)

プロモートしたSPSS Modelerフローが資産の一覧に表示されています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492427/631ad56b-7367-5c28-7859-b7ea0e3ad4e2.png)

入力ファイルと出力ファイルのCSVファイルも同様の手順でプロモートします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492427/a79350c8-b083-f22a-fd1b-c8dce8725b30.png)

以上で必要な資産のプロモートが完了しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492427/9ba69481-72c9-8164-bf96-e8b0d09e6c94.png)

# 4. バッチジョブの作成と実行
次にデプロイメント・スペース上でSPSS Modelerフローのバッチジョブを作成します。
プロモートしたSPSS Modelerフローのオプションをクリックし、「新規ジョブ」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492427/6fb997aa-c987-624e-b371-ff2ff9cf0737.png)

ジョブの名前を入力し、「次へ」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492427/bf8b7321-2e3d-6a0a-5a09-442d64aa9fbc.png)

フロー・パラメーターは使用していないため、そのまま「次へ」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492427/64f4d511-27a2-7d3b-a95e-53c22d0e12b9.png)

複数のターミナル・ノードがある場合に実行するノードを選択できますが、ここでは1つだけのため、そのまま「次へ」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492427/c7cedb45-2f0f-40ee-66b9-cf9e85536ee5.png)

「ジョブ作成後に実行」にチェックを入れ、「次へ」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492427/cb58e0dd-a7a8-1082-dc5e-4c726513314b.png)

SPSS Modelerフローで指定した入力ファイル（input.csv）と出力ファイル（output.csv）のマッピングが自動的に行われるため、状況が「成功」となっています。そのまま「次へ」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492427/0dd0f220-bc4b-a273-8e92-ea51dba0f476.png)

そのまま「次へ」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492427/2710b868-5909-76a2-bdf4-cd6eea4d4046.png)

最後に設定した内容を確認し、「作成して実行」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492427/a47de2ee-3020-9457-e2b0-d84b6387e7ab.png)

成功すると以下のダイアログが表示されるので「閉じる」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492427/eb9ed143-ea52-202c-a3e6-d990349f8188.png)

実行されたジョブが完了するまで待ちます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492427/a0f1b67a-dd9c-86b1-c2c8-bf1c89e8171f.png)

ジョブが完了したらデプロイメント・スペースの資産から、ジョブの実行により出力ファイルが更新されていることを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492427/e1dbb261-f497-069f-baa0-922085ca0874.png)

手順は以上になります。

# 参考：watsonx.ai Studioのプロジェクト内でのジョブ作成
watsonx.ai Studioのプロジェクト内でSPSS Modelerフローのジョブを作成することもできます。（SPSS Modelerフローのオーバーフロー・メニューをクリックし、「新規ジョブ」を選択します。）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492427/89d9a7e6-56a4-d58b-903c-8d960c05536c.png)

デプロイメント・スペースのジョブとほぼ同様の形式でジョブを作成可能ですが、プロジェクト独自のオプションとして、ジョブを新規フローとして保存するかどうかを選択する設定がジョブ作成の最初の画面にあります。この設定を試してみた結果を以下に記載します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492427/170e5b46-2bcd-de6a-b800-53b6bf5babbb.png)

「新規フローとして保存」を選択し、ジョブを作成しスケジュール実行します。ここでは3回実行しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492427/2bbb20c8-5dab-02b9-086f-ac2739827102.png)


プロジェクトの資産一覧を確認します。
「spss_modeler_flow」がジョブでスケジュール実行したフローですが、ジョブが実行される度にSPSS Modelerフロー名の末尾に連番が付く（「spss_modeler_flow_1」、「spss_modeler_flow_2」のような）形で別名保存されていることが分かります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492427/7ab4be61-105d-0efe-cb69-2d132c8e0522.png)

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