ApacheKafka流式交互查询-如何创建值为实体而不是聚合的存储

bbmckpt7  于 2021-06-08  发布在  Kafka
关注(0)|答案(1)|浏览(287)

我有一个主题,它接收包含以下信息的事件:
键-> orderId (整数)
价值-> {"orderId" : aaa, "productId" : , "userId" : yyy, "state" : "zzz"} (包含订单全部信息的json)
我想实现一个交互式查询,通过orderid获取完整的订单信息。其思想是能够从物化视图(kafka流存储)中获取订单的当前状态。
首先,我创建主题的kstream: KStream<Integer, JsonNode> stream = kStreamBuilder.stream(integerSerde, jsonSerde, STREAMING_TOPIC); 然后我创建一个 KTable 把它分配给商店。问题是,显然我只能创建值为聚合的存储,例如: stream.groupByKey().count("myStore"); 我需要的商店应该有完整的订单信息,而不是聚合。这可能吗?

ruoxqz4g

ruoxqz4g1#

你可以直接把这个主题作为一个例子来读 KTable ,也是:

KTable<Integer, JsonNode> stream = kStreamBuilder.table(integerSerde, jsonSerde, STREAMING_TOPIC, "store-name-for-IQ");

此常见问题解答也可能有帮助:http://docs.confluent.io/current/streams/faq.html#how-can-i-convert-a-kstream-to-a-ktable-without-an-aggregation-step无需聚合

相关问题