See how different cases of the JoinStream element migrate from AleriML to CCL.
Aleri Streaming Platform | Event Stream Processor |
---|---|
Supports inner joins only when joining insert-only streams. | No restrictions on inner joins. |
Does not support MANY-MANY. | Supports MANY-MANY. |
Supports specifying retention indirectly. Create a CopyStream with retention from the join source. Use this copy as the source for the join. | Supports specifying retention
directly on the join sources for memory stores only. Note: For log stores, create a retention on the
copy of the join source. Use this copy as the source for the
join.
|
Join streams run in a single thread only. | Multiple threads can be created depending on the complexity and type of the join. |
Does not support joining a stream (stateless store element) with a window (memory store or log store element). | Supports joining a stream (stateless store element) with a window. This join is performed when a record arrives on a stream, so that the stream acts as a trigger for the join. |
Does not support deducing primary keys. | The primary key can be deduced. |
Does not support specifying multiple operations in single statement. Each operation must be defined separately. | Supports specifying joins, filters, and aggregates in a single statement. The compiler breaks this into multiple threads. |
Aleri Streaming Platform does not validate whether the key's fields on the target are valid for a join. It silently ignores any joins that produce null values and bad inserts, updates, and deletes. The compiler in Event Stream Processor strictly enforces what can be selected as keys within a join. As a result, joins that do not follow the key rules in AleriML do not compile when converted to CCL. To compile, you must edit the resulting CCL to correct the key fields. For more details, see Key Field Rules in the CCL Programmers Guide.