WATERMARK 句

適用対象:check marked yes Databricks SQL check marked yes Databricks Runtime 12.0 以降

select ステートメントで関係にウォーターマークを追加します。 WATERMARK 句は、ストリーム同士の結合と集計を含むステートフル ストリーミング データに対するクエリにのみ適用されます。

構文

from_item
{ table_name [ TABLESAMPLE clause ] [ watermark_clause ] [ table_alias ] |
  JOIN clause |
  [ LATERAL ] table_valued_function [ table_alias ] |
  VALUE clause |
  [ LATERAL ] ( query ) [ TABLESAMPLE clause ] [ watermark_clause ] [ table_alias ] }

watermark_clause
  WATERMARK named_expression DELAY OF interval

パラメーター

  • named_expression

    timestamp の値を提供する式。 式は、既存の列への参照、または既存の列に対する決定的変換のいずれかである必要があります。 式は、ウォーターマークの追跡に使用される timestamp 型の列を追加します。 追加された列はクエリに使用できます。

  • interval_clause

    ウォーターマークの遅延しきい値を定義する間隔リテラル。 1 か月未満の正の値である必要があります。

-- Creating a streaming table performing time window row count, with defining watermark from existing column
> CREATE OR REFRESH STREAMING TABLE window_agg_1
  AS SELECT window(ts, '10 seconds') as w, count(*) as CNT
  FROM
  STREAM stream_source WATERMARK ts DELAY OF INTERVAL 10 SECONDS AS stream
  GROUP BY window(ts, '10 seconds');

-- Creating a streaming table performing time window row count, with deriving a new timestamp column to define watermark
> CREATE OR REFRESH STREAMING TABLE window_agg_2
  AS SELECT window(ts, '10 seconds') as w, count(*) as CNT
  FROM
  STREAM stream_source WATERMARK to_timestamp(ts_str) AS ts DELAY OF INTERVAL 10 SECONDS AS stream
  GROUP BY window(ts, '10 seconds');