【问题标题】:Kafka querying the streamKafka查询流
【发布时间】:2018-10-14 14:26:15
【问题描述】:

我有一个业务需求,我需要有 12 小时的窗口,并且需要查询流数据。 12 小时内大约有 1 亿条记录。我还需要维护所有事件的顺序。 我使用 Streams API 构建了一个系统来执行此操作。音量似乎不是问题。真正的问题是企业想要搜索事件和状态商店,几乎每个状态商店。搜索不是基于键,而是基于值中的某些字段。

我尝试了 KSQL 服务器并尝试使用 25M 记录的数据集运行简单查询,并且在 8 小时窗口内运行查询需要将近 240 秒才能完成搜索。 (现在我使用的是单个节点和单个分区。)

我正在考虑的另一种方法是将 Elastic Search 连接到流和状态存储,然后对它们运行查询,但我不确定存储每个状态存储的数据是否是一个好的解决方案与否。

我只是想从社区那里获得意见,了解在这种容量和低响应时间要求的情况下查询流的最佳方法是什么。

我还是 Kafka 新手,期待建议和指导。

【问题讨论】:

    标签: apache-kafka apache-kafka-streams ksqldb


    【解决方案1】:

    Kafka 本身没有针对索引查询进行优化,甚至没有针对不涉及从偏移开始并在日志中向前读取的任何查询进行优化。查询数据的最佳方法是将其发送到符合您查询要求的系统。

    Kafka Streams 确实支持交互式查询,但如果如您所说,您需要对字段而不是键上的数据进行索引,则最好写入支持二级索引的系统。

    【讨论】:

    • 感谢您的回复。但是可以在所有阶段存储中间状态存储并将数据流式传输到数据库吗?会不会因为我需要搜索而导致数据重复。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-30
    • 2020-10-06
    • 1970-01-01
    • 2018-03-18
    • 2019-05-05
    • 2021-01-31
    相关资源
    最近更新 更多