複数のデータ・ソースを使用した 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 複数の入力を持つフロー

これらの手順では、接続の作成方法とテーブルの特定方法について説明します。

  1. プロジェクト内に接続を作成します。

    SPSS Modeler フローを実行するには、プロジェクトで開始し、フローが接続する 3 つのデータベースごとに接続を作成します。

    この例では、プロジェクト内のデータベース接続の名前は、 dashdb_conndb2_conn1 、および db2_conn2 です。

  2. SPSS Modeler フロー内の データ資産 ノードを構成して、接続を使用します。

    作成した 3 つの接続 (dashdb_conndb2_conn1 、および db2_conn2) のいずれかを参照するようにフロー内の各ノードを構成し、各ノードに表を指定します。

    注: 接続の名前は、 ジョブ の実行時に変更できます。 フローで選択した表名は、 ジョブ の実行時に参照されます。 これらを上書きしたり変更したりすることはできません。
  3. 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": [] }]
                 }
         }
    
    注: これらの接続における各フィールドの数は問題ではありません。 それらは検証もされておらず、使用もされていません。 重要なのは、使用される接続の数です。
  4. SPSS モデルのバッチデプロイメントを作成します。

    SPSS モデルの場合、バッチ・ デプロイメント・ジョブ の作成プロセスは同じです。 前のステップで作成したモデルを使用して、 デプロイメント を作成できます。

  5. 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": {}
                                    }
           }