...
A Siddhi application can be created from the source view or the design view of the WSO2 SP Stream Processor Studio.
Creating a Siddhi application in the source view
...
- Start WSO2 SP in the editor mode and access the Stream Processor Studio. For detailed instructions, see Starting Stream Processor Studio. The Stream Processor Studio opens as shown below.
- Click New to start defining a new Siddhi application. A new file opens as shown below.
- To open the design view, click Design View.
- To define the input stream into which the events to be processed via the Siddhi application should be received, drag and drop the stream icon (shown below) into the grid.
- Click on the settings icon on the stream component you added.
As a result, the Stream Configuration form appears below the grid as shown below.
Fill this form as follows to define a stream namedSweetProductionStream
with two attributes namedname
andamount
:- In the Name field, enter
SweetProductionStream.
In the Attributes table, enter two attributes as follows. You can click +Attribute to add a new row in the table to define a new attribute.
Attribute Name Attribute Type name
string
amount
double
- Click Submit to save the new stream definition. As a result, the stream is displayed on the grid with the
SweetProductionStream
label as shown below.
- In the Name field, enter
To define the output stream to which the processed events need to be directed, drag and drop the stream icon again. Place it after the
SweetProductionStream
stream. This stream should be namedProductionAlertStream
and have the following attributes.Attribute Name Attribute Type name
string
totalProduction
long
- To add the source from which events are received, drag and drop the source icon (shown below) into the grid.
As a result, the Source Configuration form appears below the grid. Enter values in this form as follows to configure a source via which events can be received.In the Name field, enter a name for the source. Then click Save to add the source
Info The name must always be the name of the transport via which the events are received. This must be entered in lower case (e.g.,
tcp
).- To configure the source by entering values for the rest of the parameters, the source must be connected to a stream. This tcp source needs to be connected to the
SweetProductionStream
input stream so that the events received via TCP can be directed there. To connect the source to the stream, draw an arrow from the source to the stream by dragging the cursor as demonstrated below.
Then open the Source Configuration form again by clicking the Settings icon of thetcp
source.
Click Properties. Based on the properties you want to configure for the source, select the relevant check box to select the required annotation type. In this example, let's select both Options and Map.
As a result, the Options and Map sections appear as shown below.- Enter
context='SweetProductionData'
in the Options field to indicate the context. You can add multiple options by clicking + Option to add more fields under Options. - For this example, assume that events are received in the
binary
format. To allow this, enterbinary
in the Name field under Type in the Map section.
- Enter
- Click Save to save the source configuration.
- To add a query that defines the execution logic, drag and drop the projection query icon (shown below) to the grid.
- The query uses the events in the
SweetProductionStream
input stream as inputs and directs the processed events (which are its output) to theProductionAlertStream
output stream. Therefore, create two connections as demonstrated below.
- To define the execution logic, move the cursor over the query in the grid, and click on the settings icon that appears.
This opens the Query Configuration form. Enter information in it as follows:
- To specify that the
SweetProductionStream
stream is the input stream from which the events to be processed are taken, enter it in the Stream/Trigger field in the Input section. To define how each attribute is processed, enter the following in the User Defined Attributes table.
Expression As Purpose name
name
When creating the output events, the name
attribute is output with the same attribute name.sum(amount)
amount
With each event that arrives in the SweetProductionStream
stream, the query calculates the sum for theamount
attribute, and outputs the result withamount
as the attribute value.- The output events generated need to be inserted into the
ProductionAlertStream
output stream. To achieve this, enter information in the Output section as follows:- In the Operation field, select Insert. This value is selected because the output events need to be inserted into the
ProductionAlertStream
output stream. - In the Into field, enter
ProductionAlertStream.
- In the For field, select all events.
- In the Operation field, select Insert. This value is selected because the output events need to be inserted into the
- Click Save to save the entries.
- To specify that the
- To add a sink to publish the output events that are directed to the
ProductionAlertStream
output stream, drag and drop the sink icon (shown below) into the grid.
As a result, the Sink Configuration form appears below the grid. Enter values in this form as follows to configure a sink via which events can be published.In the Name field, enter a name for the sink.
Info The name must always be the name of the transport via which the events are published. This must be entered in lower case (e.g.,
log
).Click Properties. Based on the properties you want to configure for the sink, select the relevant check box to select the required annotation type. In this example, assume that the events need to be published in the
json
format. Therefore, let's select the Map check box, and entertype=json
to specifyjson
as the mapping type.
- Connect the sink you added to the
ProductionAlertStream
output stream by dragging and dropping the cursor from theProductionAlertStream
output stream to the sink. - To allign the Siddhi components that you have added to the grid, click Edit and then click Auto-Align. As a result, all the components are horizontally aligned as shown below.
- Click Source View. The siddhi application is displayed as follows.
- Click File and then click Save as. The Save to Workspace dialog box appears. In the File Name field, enter
SweetProductionAnalysis
and click Save.
...