简体   繁体   English

在Kafka流上为窗口数据创建SerDes

[英]Creating a SerDes for Windowed Data on Kafka Streams

我在创建要与正在聚合的数据一起使用的SerDes时遇到一些麻烦,并且需要通过'.to()'发送到另一个主题,但是,我需要为窗口数据创建SerDes,而我我不确定该怎么做。

We can create the Serilizer and DeSerilizer for windowed data in the following ways. 我们可以通过以下方式为窗口数据创建Serilizer和DeSerilizer。

StringSerializer stringSerializer = new StringSerializer();
StringDeserializer stringDeserializer = new StringDeserializer();
Serde<String> stringSerde = Serdes.serdeFrom(stringSerializer,stringDeserializer);

WindowedSerializer<String> windowedSerializer = new WindowedSerializer<>(stringSerializer);
WindowedDeserializer<String> windowedDeserializer = new WindowedDeserializer<>(stringDeserializer);
Serde<Windowed<String>> windowedSerde = Serdes.serdeFrom(windowedSerializer,windowedDeserializer);

Use of Serilizer/DeSerilizer in the windowed data is given below. 下面给出了窗口数据中Serilizer / DeSerilizer的使用。

KStream<String,StockTransaction> transactionKStream =  kStreamBuilder.stream(stringSerde,transactionSerde,"stocks");

transactionKStream.map((k,v)-> new KeyValue<>(v.getSymbol(),v))
                              .through(stringSerde, transactionSerde,"stocks-out")
                              .groupBy((k,v) -> k, stringSerde, transactionSerde)
                              .aggregate(StockTransactionCollector::new,
                                   (k, v, stockTransactionCollector) -> stockTransactionCollector.add(v),
                                   TimeWindows.of(10000),
                                   collectorSerde, "stock-summaries")
                    .to(windowedSerde,collectorSerde,"transaction-summary");

I would suggest you to go through the following content to get more information. 我建议您仔细阅读以下内容以获得更多信息。

https://www.programcreek.com/java-api-examples/index.php?api=org.apache.kafka.streams.kstream.internals.WindowedSerializer https://www.programcreek.com/java-api-examples/index.php?api=org.apache.kafka.streams.kstream.internals.WindowedSerializer

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 为 Kafka 流配置 Serdes 的问题 - Issue with configuring Serdes for Kafka Streams Kafka Streams - 自定义对象的 Serdes - Kafka Streams - Serdes for Custom Objects 将 Kafka Streams 与依赖于标头中的模式引用的 Serdes 一起使用 - Using Kafka Streams with Serdes that rely on schema references in the Headers kafka 流跳跃窗口聚合导致多个 windows 在时间戳为零 - kafka streams hopping windowed aggregation causing multiple windows at timestamp zero kafka 流异常找不到 org.apache.kafka.common.serialization.Serdes$WrapperSerde 的公共无参数构造函数 - kafka streams exception Could not find a public no-argument constructor for org.apache.kafka.common.serialization.Serdes$WrapperSerde kafka 流示例引发 class 转换异常,serde windowed -&gt; string。 如何设置正确的 Serde? - kafka streams example throws a class cast exception, serde windowed -> string. How to set the proper Serde? Kafka Streams:我们是否应该提前 stream 时间来测试窗口抑制? - Kafka Streams: Should we advance stream time per key to test Windowed suppression? Kafka Streams:由于提交间隔和窗口时间不同步,刷新中间窗口结果 - Kafka Streams : Flushing intermediate Windowed results as commit interval and window time are not in sync Kafka流JoinWindow的数据 - Kafka Streams JoinWindow's data Kafka Streamer:用户定义的“ Serdes”问题 - Kafka Streamer: Issue with user defined 'Serdes'
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM