org.apache.storm.topology.base

## Class BaseWindowedBolt

- java.lang.Object
- - org.apache.storm.topology.base.BaseWindowedBolt

- All Implemented Interfaces:
    Serializable, IComponent, IWindowedBolt
  Direct Known Subclasses:
    BaseStatefulWindowedBolt, JoinBolt, SlidingWindowSumBolt, TestWindowBolt, TimeDataVerificationBolt, VerificationBolt

      public abstract class BaseWindowedBolt
      extends Object
      implements IWindowedBolt

  See Also:
    Serialized Form

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `BaseWindowedBolt.Count` Holds a count value for count based windows and sliding intervals.
    `static class` | `BaseWindowedBolt.Duration` Holds a Time duration for time based windows and sliding intervals.

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected TimestampExtractor` | `timestampExtractor`
    `protected Map<String,Object>` | `windowConfiguration`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `BaseWindowedBolt()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `cleanup()`
    `void` | `declareOutputFields(OutputFieldsDeclarer declarer)` Declare the output schema for all the streams of this topology.
    `Map<String,Object>` | `getComponentConfiguration()` Declare configuration specific to this component.
    `TimestampExtractor` | `getTimestampExtractor()` Return a `TimestampExtractor` for extracting timestamps from a tuple for event time based processing, or null for processing time.
    `void` | `prepare(Map<String,Object> topoConf, TopologyContext context, OutputCollector collector)` This is similar to the `IBolt.prepare(Map, TopologyContext, OutputCollector)` except that while emitting, the tuples are automatically anchored to the tuples in the inputWindow.
    `BaseWindowedBolt` | `withLag(BaseWindowedBolt.Duration duration)` Specify the maximum time lag of the tuple timestamp in milliseconds.
    `BaseWindowedBolt` | `withLateTupleStream(String streamId)` Specify a stream id on which late tuples are going to be emitted.
    `BaseWindowedBolt` | `withTimestampExtractor(TimestampExtractor timestampExtractor)` Specify the timestamp extractor implementation.
    `BaseWindowedBolt` | `withTimestampField(String fieldName)` Specify a field in the tuple that represents the timestamp as a long value.
    `BaseWindowedBolt` | `withTumblingWindow(BaseWindowedBolt.Count count)` A count based tumbling window.
    `BaseWindowedBolt` | `withTumblingWindow(BaseWindowedBolt.Duration duration)` A time duration based tumbling window.
    `BaseWindowedBolt` | `withWatermarkInterval(BaseWindowedBolt.Duration interval)` Specify the watermark event generation interval.
    `BaseWindowedBolt` | `withWindow(BaseWindowedBolt.Count windowLength)` A tuple count based window that slides with every incoming tuple.
    `BaseWindowedBolt` | `withWindow(BaseWindowedBolt.Count windowLength, BaseWindowedBolt.Count slidingInterval)` Tuple count based sliding window configuration.
    `BaseWindowedBolt` | `withWindow(BaseWindowedBolt.Count windowLength, BaseWindowedBolt.Duration slidingInterval)` Tuple count and time duration based sliding window configuration.
    `BaseWindowedBolt` | `withWindow(BaseWindowedBolt.Duration windowLength)` A time duration based window that slides with every incoming tuple.
    `BaseWindowedBolt` | `withWindow(BaseWindowedBolt.Duration windowLength, BaseWindowedBolt.Count slidingInterval)` Time duration and count based sliding window configuration.
    `BaseWindowedBolt` | `withWindow(BaseWindowedBolt.Duration windowLength, BaseWindowedBolt.Duration slidingInterval)` Time duration based sliding window configuration.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface org.apache.storm.topology.IWindowedBolt

      `execute`

