Transforming Data using a Projection Processor
About This Task
It is common to do transformations on the events in the stream. In our case, before we alert on the speeding driver, we want to convert the average speed we calculated in the aggregate processor into a integer from a double so it is easier to display in the alert. The projection processor allows you to do these transformations.
Steps
Drag the Projection processor onto the canvas and connect to it to the IsDriverSpeeding Rule processor:
When you double click on the projection processor, you will see a number of out of the box functions however a Round function does not exist.
Adding UDFs (User Defined Functions) is easy to do within SAM. Follow the below steps to add Round UDF function to SAM.
From the left-hand menu, click Configuration, then Application Resources.
Select the UDF tab and click the + sign to create the ROUND UDF. The
jar
for this UDF can be downloaded from here. The simple java class used to implement this Round function using the SAM SDK can be found here. Unzip the downloaded artifact and use the jar called sam-custom-udf-0.0.5.jar. Configure the UDF with the following values:After uploading the UDF, you should see the new Round UDF created.
After creating the UDF, go back to your Application and double click on the on the Projection Processor you added to the canvas and you see ROUND in the FUNCTION drop down list. Configure the ROUND function as the following: