[英]Kafka streams - grouping by value property?
我有一个带有以下内容的流:
Key: { "Symbol": "xxx" }
Value: { "Date": "2019-01-01", ... }
所以,我想按符号分组,然后在 5 天块中按 Value.Date 分组。 即 01-01 -> 01-05。
KStream<Key, Value> stream = kStreamBuilder.stream(...);
stream.groupBy((key, value) -> key.getSymbol())
所以我已经正确地获得了流,第一步,我按 Key.Symbol 分组。 不太确定从这里去哪里。 任何指针将不胜感激。
您可以使用自定义时间戳提取器从值中返回时间戳,即实现TimestampExtractor
接口并通过default.timestamp.extractor
配置参数指定您的类(参见https://docs.confluent.io/current/streams/developer-指南/config-streams.html#default-timestamp-extractor )
这允许您通过以下方式使用基于提取的时间戳的滚动时间窗口:
groupBy(...).windowedBy(TimeWindows.of(Duration.ofDays(5))).aggregate(...)
有关更多详细信息,请参阅文档: https : //docs.confluent.io/current/streams/developer-guide/dsl-api.html#tumbling-time-windows
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.