Beam SQL拡張機能:ウィンドウ処理とトリガー

Beamのウィンドウ処理セマンティクスは2つの方法で使用できます。

トリガーは、入力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)

注記:クエリにウィンドウ処理関数を指定しない場合、SQLクエリによって入力PCollectionsのウィンドウ処理戦略は変更されません。クエリにウィンドウ処理関数を指定した場合、PCollectionのウィンドウ処理関数はそれに応じて更新されますが、トリガーは変更されません。