显示最近非空值的KSQL表



目前我有一个流与几个传感器数据,发送他们的状态码一次当他们更新自己。

这是一个一次性值,然后传感器值再次为零,直到再次发生变化。所以在我的表中,最后一个值应该取代零值,直到一个新值被传递。目前我创建的表是这样的:

CREATE TABLE LRS WITH 
(KAFKA_TOPIC='lrs', KEY_FORMAT='DELIMITED', PARTITIONS=6, REPLICAS=3) 
AS SELECT
Device,
LATEST_BY_OFFSET(CAST(Sensor1 AS DOUBLE)),
LATEST_BY_OFFSET(CAST(Sensor2 AS DOUBLE))
FROM RELEVANT_VALUES RELEVANT_VALUES
WINDOW TUMBLING ( SIZE 10 SECONDS ) 
GROUP BY Device

所以不像这样:

Device | Sensor1 | Sensor2 | Timestamp
1    |   null  |  null   |   05:00am
1    |   3     |   2     |   05:01am
1    |   null  |  null   |   05:02am
1    |   null  |  null   |   05:03am
1    |   2     |   1     |   05:04am
1    |   null  |  null   |   05:05am

在更新值时应该是这样的:

Device | Sensor1 | Sensor2 | window
1    |   null  |  null   | 05:00-01
1    |   3     |   2     | 05:01-02
1    |   3     |   2     | 05:02-03
1    |   3     |   2     | 05:03-04
1    |   2     |   1     | 05:04-05
1    |   2     |   1     | 05:05-06

我基本上想创建一个表,总是显示最新发送的值,这是不空

是否有一种方法来实现这个使用KSQL ?

你总是可以添加一个过滤器如果你使用流或ksql你可以做WHERE Sensor1 IS NOT NULL

相关内容

  • 没有找到相关文章

最新更新