Beam SQL 扩展:窗口化和触发

您可以通过两种方式使用 Beam 的窗口化语义

触发只能通过在输入 `PCollections` 上设置来使用;没有用于指定触发的 SQL 扩展。

本节介绍使用 SQL 扩展直接应用窗口化的内容。

Beam SQL 支持在 `GROUP BY` 子句中指定的窗口化函数。在这种情况下,需要 `TIMESTAMP` 字段。它用作行的事件时间戳。

支持的窗口化函数

    SELECT f_int, COUNT(*)
    FROM PCOLLECTION
    GROUP BY
      f_int,
      TUMBLE(f_timestamp, INTERVAL '1' HOUR)
    SELECT f_int, COUNT(*)
    FROM PCOLLECTION
    GROUP BY
      f_int,
      HOP(f_timestamp, INTERVAL '30' MINUTE, INTERVAL '1' HOUR)
    SELECT f_int, COUNT(*)
    FROM PCOLLECTION
    GROUP BY
      f_int,
      SESSION(f_timestamp, INTERVAL '5' MINUTE)

注意:当查询中未指定窗口化函数时,输入 `PCollections` 的窗口化策略不会被 SQL 查询更改。如果在查询中指定了窗口化函数,则 `PCollection` 的窗口化函数将相应更新,但触发器保持不变。