Apache Kafka 1.0.0 Streams API Multiple Multilevel groupby

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Apache Kafka 1.0.0 Streams API Multiple Multilevel groupby相关的知识,希望对你有一定的参考价值。

如何在Kafka Streams API中使用带有多个约束的.groupby。与下面的Java 8 Streams API示例相同

public void twoLevelGrouping(List<Person> persons) {
     final Map<String, Map<String, List<Person>>> personsByCountryAndCity = persons.stream().collect(
         groupingBy(Person::getCountry,
            groupingBy(Person::getCity)
        )
    );
    System.out.println("Persons living in London: " + personsByCountryAndCity.get("UK").get("London").size());
}
答案

您可以通过将要分组的所有属性/字段放入键中来指定组合键。

KTable table = stream.selectKey((k, v,) -> k::getCountry + "-" + k::getCity)
                     .groupByKey()
                     .aggregate(...); // or maybe .reduce()

我只是假设国家和城市都是String。您使用交互式查询来查询商店

store.get("UK-London");

https://docs.confluent.io/current/streams/developer-guide/interactive-queries.html

以上是关于Apache Kafka 1.0.0 Streams API Multiple Multilevel groupby的主要内容,如果未能解决你的问题,请参考以下文章

Apache Kafka:使用java方式操作stream(实现官方的wordcount)

Apache Kafka 1.0.0正式发布!

微服务架构 | 8.1 使用 Spring Cloud Stream 整合 Apache kafka #yyds干货盘点#

Apache Kafka 1.0.0 Streams API Multiple Multilevel groupby

kafka环境安装

kafka1.0.0集群搭建