Partilhar via


Cláusula MARCA D'ÁGUA

Aplica-se a: Marque Sim Databricks SQL Marque Sim Databricks Runtime 12.0 e superior

Adiciona uma marca d'água a uma relação em uma instrução select. A WATERMARK cláusula só se aplica a consultas em dados de streaming com monitoração de estado, que incluem junções e agregação de fluxo de fluxo.

Sintaxe

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

Parâmetros

  • named_expression

    Uma expressão que fornece um valor do tipo timestamp. A expressão deve ser uma referência à coluna existente ou uma transformação determinística em relação à(s) coluna(s) existente(s). A expressão adiciona uma coluna do tipo carimbo de data/hora que é usada para rastrear a marca d'água. A coluna adicionada está disponível para consulta.

  • interval_clause

    Um literal de intervalo que define o limite de atraso da marca d'água. Deve ser um valor positivo inferior a um mês.

Exemplos

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