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)

注意: 如果查詢中沒有指定視窗化函數,則 SQL 查詢不會變更輸入 PCollections 的視窗化策略。如果在查詢中指定了視窗化函數,則 PCollection 的視窗化函數會相應更新,但觸發保持不變。