flink-python/docs/reference/pyflink.table/window.rst
.. ################################################################################ Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
################################################################################
Tumbling windows are consecutive, non-overlapping windows of a specified fixed length. For example, a tumbling window of 5 minutes size groups elements in 5 minutes intervals.
Example: ::
>>> from pyflink.table.expressions import col, lit
>>> Tumble.over(lit(10).minutes) \
... .on(col("rowtime")) \
... .alias("w")
.. currentmodule:: pyflink.table.window
.. autosummary:: :toctree: api/
Tumble.over
TumbleWithSize.on
TumbleWithSizeOnTime.alias
Sliding windows have a fixed size and slide by a specified slide interval. If the slide interval is smaller than the window size, sliding windows are overlapping. Thus, an element can be assigned to multiple windows.
For example, a sliding window of size 15 minutes with 5 minutes sliding interval groups elements of 15 minutes and evaluates every five minutes. Each element is contained in three consecutive window evaluations.
Example: ::
>>> from pyflink.table.expressions import col, lit
>>> Slide.over(lit(10).minutes) \
... .every(lit(5).minutes) \
... .on(col("rowtime")) \
... .alias("w")
.. currentmodule:: pyflink.table.window
.. autosummary:: :toctree: api/
Slide.over
SlideWithSize.every
SlideWithSizeAndSlide.on
SlideWithSizeAndSlideOnTime.alias
The boundary of session windows are defined by intervals of inactivity, i.e., a session window is closes if no event appears for a defined gap period.
Example: ::
>>> from pyflink.table.expressions import col, lit
>>> Session.with_gap(lit(10).minutes) \\
... .on(col("rowtime")) \\
... .alias("w")
.. currentmodule:: pyflink.table.window
.. autosummary:: :toctree: api/
Session.with_gap
SessionWithGap.on
SessionWithGapOnTime.alias
Similar to SQL, over window aggregates compute an aggregate for each input row over a range of its neighboring rows.
Example: ::
>>> from pyflink.table.expressions import col, UNBOUNDED_RANGE
>>> Over.partition_by(col("a")) \
... .order_by(col("rowtime")) \
... .preceding(UNBOUNDED_RANGE) \
... .alias("w")
.. currentmodule:: pyflink.table.window
.. autosummary:: :toctree: api/
Over.order_by
Over.partition_by
OverWindowPartitionedOrdered.alias
OverWindowPartitionedOrdered.preceding
OverWindowPartitionedOrderedPreceding.alias
OverWindowPartitionedOrderedPreceding.following
OverWindowPartitioned.order_by