Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache kafka 如何在Kafka流中按定义的5秒时间窗口实现窗口化?_Apache Kafka_Kafka Consumer Api_Apache Kafka Streams_Kafka Producer Api_Ksqldb - Fatal编程技术网

Apache kafka 如何在Kafka流中按定义的5秒时间窗口实现窗口化?

Apache kafka 如何在Kafka流中按定义的5秒时间窗口实现窗口化?,apache-kafka,kafka-consumer-api,apache-kafka-streams,kafka-producer-api,ksqldb,Apache Kafka,Kafka Consumer Api,Apache Kafka Streams,Kafka Producer Api,Ksqldb,我正在尝试使用Kafka Streams实现窗口化,其中我们从一个主题中获得一系列JSON格式的不同事务。对于每个事务ID,都可以有多个提交(可以从SQL提交的角度来考虑,因此对于不同的事务ID可以有多个事务)。我需要为微批处理设置一个窗口,在该窗口中,我将每5秒使用一次数据,并根据事务ID将数据存储在一个目录中 我想知道这里的方法,以及应该使用什么库/函数/类来实现相同的功能?您可以以各种方式在kafka streams中使用窗口。滚动窗口的一个示例(如您的案例) 您可以在此处找到更多详细信息

我正在尝试使用Kafka Streams实现窗口化,其中我们从一个主题中获得一系列JSON格式的不同事务。对于每个事务ID,都可以有多个提交(可以从SQL提交的角度来考虑,因此对于不同的事务ID可以有多个事务)。我需要为微批处理设置一个窗口,在该窗口中,我将每5秒使用一次数据,并根据事务ID将数据存储在一个目录中


我想知道这里的方法,以及应该使用什么库/函数/类来实现相同的功能?

您可以以各种方式在kafka streams中使用窗口。滚动窗口的一个示例(如您的案例)

您可以在此处找到更多详细信息:

这里“抑制”和“处理”有什么用?我需要根据我的json键进行分组,然后根据键将其分支到不同的文件。suppress()方法用于抑制来自windows的中间结果,即,如果您希望仅在关闭窗口后而不是每次都获得最终结果,而
.process
方法用于调用任何自定义处理器。在本例中,我使用FileLink作为示例。
builder.stream("events")
    .groupByKey()
    .windowedBy(TimeWindows.of(TimeUnit.SECONDS.toMillis(10)))
    .count()
    .suppress(untilWindowCloses(BufferConfig.unbounded()))
    .toStream()
    .process(FileSink::new);