我们将Kafka Streams视为解决飞行比较的一种方法 . 具体来说,我们有数据以每秒约15,000个事务的顺序到达Kafka主题,我们希望在记录滚动时对记录进行比较操作 . 记录非常宽(1900列或其左右),但比较操作发生在很少的列(~10-20) . 我们的比较窗口大概是一分钟 .

场景将是这样的:

  • 消息1在时间00s到达foo,bar,foobar,barfoo,12,34的值

  • 消息2在时间05s以foo,bat,barbat,batbar,12,57的值到达

  • 消息3在10s时到达foo,bay,barbat,baybat,14,19的值

  • 消息4在时间15s到达foo,bar,foobar,barfoo,12,50的值

  • 消息5在40s时以bar,bat,barbat,batbar,14,18的值到达

  • 消息6在时间59s到达foo,bar,foobar,barfoo,12,36的值

我们希望能够读取流,识别消息1,4和6都符合我们的比较标准,然后在保留消息4的同时丢弃消息1和6 .

我在2016年11月发现了Gouzhang Wang的评论,建议通过Processor API实现这一点 . 这仍然是目前最好的方法吗?