本文为您介绍 Spark SQL 流式处理种的内建函数。

新增

DELAY: 表达 Spark Structured Streaming 中的 watermark 语义,表示对指定时间列的最大延迟时间。

  • 语法
    WHERE delay ( colName ) < 'duration' 
  • 等价于
    withWatermark("colName", "duration")
  • 示例
    SELECT avg(inv_quantity_on_hand) qoh
    FROM kafka_inventory
    WHERE delay(inv_data_time) < '2 minutes'
    GROUP BY TUMBLING (inv_data_time, interval 1 minute)

说明

以上通过新增内建函数的方式支持 watermark 语义,存在一定的限制性。另外一种可选的方式是声明式,也就是在表或者查询定义中进行声明。所以,实现 watermark 的方式还在演变中,请关注本文档的更新。

资料

参见 Spark Stream SQL 官方文档