Class UpdateStateByKeyProcessor<K,V,R>
java.lang.Object
org.apache.storm.streams.processors.UpdateStateByKeyProcessor<K,V,R>
- All Implemented Interfaces:
Serializable
,Processor<Pair<K,
,V>> StatefulProcessor<K,
R>
- See Also:
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected void
Execute some operation on the input value.void
Executes some operations on the input and possibly emits some results.protected void
finish()
This is triggered to signal the end of the current batch of values.void
init
(ProcessorContext context) Initializes the processor.void
initState
(KeyValueState<K, R> keyValueState) Initialize the state of the processor with the givenKeyValueState
.protected final <R> void
mayBeForwardAggUpdate
(Supplier<R> result) Forwards the result update to downstream processors.void
Punctuation marks end of a batch which can be used to compute and pass the results of one stage in the pipeline to the next.
-
Field Details
-
context
-
-
Constructor Details
-
UpdateStateByKeyProcessor
-
-
Method Details
-
initState
Description copied from interface:StatefulProcessor
Initialize the state of the processor with the givenKeyValueState
.- Specified by:
initState
in interfaceStatefulProcessor<K,
V> - Parameters:
keyValueState
- the key-value state
-
execute
Execute some operation on the input value. Sub classes can override this when then don't care about the source stream from where the input is received.- Parameters:
input
- the input
-
init
Initializes the processor. This is typically invoked from the underlying storm bolt's prepare method. -
execute
Executes some operations on the input and possibly emits some results. Processors that do not care about the source stream should overrideBaseProcessor.execute(Object)
instead. -
punctuate
Punctuation marks end of a batch which can be used to compute and pass the results of one stage in the pipeline to the next. For e.g. emit the results of an aggregation. -
finish
protected void finish()This is triggered to signal the end of the current batch of values. Sub classes can override this to emit the result of a batch of values, for e.g. to emit the result of an aggregate or join operation on a batch of values. If a processor does per-value operation like filter, map etc, they can choose to ignore this. -
mayBeForwardAggUpdate
Forwards the result update to downstream processors. Processors that operate on a batch of tuples, like aggregation, join etc can use this to emit the partial results on each input if they are operating in non-windowed mode.- Type Parameters:
R
- the result type- Parameters:
result
- the result function
-