繁体   English   中英

Kafka 流 - 按值属性分组?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM