1

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

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

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

我只是想从社区那里得到意见,什么是查询具有这种容量和低响应时间要求的流的最佳方法。

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

4

1 回答 1

2

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

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

于 2018-10-14T18:18:36.730 回答