Show TOC

Publish to Multiple Streams or WindowsLocate this document in the navigation structure

Use this REST request to publish data to multiple streams or windows on the same ESP project and ESP Server. This REST request is a POST type request.

Header
http://serverDetails/espws/restservice/stream/bulk?action=insert&workspace=<workspaceName>&project=<projectName>
Body
Table 1: Connection Details
Element Description
defaultCluster

(Optional) Specify a default cluster for the REST server to which you are connecting. This element contains the credentialselement below. If you specify this element, the workspace name specified in the URI is ignored.

Specify either this element or the connectionDetails element. If you specify both elements, you will receive an error.

credentials (Optional) Specify a value based on the type of authentication the ESP Server is using.
  • for username and password authentication, specify username:password values.
  • for RSA authentication, specify keystore:user:password values. For the keystore value, only specify the keystore file name. Do not specify a file path. If you are using Windows, surround the file name in single quotation marks.
  • for Kerberos authentication, specify user:service:cache values. For the cache value, only specify the Kerberos cache file name. Do not specify a file path. If you are using Windows, surround the file name in single quotation marks.
connectionDetails

(Required only if defaultCluster is not specified) Element containing clusterName, port, and authentication details below.

Specify either this element or the defaultCluster element. If you specify both elements, you will receive an error.

clusterName

Type: string

(Required if no default is specified) The name of the cluster on which the project that you wish to update is running.

port

Type: integer

(Required) Specify the port on which the cluster is running.

authentication

(Required) Element containing authentication details (type, data, and sslEnabled).

type

Type: string

(Required) Specify the type of authentication the ESP Server is using. Valid values are user, RSA, and Kerberos.

data

Type: string

(Required) Specify a value based on the type of authentication you specified in the type element. For example,
  • for user, specify username:password values
  • for rsa, specify keystore:user:password values. For the keystore value, enter the keystore file name. Do not specify a file path. If you are using Windows, surround the file name in single quotation marks.
  • for kerberos, specify user:service:cache values. For the cache value, enter the Kerberos cache file name. Do not specify a file path. If you are using Windows, surround the file name in single quotation marks.
sslEnabled

Type: boolean

(Required) Specify whether SSL is enabled on the cluster on which the project is running. The default value is false.

Table 2: Content Elements
   
content

(Required) Element containing content details for the JSON request. You can list elements for one or more streams or windows.

<stream/windowname> (Required) Specify the name of the stream or window to which you wish to publish data.
<primaryKey>

(Required for windows only) Specify the window's PRIMARY KEY and a unique value. The format is "<primarykeyname>":<uniquevalue>. For example, "pKey":"1". If you do not specify a unique value, the request returns an error unless you are performing an update.

The PRIMARY KEY is specified in the CCL of the project.

<columnname>

(Optional) Specify a column to which you wish to publish data. The format is "<columnname>":"<value>". For example, "amount":"10".

If a column is specified in the request content but does not exist in the stream or window schema, the column is ignored. If you do not specify existing column schema in the request content, these columns are filled with a NULL value by default.

Example
Header
http://localhost:9091/espws/restservice/stream/bulk?action=insert&workspace=default&project=my_project
Body
{ 
 "defaultCluster" : { "credentials" : "<username>:<password>" }
}
            "amount": "10"
            }
        },
        {
            "event2": {
                "id": "10",
                "sum": "6.00",
                "avg": "17"
            }
        }
    ]
}
or
{
    "connectionDetails:": {
        "clusterName": "iltlvl231",
        "port": "19011",
        "authentication": {
            "type": "user",
            "data": "lroot:<password>",
            "sslEnabled": "true"
        }
    },
    "content": [
        {
            "event1": {
                "id": "10",
                "description": "buy_item",
                "amount": "10"
            }
        },
        {
            "event2": {
                "id": "10",
                "sum": "6.00",
                "avg": "17"
            }
        }
    ]
}