предложение WATERMARK
Область применения: Databricks SQL
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
Параметры
-
Выражение, предоставляющее значение типа
timestamp
. Выражение должно быть ссылкой на существующий столбец или детерминированное преобразование для существующих столбцов. Выражение добавляет столбец типа метки времени, который используется для отслеживания водяного знака. Добавленный столбец доступен для запроса. -
Литерал интервала, который устанавливает порог задержки водяного знака. Должно быть положительным значением менее месяца.
Примеры
-- 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');