You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

Remark: Work in progess

Based on the DEBS 2015 Tutorial "Tutorial 1: Patterns for Realtime Streaming Analytics" by Srinath Perera, Sriskandarajah Suhothayan we will show how Odysseus can be used for the following streaming analytics pattern.

In the following we will show different processing scenarios. All scenarios are build with Procedural Query Language (PQL) and for many cases we use the Nexmark scenario (Getting Started with Nexmark). You should also have installed the nexmark source (Simple Query Processing).

Pattern 1: Preprocessing

Filtering some events

This is one of the most and simple operation. Filtering in Odysseus can be done with the Select operator.

See Examples for Select here.

Reshaping a stream by removing, renaming, or adding new attributes to events in the stream

This can be done in different ways. If you just want to remove Attributes, you can use the Project operator.

If you want to rename attributes, use the Rename operator.

If you want to add attributes, use the Map operator. With this operator it is also possible to remove and rename attributes. For just removing or renaming you should use one of the above operators, because they provide a much lower footprint.

Examples: Selection, Projection and Map

Splitting and combining attributes in a stream

Splitting and combining of attributes in a single stream can be done with the Map operator. This operator allows many different mathematical expressions over all attributes inside the input stream.

out = MAP({
			expressions = [
				['bid','renamed_bid'], /// Renaming of attribute
				/// Remark: The output only contains attributes/expressions that are given here, so removing an attribute is the by not using it here
				['substring()','firstname'],
				['substring()','lastname'],					
 

Transforming attributes

Tranformation can also be done with the Map operator.

Pattern 2: Alerts and Thresholds

This pattern detects a condition and generates alerts based on a condition. (e.g., Alarm on high temperature). These alerts can be based on a simple value or more complex conditions such as rate of increase etc.

Pattern 3: Simple Counting and Counting with Windows

Pattern 4: Joining Event Streams

Pattern 5: Data Correlation,Missing Events, and Erroneous Data

Pattern 6: Interacting with Databases

Pattern 7: Detecting Temporal Event Sequence Patterns

Pattern 8: Tracking

Pattern 9: Detecting Trends

Pattern 10: Running the Same Query in Batch and Realtime Pipelines

Pattern 11: Detecting and Switching to Detailed Analysis

Pattern 12: Using a Model

Pattern 13: Online Control

 

 

  • No labels