apache-kafka - KSQL UNIX_TIMESTAMP 函数在使用查询创建的流上不是动态的
问题描述
我正在创建以下流:
CREATE STREAM riderLocations (profileId VARCHAR, latitude DOUBLE, longitude DOUBLE, publishtime VARCHAR)
WITH (kafka_topic='locations', value_format='json', partitions=1);
然后是另一个:
CREATE STREAM INVENTORY WITH (KAFKA_TOPIC='locations_in')
AS select * FROM riderLocations
where STRINGTOTIMESTAMP(publishtime, 'yyyy-MM-dd HH:mm:ss.SSSZ') < UNIX_TIMESTAMP();
当我执行命令时:select * from inventory emit changes;
它仅显示发布日期小于创建库存流时的消息。
如何强制 unix_timestamp 值更新和更新我的流库存?
解决方案
时间戳是在查询创建时评估的,而不是运行时。
如果您希望消息少于“现在”,则需要将其作为您运行的每个 SELECT 查询的 WHERE 子句包含在内
推荐阅读
- python - SciPy 最小化函数的圆形/径向边界
- python - Pytorch 展开导致意外分离
- c++ - idf.py menuconfig 闪烁然后退出
- r - 相关矩阵在对角线上产生 1,其余为 NA
- python - 集合中元素的顺序
- javascript - Javascript:从数组中删除特定项目并返回没有这些项目的原始数组
- substrate - Substrate Private Network 是否需要初始节点处于活动状态?
- python - 使用分而治之的方法在列表中找到至少出现 60% 的时间的元素?
- python - Python plotly-dash meta_tags 不调整视口/在不同设备上查看
- javascript - 组件在 Gatsby 中不起作用(显示为 html 标记)