SPSS Modeler フローでは、複数のインポート・ノードとエクスポート・ノードがあり、複数のインポート・ノードが 複数のリレーショナル・データベースからデータを取り出すことができます。 watsonx.aiランタイムを使用して、リレーショナルデータベースからの複数のデータソースも使用するSPSS Modelerバッチジョブを作成できます。
これらの例では、 IBM Db2 および IBM Db2 Warehouse(例では dashdb) を使用しています。
バッチ・ジョブへの入力としての複数のリレーショナル・データベースへの接続
SPSS Modeler フローのインポート・ノードの数はさまざまです。 60 または 70 ほど使用する場合があります。 ただし、これらの場合、データベースへの個別の接続の数はごくわずかですが、接続を介してアクセスされる表名は異なります。 ここで説明するアプローチは、すべての表接続の詳細を指定するのではなく、データベース接続に重点を置いています。 バッチジョブは、SPSS Modelerフローのインポートノードの接続名にマッピングされたノード名によるデータ接続または参照のリストを受け入れます。
この図は、 SPSS Modeler フローの 3 つの入力ノードを単一の出力ノードに結合して、データを別のコネクターにエクスポートする方法を示しています。 SPSS モデルまたはフローを配置スペースに保存した後、バッチ配置を作成し、フロー内の 3 つの入力ノードそれぞれに入力データを提供します。 ジョブを実行して、デプロイメント用の単一の出力ファイルを生成します。
制限: フロー内のノードの接続参照は、バッチ・ジョブから受け取った参照によってオーバーライドされます。 ただし、インポート・ノードまたはエクスポート・ノードのテーブル名はオーバーライドされません。
SPSS Modeler フロー (例を含む)
次の図は、典型的なSPSS Modelerフローを示しています。 このフローでは、SPSS Modeler の入力として複数のコネクタを使用し、出力として単一のコネクタにデータをエクスポートします。 この例では、 Db2 Warehouse (dashDB) への 1 つの接続と Db2 データベースへの 2 つの接続を含め、3 つのコネクターに接続することによってモデルを構成します。 インポート・ノードは、合計 40 の表からデータを読み取ります。これには、 Db2 Warehouse からの 30 の表と、2 つの Db2 データベースからの 5 つの表が含まれます。 エクスポート・ノードは、単一の出力表である表 X にデータを書き込みます。表 X は、単一の Db2 接続としてエクスポートできます。
例
以下の手順では、接続を作成して表を識別する方法を説明します。
プロジェクトに接続を作成します。
SPSS Modeler フローを実行するには、プロジェクトで開始し、フローが接続する 3 つのデータベースそれぞれに接続を作成します。
この例では、プロジェクト内のデータベース接続の名前は
dashdb_conn
、db2_conn1
、およびdb2_conn2
です。接続を使用するようにSPSS Modelerフローのデータアセットノードを構成します。
作成した3つの接続(
dashdb_conn
、db2_conn1
、db2_conn2
)のいずれかを参照するようにフロー内の各ノードを設定し、各ノードにテーブルを指定します。注: ジョブの実行時に接続の名前を変更することができます。 フローで選択した表名は、ジョブの実行時に参照されます。 それらを上書きまたは変更することはできません。SPSSモデルをwatsonx.aiRuntime リポジトリに保存します。
モデルを保存する際に、入力スキーマと出力スキーマを提供すると便利です。 これにより、watsonx.aiStudio のユーザーインターフェースでバッチジョブを作成する際に、各入力を特定するプロセスが簡素化されます。 SPSS Modeler フローのデータ・アセット・ノードで参照される接続は、入力スキーマの 「ノード名」 フィールドに指定する必要があります。 ノード名を見つけるには、フロー内のデータ資産インポート・ノードをダブル・クリックして、そのプロパティーを開きます:
注:スキーマなしで保存された SPSS モデルは、ジョブではまだサポートされていますが、ノード名 フィールドを手動で入力し、ジョブを作成するときにデータ資産を提供する必要があります。
このコードサンプルは、モデル(エンドポイント:
POST /v4/models
)を保存するときに入力スキーマを保存する方法を示しています。{ "name": "SPSS Drug Model", "label_column": "label", "type": "spss-modeler_18.1", "runtime": { "href": "/v4/runtimes/spss-modeler_18.1" }, "space": { "href": "/v4/spaces/<space_id>" }, "schemas": { "input": [ { "id": "dashdb_conn", "fields": [] }, { "id": "db2_conn1 ", "fields": [] } , { "id": "db2_conn2", "fields": [] } ], "output": [{ "id": "db2_conn2 ","fields": [] }] } }
注: これらの各接続のフィールド数は重要ではありません。 これらは検証も使用もされません。 重要なことは、使用される接続の数です。SPSS モデルのバッチ・デプロイメントを作成します。
SPSS モデルの場合、バッチ・デプロイメント・ジョブの作成プロセスは同じです。 前の手順で作成したモデルを使用して配置を作成できます。
SPSS バッチジョブを作成します。
バッチジョブは、watsonx.aiStudio のユーザーインターフェースから、または REST API を使用して作成できます。 スキーマがモデルと共に保存されている場合、watsonx.aiStudio のユーザーインターフェースは、スキーマで指定された接続からの入力を簡単に受け付けることができます。 データ接続は既に作成されているため、ジョブを定義する際にwatsonx.aiStudio のユーザーインターフェースに表示される各ノード名フィールドに接続データアセットを選択できます。
ジョブの実行依頼時に作成される接続の名前は、モデル作成時に使用されるものとは異なる場合があります。 ただし、 「ノード名」 フィールドに割り当てる必要があります。
スキーマが提供されていない場合のモデルに対するジョブの作成
モデルの保存時にモデル・メタデータにスキーマが指定されていない場合は、 インポート・ノード名 を手動で入力する必要があります。 さらに、watsonx.aiStudio のユーザーインターフェースで、接続ごとにデータアセットを選択する必要があります。 SPSS Modeler フローのデータ資産インポート・ノードで参照される接続は、インポート/エクスポート・データ参照の 「ノード名」 フィールドで指定する必要があります。
データ資産を持つジョブの接続を指定する
このコードサンプルは、REST API (Endpoint: /v4/deployment_jobs
) を使用して作成されたジョブの接続を指定する方法を示しています。
{
"deployment": {
"href": "/v4/deployments/<deploymentID>"
},
"scoring": {
"input_data_references": [
{
"id": "dashdb_conn",
"name": "dashdb_conn",
"type": "data_asset",
"connection": {},
"location": {
"href": "/v2/assets/<asset_id>?space_id=<space_id>"
},
"schema": {}
},
{
"id": "db2_conn1 ",
"name": "db2_conn1 ",
"type": "data_asset",
"connection": {},
"location": {
"href": "/v2/assets/<asset_id>?space_id=<space_id>"
},
"schema": {}
},
{
"id": "db2_conn2 ",
"name": "db2_conn2",
"type": "data_asset",
"connection": {},
"location": {
"href": "/v2/assets/<asset_id>?space_id=<space_id>"
},
"schema": {}
}],
"output_data_reference": {
"id": "db2_conn2"
"name": "db2_conn2",
"type": "data_asset ",
"connection": {},
"location": {
"href": "/v2/assets/<asset_id>?space_id=<space_id>"
},
"schema": {}
}
}
親トピック: フレームワークのよってのバッチ・デプロイメント入力の詳細