Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Configuration of In Memory streams is illustrated in this article with an example:

You have a file of record records with, on each line, two key values: KeyVal (e.g. "Key5") , and Node (e.g. "AA112"); and a count of events for that key combination, EventCount. A snippet of the files appears as file is shown below:

Code Block
103,"AA112","Key5"
115,"AA174","Key3"
126,"AA100","Key1"
145,"AA169","Key5"
126,"AA164","Key3"
158,"AA196","Key0"
117,"AA150","Key2"

...

The following configuration will result in the model:

To do create this model:

Create a file collector

  • Create file collector on the file as normal, with attributes:

    • EventCount

    • Node

    • EventCount

Create an In Memory Stream

Create an In Memory stream:

  • Stream Function = Calculate
  • Storage Type = In Memory
  • Linked to the file collector with a pipe "in"Attributes

 

Create the stream attributes

Create the stream attributes as below:

 

The stream attributes above are configured as:

KeyVal - a key value

...

 

Populated with the expression in.KeyVal to take

...

KeyVal from the file collector

To make

...

this attribute a key value the Key flag has been ticked on the stream attribute configuration form:

This means that a record will be created in the cache for each new value of KeyVal

...

Note - a key value

...

Configured similarly to KeyVal, with the flag Key ticked

This means that a record will be created in the cache of each new combination of KeyVal and Node

EventCountTotal - an accumulated total count

Populated with the expression: _cacheRecord.EventCountTotal+in.EventCount

The variable _cacheRecord is an Internal Variable: a record is created in the cache for each combination of key values, and _cacheRecord is the record for the current key. The record has a value for each attribute defined in the stream, e.g. EventCountTotal.

So the expression _cacheRecord.EventCountTotal+in.EventCount takes the current total count (_cacheRecord.EventCountTotal) then adds the new value read in from the file to it (+in.EventCount)

RecordCount -

...

a record count

Similarly to EventCountTotal, this attribute is building a total across records which share a key value combination

In this case we are generating a simple count of records from the file with the expression _cacheRecord.RecordCount+1

Store the results of the In Memory Stream

Create a stream to record the results of the In Memory stream:

...

this is a simple calculate stream which reads in the attributes of the In Memory stream, with attributes as below

 

Results

After running the final stream we get results like:

...