- - ### Field Detail

    - #### windowConfiguration

          protected final transient Map<String,Object> windowConfiguration

    - #### timestampExtractor

          protected TimestampExtractor timestampExtractor

  - ### Constructor Detail

    - #### BaseWindowedBolt

          protected BaseWindowedBolt()

  - ### Method Detail

    - #### withWindow

          public BaseWindowedBolt withWindow(BaseWindowedBolt.Count windowLength,
                                             BaseWindowedBolt.Count slidingInterval)

      Tuple count based sliding window configuration.

      Parameters:
        `windowLength` - the number of tuples in the window
        `slidingInterval` - the number of tuples after which the window slides

    - #### withWindow

          public BaseWindowedBolt withWindow(BaseWindowedBolt.Count windowLength,
                                             BaseWindowedBolt.Duration slidingInterval)

      Tuple count and time duration based sliding window configuration.

      Parameters:
        `windowLength` - the number of tuples in the window
        `slidingInterval` - the time duration after which the window slides

    - #### withWindow

          public BaseWindowedBolt withWindow(BaseWindowedBolt.Duration windowLength,
                                             BaseWindowedBolt.Count slidingInterval)

      Time duration and count based sliding window configuration.

      Parameters:
        `windowLength` - the time duration of the window
        `slidingInterval` - the number of tuples after which the window slides

    - #### withWindow

          public BaseWindowedBolt withWindow(BaseWindowedBolt.Duration windowLength,
                                             BaseWindowedBolt.Duration slidingInterval)

      Time duration based sliding window configuration.

      Parameters:
        `windowLength` - the time duration of the window
        `slidingInterval` - the time duration after which the window slides

    - #### withWindow

          public BaseWindowedBolt withWindow(BaseWindowedBolt.Count windowLength)

      A tuple count based window that slides with every incoming tuple.

      Parameters:
        `windowLength` - the number of tuples in the window

    - #### withWindow

          public BaseWindowedBolt withWindow(BaseWindowedBolt.Duration windowLength)

      A time duration based window that slides with every incoming tuple.

      Parameters:
        `windowLength` - the time duration of the window

    - #### withTumblingWindow

          public BaseWindowedBolt withTumblingWindow(BaseWindowedBolt.Count count)

      A count based tumbling window.

      Parameters:
        `count` - the number of tuples after which the window tumbles

    - #### withTumblingWindow

          public BaseWindowedBolt withTumblingWindow(BaseWindowedBolt.Duration duration)

      A time duration based tumbling window.

      Parameters:
        `duration` - the time duration after which the window tumbles

    - #### withTimestampField

          public BaseWindowedBolt withTimestampField(String fieldName)

      Specify a field in the tuple that represents the timestamp as a long value. If this field is not present in the incoming tuple, an `IllegalArgumentException` will be thrown. The field MUST contain a timestamp in milliseconds

      Parameters:
        `fieldName` - the name of the field that contains the timestamp

    - #### withTimestampExtractor

          public BaseWindowedBolt withTimestampExtractor(TimestampExtractor timestampExtractor)

      Specify the timestamp extractor implementation.

      Parameters:
        `timestampExtractor` - the `TimestampExtractor` implementation

    - #### getTimestampExtractor

          public TimestampExtractor getTimestampExtractor()

      Description copied from interface: `IWindowedBolt`

      Return a `TimestampExtractor` for extracting timestamps from a tuple for event time based processing, or null for processing time.

      Specified by:
        `getTimestampExtractor` in interface `IWindowedBolt`
      Returns:
        the timestamp extractor

    - #### withLateTupleStream

          public BaseWindowedBolt withLateTupleStream(String streamId)

      Specify a stream id on which late tuples are going to be emitted. They are going to be accessible via the `WindowedBoltExecutor.LATE_TUPLE_FIELD` field. It must be defined on a per-component basis, and in conjunction with the `withTimestampField(java.lang.String)`, otherwise `IllegalArgumentException` will be thrown.

      Parameters:
        `streamId` - the name of the stream used to emit late tuples on

    - #### withLag

          public BaseWindowedBolt withLag(BaseWindowedBolt.Duration duration)

      Specify the maximum time lag of the tuple timestamp in milliseconds. It means that the tuple timestamps cannot be out of order by more than this amount.

      Parameters:
        `duration` - the max lag duration

    - #### withWatermarkInterval

          public BaseWindowedBolt withWatermarkInterval(BaseWindowedBolt.Duration interval)

      Specify the watermark event generation interval. For tuple based timestamps, watermark events are used to track the progress of time

      Parameters:
        `interval` - the interval at which watermark events are generated

    - #### prepare

          public void prepare(Map<String,Object> topoConf,
                              TopologyContext context,
                              OutputCollector collector)

      Description copied from interface: `IWindowedBolt`

      This is similar to the `IBolt.prepare(Map, TopologyContext, OutputCollector)` except that while emitting, the tuples are automatically anchored to the tuples in the inputWindow.

      Specified by:
        `prepare` in interface `IWindowedBolt`

    - #### cleanup

          public void cleanup()

      Specified by:
        `cleanup` in interface `IWindowedBolt`

    - #### declareOutputFields

          public void declareOutputFields(OutputFieldsDeclarer declarer)

      Description copied from interface: `IComponent`

      Declare the output schema for all the streams of this topology.

      Specified by:
        `declareOutputFields` in interface `IComponent`
      Parameters:
        `declarer` - this is used to declare output stream ids, output fields, and whether or not each output stream is a direct stream

    - #### getComponentConfiguration

          public Map<String,Object> getComponentConfiguration()

      Description copied from interface: `IComponent`

      Declare configuration specific to this component. Only a subset of the “topology.*” configs can be overridden. The component configuration can be further overridden when constructing the topology using `TopologyBuilder`

      Specified by:
        `getComponentConfiguration` in interface `IComponent`

Copyright © 2021 The Apache Software Foundation. All rights reserved.