다음을 통해 공유


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

매개 변수

  • named_expression

    형식 timestamp의 값을 제공하는 식입니다. 식은 기존 열에 대한 참조이거나 기존 열에 대한 결정적 변환이어야 합니다. 식은 워터마크를 추적하는 데 사용되는 타임스탬프 형식의 열을 추가합니다. 추가된 열을 쿼리할 수 있습니다.

  • interval_clause

    워터마크의 지연 임계값을 정의하는 간격 리터럴입니다. 한 달 미만의 양수 값이어야 합니다.

예제

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