Functions (Azure Stream Analytics)

 

Updated: February 8, 2016

A (User-Defined) Function provides an extensible way for a Streaming Job to transform input data to output data using a facility that is not completely described by the Transformation query. Currently Azure Machine Learning Request-Response Service (RRS) is the supported UDF framework.

Request

The Function property is a properties bag needed to completely specify the information needed to make use of an Azure Machine Learning function.

{
  "type": <function type>,
  "properties": {
    .
    .
    .
  }
}

Type: Scalar

Properties

Azure Machine Learning Request-Response Service (RRS) Endpoint

A transformation query can call out to an operationalized Azure ML Request-Response Service (RRS) endpoint to perform scoring against a trained model. The properties in the property bag are just those needed to call the operationalized RRS endpoint.

Example payload to create an Azure Machine Learning scalar function

{
  "name": "scoreTweet",
  "properties": {
    "type": "Scalar",
    "properties": {
      "inputs": [
        {
          "dataType": "nvarchar(max)",
          "isConfigurationParameter": false
        }
      ],
      "output": {
        "dataType": "nvarchar(max)"
      },
      "binding": {
        "type": "Microsoft.MachineLearning/WebService",
        "properties": {
          "endpoint": "https://ussouthcentral.services.azureml.net/workspaces/f80d5d7a77fa4a46bf2a30c63c078dca/services/b7be5e40fd194258896fb602c1858eaf/execute",
          "apiKey": "apiKey",
          "inputs": {
            "name": "input1",
            "columnNames": [
              {
                "name": "tweet",
                "dataType": "String",
                "mapTo": 0
              }
            ]
          },
          "outputs": [
            {
              "name": "Sentiment",
              "dataType": "String"
            }
          ],
          "batchSize": 100
        }
      }
    }
  }
}

Property

Description

name

Name of the UDF

Type

Scalar

inputs

An array of inputs, describing the parameters of the UDF.

Inputs.dataType

Data type of the UDF parameter. List of valid Azure Stream Analytics data types are described at Azure Stream Analytics data types.

Input.isConfigurationParameter

Optional. True if this parameter is expected to be a constant. Default is false.

output

Described output of the UDF.

Output.dataType

Data type of UDF output. List of valid Azure Stream Analytics data types are described at Azure Stream Analytics data types.

Binding

Described the physical binding for the UDF. For example, in Azure Machine Learning RRS's this described the endpoint.

Binding.Type

Type of the binding. Currently Microsoft.MachineLearning/WebService is the only valid binding at this time.

Binding.Properties

Properties for the binding. Values are dependent on the type of binding.

Binding properties for Microsoft.MachineLearning/WebService.

Property

Description

Endpoint

Request-Response execute endpoint of Azure Machine Learning Webservice. This endpoint is available from the Request-Response Endpoint documentation page in the Azure Management portal.

apiKey

API key used to authenticate with Request-Response endpoint. This is available from the Azure Management portal.

batchSize

Optional. Value between 10 and 1000 describing maximum number of rows for every Azure Machine Learning RRS execute request. Default is 10.

Inputs

Describes the set of inputs for RRS enpoint.

Inputs.name

Name of the input. This is the name provided while authoring the endpoint. The name is available from Azure Machine Learning Studio or from the RRS endpoint documentation page.

Input.ColumnNames

Array describing inputs to Azure Machine Learning endpoint

Element properties of Input.ColumnNames

Property

Description

Name

Name of the input column.

dataType

Azure Machine Learning data type. List of valid types are available at Azure Machine Learning data types. These are also described in RRS endpoint documentation.

MapTo

Zero based index of the UDF parameter this input maps to.

Outputs

Array describing outputs from an Azure Machine Learning RRS endpoint execution.

Element properties of Outputs

Property

Description

Name

Name of the output column.

dataType

Azure Machine Learning data type. List of valid types are available at Azure Machine Learning data types. These are also described in RRS endpoint documentation.