Class BoundedWindow

java.lang.Object
org.apache.beam.sdk.transforms.windowing.BoundedWindow
Direct Known Subclasses:
EncodedBoundedWindow, GlobalWindow, IntervalWindow

public abstract class BoundedWindow extends Object
A BoundedWindow represents window information assigned to data elements.

It has one method maxTimestamp() to define an upper bound (inclusive) for element timestamps. A WindowFn must assign an element only to windows where maxTimestamp() is greater than or equal to the element timestamp. When the watermark passes the maximum timestamp, all data for a window is estimated to be received.

A window does not need to have a lower bound. Only the upper bound is mandatory because it governs management of triggering and discarding of the window.

Windows must also implement Object.equals(java.lang.Object) and Object.hashCode() such that windows that are logically equal will be treated as equal by equals() and hashCode().

  • Field Details

    • TIMESTAMP_MIN_VALUE

      public static final Instant TIMESTAMP_MIN_VALUE
      The minimum value for any Beam timestamp. Often referred to as "-infinity".

      This value and TIMESTAMP_MAX_VALUE are chosen so that their microseconds-since-epoch can be safely represented with a long.

    • TIMESTAMP_MAX_VALUE

      public static final Instant TIMESTAMP_MAX_VALUE
      The maximum value for any Beam timestamp. Often referred to as "+infinity".

      This value and TIMESTAMP_MIN_VALUE are chosen so that their microseconds-since-epoch can be safely represented with a long.

  • Constructor Details

    • BoundedWindow

      public BoundedWindow()
  • Method Details

    • formatTimestamp

      public static String formatTimestamp(Instant timestamp)
      Formats a Instant timestamp with additional Beam-specific metadata, such as indicating whether the timestamp is the end of the global window or one of the distinguished values TIMESTAMP_MIN_VALUE or TIMESTAMP_MIN_VALUE.
    • maxTimestamp

      public abstract Instant maxTimestamp()
      Returns the inclusive upper bound of timestamps for values in this window.
    • validateTimestampBounds

      public static void validateTimestampBounds(Instant timestamp)
      Validates that a given timestamp is within min and max bounds.
      Parameters:
      timestamp - timestamp to validate