Versions Compared

Key

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

Streams are a key model component. They represent a structured store of data within PhixFlow receiving data from one or more components, processing it then storing it.

Stream Properties

Insert excerpt
_standard_settings
_standard_settings
nopaneltrue

The tab toolbar has the following additional buttons: 

Insert excerpt
_stream_sets_show
_stream_sets_show
nopaneltrue
Insert excerpt
_stream_views
_stream_views
nopaneltrue
Insert excerpt
_run_analysis
_run_analysis
nopaneltrue
.

...

Whether or not the stream is enabled to runIf ticked, this stream can be used
FieldDescription
NameThe name of the stream.
Enabled
Insert excerpt
_check_box_ticked
_check_box_ticked
nopaneltrue
 to include the steam during analysis runs.
Static Data

Insert excerpt
_check_box_ticked
_check_box_ticked
nopaneltrue
 to set the stream to hold static data.

This

Static data is

usually

reference

,

or "look up" data that is used as part of a stream calculation.

In technical terms, setting this means that the stream will only update itself when the user requests an analysis run on the stream directly, either ad-hoc through the user interface,

Updating a static stream

Static streams are not updated during an analysis run that is initiated on another stream in the model.

Instead, to update the data in a static stream you must run analysis directly on the stream

  • either via the model
  • or via a task plan.
When this stream is part of a larger analysis run, unlike all other types of stream the stream will not attempt to update itself.
  •  
PeriodThis is Select the time period of for the stream. This can be either a regular period, or variable. There are four possible settings:
  • Transactional: allows multiple users to run independent analysis tasks at the same time.
  • Daily: generate or collect data every day.
  • Monthly: generate or collect data every month.
  • Variable: generate or collect data since the more recent run of the stream to the current date.

When the period is first set to Transactional the UID stream attribute will be created As transactional streams need a UID attribute, PhixFlow automatically creates this stream attribute if it does not already exist.

Stream Type

Select the stream type. The type of function used to generate this stream. Possible stream types are:indicates the function that operates on the data.

  • Aggregate Stream
  • Calculate Stream
  • CalculateBySet Stream
  • Cartesian Stream
  • Merge Stream 
Supersede Items on Pipe

You can select Select a " loop " pipe - that is, a pipe linking pipe from the list of those available. 

A loop pipe links the stream back into to itself - in this field. If you do, new records will be compared to existing records, using the selected loop pipe, and if a repeated record is found, the old one will be marked as 'superseded'. It compares new data records to the existing data records. If there is a repeated record PhixFlow uses the new one in the stream and marks  the old one as superseded.

Audit Manual Changes

Only applies when period This check box is available when the Period is Transactional. If ticked, updates and deletes

Insert excerpt
_check_box_ticked
_check_box_ticked
nopaneltrue
 to update and delete initiated by stream actions (not those carried out by analysis runs) will automatically mark the existing record as superceded and create a new stream set. The new versions of the updated records will be placed in the new stream set. Inserts will simply create a new stream set, and add the inserted record into that stream set.

When Audit Manual Changes is first set, the attributes UpdateActionUpdatedByNameUpdatedByID and UpdatedTime will be created if they do not already exist. If you do not require these attributes, delete them.

UpdateAction must be set to the type of action, such as INSERT, UPDATE or DELETE. The other attributes will be populated if they exist on the stream:

  • UpdatedByName - the name of the user that performed the update, 
  • UpdatedByID - the internal id of the user that performed the update 
  • UpdatedTime - the date and time the update was made

...

  1. Right-click an attribute name to display the context menu.
  2. Select Edit the expression field.
  3. PhixFlow opens a simple text editor box
  4. Make changes to the attributes expression.
  5. Click  to save your changes.
FieldDescription
NameName Enter the name of the Attributeattribute.
TypeThis can be one of:Select the attribute type for the data.
  • String for text
  • Stream
  • Integer
  • Float
  • Stream
  • Date
  • Datetime
  • Graphic
  • TrueFalseBigstring for text
  • Integer for text
  • Float for text
  • Decimal for text
  • Date for text
  • Datetime for text
  • Graphic for text
  • TrueFalse for text
Length/ Precision/Significant FiguresFor a

This option is available when Type is String, Integer or Decimal.

Specify

  • the maximum
length
  • number of characters in a the
String. For
  • string.
  • The maximum number of digits in an Integer or Decimal
, the maximum number of digits.
ScaleOnly applies to Decimal types. The number of digits after the decimal point; must be less than the number of significant figures.
LocalOnly tick this box if this attribute is only required as part of the stream calculation, and it is not necessary to keep the result.
Order

The order of the attributes in the stream. This is important because the stream attribute expressions are evaluated in this order. If the results of an attribute expression, or a $ variable calculated during its calculation, are required in the expression of a second attribute - the second attribute must come after the first in the attribute list.

ExpressionThe expression used to generate the attribute value. This is written as a PhixFlow Expression. It must evaluate to a single value, of the type specified in the Type field.

...

FieldDescription
IndexedTick this option if this field should be indexed in the underlying database. An indexed field should be used to increase performance on very large streams in the following situations:-
  • When 1 or more output pipes from the stream uses the field to 'Filter' the stream.
  • When 1 or more output pipes from the stream uses the field in a 'Sort/Group' by action.
Filter conditions are
case-independent by default

If ticked, new filter conditions on this field are case-insensitive by default. The filter window → Ignore Case check box inherits this setting; see Filters on Data Views. For case-insensitive filters, there is no difference if the attribute is also indexed. 

Note
This option affects the behaviour of filters for PhixFlow instances running on Oracle or MariaDB (MySQL) databases.
For PhixFlow instances running on a SQL Server database, filters are always case-independent.



KeyFor in-memory streams, whether this field will be used as a key value. See How To: Summarise unsorted data with In Memory Streams.
Cache KeyIf a cache key is set, the value of this attribute persists throughout the stream calculation, rather than being created from scratch for each stream item as normal. This allows you to keep track of the calculation as it progresses. The cache key is an expression that is evaluated for each stream item, and of course it can use the existing value of the attribute, in other words, to value it had in the previous stream item processed in the stream calculation. This allows expressions to use the "persistent" attribute value on subsequent stream items. The expression provided in the Cache Key is evaluated for each stream item so that this "persistent" attribute can refer to multiple value keyed on the "Cache Key".

...

In the cases where a mixture of the full archive fields Keep for X Days, Keep for Y StreamSets' and the superseded archive fields Keep Superseded for X Days, Keep Superseded for Y StreamSets are populated, then the full archive values will be first applied and the resultant stream item records will be archived and deleted. Only then will the remaining stream sets use the Keep Superseded ... values to apply a further condition to archive and delete any remaining non qualifying superseded records.


Anchor
attributes
attributes
Attribute Types

If you load data without specifying a type what happens?

...

Which fields can have "null"?

String

Apply a string type to sequences of characters (i.e., letters, numerals, symbols and punctuation marks). By default string attribute types have a fixed length of how long?

do we need to tell users about any information-loss if data that is naturally a different type gets loaded as a string?

Anchor
Bigstring
Bigstring
Bigstring

...

The maximum bigstring size can be configured in System Configuration → System Tuning → Maximum Bigstring Size.

Integer

Apply an integer type to whole numbers (not a fractions or decimals) that can be positive, negative, or zero. 

What happens if you attempt to load a float or decimal number into an integer attribute?

...