【问题标题】:Do we have a option to get data in KSQL streams from specific time-period/Timestamp我们是否可以选择从特定时间段/时间戳获取 KSQL 流中的数据
【发布时间】:2020-05-14 00:32:12
【问题描述】:

我知道,在 KSQL 中,我们可以将偏移量设置为最早或最晚但是我们可以从特定时间段获取数据,即我需要从 2020 年 5 月 6 日开始将数据插入到主题中吗?

【问题讨论】:

    标签: apache-kafka ksqldb confluent-platform


    【解决方案1】:

    在 ksqlDB 中,您可以从主题的开头 (SET 'auto.offset.reset' = 'earliest';) 或结尾 (SET 'auto.offset.reset' = 'latest';) 查询。

    您目前 (0.8.1 / CP 5.5) 无法寻找任意偏移量。

    可以做的是从最早的偏移量开始,然后在谓词中使用ROWTIME 来识别符合您要求的消息。

    SELECT * 
      FROM MY_SOURCE_STREAM 
    WHERE  ROWTIME>=1588772149620
    

    请注意,这是按顺序扫描的,因此取决于您在主题中拥有多少数据,可能不会特别快。

    【讨论】:

    • 感谢@Robin Moffatt。我可以理解最早设置和获取数据是一个性能问题。当 KSQL 难以流式传输数据时,我可以使用此解决方案。您能否建议如何在 KSQL 查询中的谓词中添加 ROWTIME。如果我的 ROWTIMW 是 '1588772149620',请提供一个示例 KSQL 查询
    • 我添加了一个例子
    • 我可以从 ROWTIME=1588772149620 获取消息吗?我相信这个查询只会获取一条记录。基本上,如果几天没有推送数据,KSQL 流就会停止。所以我想从我消费的最后一条消息中重新启动一个流。
    • 我已经更新了我的示例,在谓词中使用 greater than or equal to 而不是 equal to
    猜你喜欢
    • 2021-08-18
    • 1970-01-01
    • 2022-08-14
    • 2020-03-27
    • 1970-01-01
    • 2021-08-07
    • 1970-01-01
    • 1970-01-01
    • 2018-08-20
    相关资源
    最近更新 更多