Details
-
Type: extRequest
-
Status: Closed
-
Priority: Blocker
-
Resolution: Done
-
Fix Version/s: 2021
-
Component/s: FIWARE-TECH-HELP
-
Labels:None
-
Sender Email:
-
HD-Chapter:Data
-
HD-Enabler:CEP
Description
Dear Denis,
I am glad to hear you are using the CEP in your product!
When you want to aggregate several events, you can use the Aggregate type
EPA. Below I copied the relevant parts from the User guide that describes
this EPA operator.
In the Aggregate EPA you can define computed variables. In your case you
would like to define a variable of type count, let's call it
countSimpleEvents and for each input event type, the value used for
computing this variable will be 1.
Then, in the condition of the EPA you will write countSimpleEvents >=10
(or any other threshold value). If you want the EPA to report only once,
then you can specify its definition.
Since you want the EPA to count separately for each 'SequenceID', you need
to define a Segmentation Context, lets call it SequenceIDSegContext and
add to its participant events the 'Simple Event' and as its expression
SimpleEvent.SequenceID. You need to add this context to the EPA
definition. This way the CEP will create a separate processing context for
each SequenceID value, and group together events of the same SequenceID.
If you want the initiator/terminator of the temporal processing context to
be group to the EPA events according to the SequenceID, then you need to
create composite context, and add the SequenceIDSegContext and your
temporal context to this segmentation context, and add this new composite
context to the EPA definition.
Derived event - you need to define an event that will be used as derived
event and add it an attribute of type integer and dimension 1, this
defines the attribute type to be an array of integers. Let call this
attribute SequenceIDArr
When you specify the derive event of the EPA, you should set the
expression of the SequenceIDArr attribute to SimpleEvent.SequenceID
Since in an aggregation operator, if you refer to an input event
attribute, you get an array containing the values of all the instances of
the same input event type.
(please note that the definition names and attribute names can not include
spaces)
------------------------------
Relevant parts from the user guide:
Operand Properties for Aggregation Operands:
In an aggregation operator, the user can declare computed variables. These
variables are computed during runtime and can be used in the EPA condition
and in the expressions assigned to derived events' attributes.
Each computed variable has the following parameters:
� Name ? a unique (within this EPA) variable name.
� Aggregation Type ? the type of aggregation to compute, which be
set to one of the following:
o Count ? counts the number of participant events.
o Sum ? summarizes the expression value for all the participant
events.
o Max ? maximum function over the expression value for all the
participant events.
o Min ? minimum function over the expression value for all the
participant events.
o Average ? average across the expression value for all the
participant events.
� Expression for every participant event ? The expression value is
used to calculate the computed variable according to the aggregation type.
Derived Events:
Note: In the aggregation operator, if we refer to an operand attribute, we
get an array containing the values of all the instances of the same
operand. There is no option to refer to a specific instance. Hence, the
type of such attribute must be an array.
-----------------
Hoped that helped,
Best regards,
Tali
Tali Yatzkar Haham
Event-based Middleware & Solutions
IBM Haifa Research Lab, Israel
tali@il.ibm.com 972-4-8296320
From: Denis Ermacora <ermacora@datamind.biz>
To: Tali Yatzkar-Haham/Haifa/IBM@IBMIL
Date: 15/04/2015 11:50 AM
Subject: CEP question
Dear Tali,
I'm writing you to ask some questions about the CEP Generic Enabler you
developed in the last years as a module of the FI.WARE project.
My team and I are developing a product for Ultrasound image enhancement
that internally makes use of the CEP component as a tomcat service to
dispatch and route events coming from different sources and applying
complex roles. The integration of CEP with the other components of the
system is pretty stable and works well, anyway , due to time contraints in
the development milestones , we defined some events and roles in an
awkward and probabily too complicated way. The main problem is that , both
in the documentation ( Install, User and Programmer Guides ) and in the
example projects in the CEP package ( DoSAttack and LiveDemo) we cannot
find a clear reference that explains how to handle events with members of
array type, and how to combine different instances of simple events into
one derived event.
More in detail which is the best way to represent a situation like the
following:
Defined an event 'Simple Event' with a string member 'Sample String' and
an int member 'Sequence ID', the system accepts a number of these events.
When a given condition is fulfilled, for example a predefined number of
Simple Events with the same Sequence ID are present in the system, we want
to derive from them a single event that embeds all the 'Sample String'
values of the collected simple events in a 'Sample Strings' member of type
array of strings.
Thanks for the answer and kind regards.
–
Denis Ermacora
Research and Development
DataMind S.r.l.
Parco Scientifico e Tecnologico
Via J. Linussio 51,
33100 Udine - Italy
Tel: 0432-629778
Fax: 0432-603887
ermacora@datamind.biz
C.F. & P.I. 02438900306
_______________________________________________
Fiware-tech-help mailing list
Fiware-tech-help@lists.fi-ware.org
https://lists.fi-ware.org/listinfo/fiware-tech-help
Activity
- All
- Comments
- History
- Activity
- Transitions