KStreamAggregateProcessor¶
KStreamAggregateProcessor is an AbstractProcessor of KStreamAggregate.
Creating Instance¶
KStreamAggregateProcessor takes no arguments to be created.
KStreamAggregateProcessor is created when:
KStreamAggregateis requested for a Processor
KStreamAggregate¶
KStreamAggregateProcessor is a private class of KStreamAggregate and so have access to the internal properties (e.g. state name) thereof.
TimestampedKeyValueStore¶
KStreamAggregateProcessor looks up a TimestampedKeyValueStore by the name given when the owning KStreamAggregate was created.
The TimestampedKeyValueStore is used for the following:
- Create a TimestampedTupleForwarder (in init)
- Process a key-value record (using a ValueAndTimestamp)
TimestampedTupleForwarder¶
KStreamAggregateProcessor creates a new TimestampedTupleForwarder when created.
The TimestampedTupleForwarder is used when processing a record.
Initializing¶
void init(
ProcessorContext context)
init...FIXME
init is part of the AbstractProcessor abstraction.
Processing Record¶
void process(
K key,
V value)
process requests the TimestampedKeyValueStore for the value for the input key (that gives a ValueAndTimestamp if found).
With no previous value found, process requests the parent's Initializer for the initial value and the ProcessorContext for the timestamp.
process requests the parent's Aggregator for a new aggregate for the input key and value (and the previous or newly-created aggregation).
process creates a new ValueAndTimestamp with the new aggregate and the timestamp and requests the TimestampedKeyValueStore to store it (for the key).
In the end, process requests the TimestampedTupleForwarder to maybeForward.
process is part of the AbstractProcessor abstraction.