【发布时间】:2019-07-03 15:29:41
【问题描述】:
我有多个非唯一字段的记录进入 kafka,我们称它们为 Field1 ... Field n。
我想编写一个查询来返回 fieldx = 某个值的所有记录。让我们举一个简单的例子。假设订单进入系统,订单中的字段之一是 customerId。基本操作是获取特定客户的所有订单。如何使用 Kafka Streams 做到这一点?
我已经有一个 KTable 和所有记录的物化视图,所以我可以遍历视图中的所有记录并挑选出我想要的记录,但这似乎效率低下且成本高昂。
我真的很想创建一个物化视图,其中视图包含按 fieldx 分组的记录,但我看不到任何方法可以做到这一点。看起来您只能将 groupby 与聚合、计数、减少等一起使用。
关于如何做到这一点的任何想法?
【问题讨论】:
-
您可以先重新映射流以使用您过滤的字段作为其键,这样您就可以在访问商店时查询它。
-
不确定
return all records是什么意思,但是stream.filter(...).to(...)呢?过滤器可以检查每条记录是否符合您想要的条件(或者可能是stream.filter(...).foreach(...)?)
标签: java apache-kafka-streams spring-kafka