Delen via


WATERMARK-component

Van toepassing op: vinkje als ja aan Databricks SQL vinkje als ja aan Databricks Runtime 12.0 en hoger

Hiermee voegt u een watermerk toe aan een relatie in een select-instructie. De WATERMARK component is alleen van toepassing op query's op stateful streaminggegevens, waaronder stream-stream-joins en aggregatie.

Syntaxis

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

Parameters

  • named_expression

    Een expressie die een waarde van het type timestampbiedt. De expressie moet een verwijzing naar de bestaande kolom of een deterministische transformatie zijn op basis van bestaande kolommen. Met de expressie wordt een kolom met het tijdstempeltype toegevoegd die wordt gebruikt om het watermerk bij te houden. De toegevoegde kolom is beschikbaar om een query uit te voeren.

  • interval_clause

    Een letterlijk interval waarmee de vertragingsdrempel van het watermerk wordt gedefinieerd. Moet een positieve waarde kleiner dan een maand zijn.

Voorbeelden

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