Klausa WATERMARK

Berlaku untuk:check marked yes Databricks SQL check marked yes Databricks Runtime 12.0 ke atas

Menambahkan cap air ke relasi dalam pernyataan pilih. Klausa WATERMARK hanya berlaku untuk kueri pada data streaming stateful, yang mencakup gabungan stream-stream dan agregasi.

Sintaks

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

Parameter

  • named_expression

    Ekspresi yang menyediakan nilai jenis timestamp. Ekspresi harus berupa referensi ke kolom yang ada, atau transformasi deterministik terhadap kolom yang ada. Ekspresi menambahkan kolom jenis tanda waktu yang digunakan untuk melacak marka air. Kolom yang ditambahkan tersedia untuk kueri.

  • interval_clause

    Interval literal yang menentukan ambang penundaan marka air. Harus berupa nilai positif kurang dari sebulan.

Contoh

-- 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');