複数のデータ・ソースを使用した SPSS Modeler バッチ・ ジョブ の作成
SPSS Modeler のフローでは、複数のインポートノードとエクスポートノードが配置されることが一般的であり、複数のインポートノードが1つ以上のリレーショナルデータベースからデータを取得する場合があります。 Watson Machine Learning を使用して、リレーショナル・データベースからの複数のデータ・ソースも使用する SPSS Modeler ・バッチ・ ジョブ を作成できます。
例では、IBM Db2とIBM Db2 Warehouseを使用します。例では、これらをdashdbと呼んでいます。
バッチジョブの入力として複数のリレーショナルデータベースに接続する
SPSS Modeler フロー内のインポートノードの数は、場合によって異なります。 60個や70個ほど使うこともあるかもしれません。 ただし、これらのケースでは、データベースへの個別の接続の数はわずかですが、接続を介してアクセスされる表名は異なります。 ここで説明する方法では、各表接続の詳細を指定するのではなく、データベース接続に焦点を当てています。 バッチ・ジョブは、 SPSS Modeler フローのインポート・ノード内の接続名にマップされるデータ接続または参照のリストを ノード名 別に受け入れます。
この図は、 SPSS モデル作成者フローの 3 つの入力ノードが、別のコネクターにデータをエクスポートするために、単一の出力ノードに結合される方法を示しています。 SPSS モデルまたはフローを デプロイメント・スペース に保存した後、バッチ・ デプロイメント を作成し、フロー内の 3 つの入力ノードのそれぞれに入力データを提供します。 ジョブ を実行して、 デプロイメント 用の単一の出力ファイルを生成します。
制限: フロー内のノードの接続参照は、バッチ・ ジョブ から受け取った参照によってオーバーライドされます。 ただし、インポート・ノードまたはエクスポート・ノードのテーブル名はオーバーライドされません。
SPSS Modeler フローと例
次の図は、一般的な SPSS Modeler ・フローを示しています。 このフローは、 SPSS Modeler で複数のコネクターを入力として使用し、出力として単一のコネクターにデータをエクスポートします。 この例では、 3 つのコネクターに接続することによってモデルが構成されています。これには、 Db2 Warehouse (dashDB) への 1 つの接続と、 Db2 データベースへの 2 つの接続が含まれます。 インポート・ノードは、合計 40 個の表からデータを読み取ります。これには、 Db2 Warehouse からの 30 個の表と、 2 つの Db2 ・データベースからの 5 個の表が含まれます。 エクスポート・ノードは、データを単一の出力表 Table X に書き込みます。この表は、単一の Db2 接続としてエクスポートできます。
例
これらの手順では、接続の作成方法とテーブルの特定方法について説明します。
プロジェクト内に接続を作成します。
SPSS Modeler フローを実行するには、プロジェクトで開始し、フローが接続する 3 つのデータベースごとに接続を作成します。
この例では、プロジェクト内のデータベース接続の名前は、
dashdb_conn、db2_conn1、およびdb2_conn2です。SPSS Modeler フロー内の データ資産 ノードを構成して、接続を使用します。
作成した 3 つの接続 (
dashdb_conn、db2_conn1、およびdb2_conn2) のいずれかを参照するようにフロー内の各ノードを構成し、各ノードに表を指定します。注: 接続の名前は、 ジョブ の実行時に変更できます。 フローで選択した表名は、 ジョブ の実行時に参照されます。 これらを上書きしたり変更したりすることはできません。SPSS モデルを Watson Machine Learning リポジトリに保存します。
モデルを保存するときに、入出力スキーマを指定すると役立ちます。 Watson Studio ユーザー・インターフェースでバッチ・ ジョブ を作成するときに、各入力を識別するプロセスが簡素化されます。 SPSS Modeler フローの データ資産 ノードで参照されている接続は、入力スキーマの ノード名 フィールドで指定する必要があります。 ノード名を確認するには、フロー内の「Data Asset import」ノードをダブルクリックして、そのプロパティを開きます:
注。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 ・バッチ・ジョブを作成します。
バッチ・ ジョブ は、 Watson Studio ユーザー・インターフェースから、または REST API を使用して作成できます。 スキーマがモデルとともに保存される場合、 Watson Studio ユーザー・インターフェースは、スキーマで指定された接続からの入力を受け入れることを簡単にします。 データ接続はすでに作成済みですので、ジョブを定義する際に「 Watson Studio 」のユーザーインターフェースに表示される各ノード名フィールドに対して、接続済みのデータアセットを選択することができます。
ジョブ のサブミット時に作成される接続の名前は、モデルの作成時に使用される名前とは異なる場合があります。 ただし、 ノード名 フィールドに割り当てる必要があります。
スキーマが指定されていない場合のモデルのジョブの作成
モデルの保存時にモデル・メタデータにスキーマが指定されていない場合は、 インポート・ノード名 を手動で入力する必要があります。 さらに、各接続の Watson Studio ユーザー・インターフェースで データ資産 を選択する必要があります。 SPSS Modeler フローの データ資産 インポート・ノードで参照されている接続は、インポート/エクスポート・データ参照の ノード名 フィールドで指定する必要があります。
ジョブ データ接続タイプは、data_assetまたはconnection_assetのいずれかにすることができます。 コード例については、以下を参照してください。
データアセットを使用したジョブの接続を指定する
このコード・サンプルは、 REST API および data_asset (エンドポイント:ジョブ /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": {}
}
}
接続 資産 を持つ ジョブ の接続の指定
このコード・サンプルは、 REST API および connection_asset (エンドポイント:ジョブ /v4/deployment_jobs)。
{
"deployment": {
"href": "/v4/deployments/<deploymentID>"
},
"scoring": {
"input_data_references": [
{
"id": "dashdb_conn",
"name": "dashdb_conn",
"type": "connection_asset",
"connection": {
"id": "<connection_id>"
},
"location": {},
"schema": {}
},
{
"id": "db2_conn1 ",
"name": "db2_conn1 ",
"type": "connection_asset",
"connection": {
"id": "<connection_id>"
},
"location": {},
"schema": {}
},
{
"id": "db2_conn2 ",
"name": "db2_conn2",
"type": "connection_asset",
"connection": {
"id": "<connection_id>"
},
"location": {},
"schema": {}
}],
"output_data_reference": {
"id": "db2_conn2"
"name": "db2_conn2",
"type": "connection_asset ",
"connection": {
"id": "<connection_id>"
},
"location": {},
"schema": {}
}
}