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获取具有特定密钥的所有事件_Apache Kafka_Kafka Consumer Api_Apache Kafka Streams - Fatal编程技术网

Apache kafka 从Kafka获取具有特定密钥的所有事件

Apache kafka 从Kafka获取具有特定密钥的所有事件,apache-kafka,kafka-consumer-api,apache-kafka-streams,Apache Kafka,Kafka Consumer Api,Apache Kafka Streams,我的系统中有存储给定实体事件的主题。现在我想对事件日志进行一些分析。因此,我需要查询特定时间段内属于某个实体的所有事件。是否有可能使用Kafka Streams在一个时间窗口内聚合某个键的所有事件 听起来你只是想要DSL的groupByKey方法,这实际上取决于你想如何设置你的系统,你想做什么样的分析,以及“查询”的确切含义 对于一次性分析,您可能只想在转换器中执行stream.transform(…).to()并过滤键和时间戳(上下文.timestamp()是您的朋友),然后将结果写入主题。因

我的系统中有存储给定实体事件的主题。现在我想对事件日志进行一些分析。因此,我需要查询特定时间段内属于某个实体的所有事件。是否有可能使用Kafka Streams在一个时间窗口内聚合某个键的所有事件

听起来你只是想要DSL的
groupByKey
方法,这实际上取决于你想如何设置你的系统,你想做什么样的分析,以及“查询”的确切含义

对于一次性分析,您可能只想在
转换器中执行
stream.transform(…).to()
并过滤键和时间戳(
上下文.timestamp()
是您的朋友),然后将结果写入主题。因此,您将在某个键和时间范围内运行此程序一次。也许您甚至可以在编写任何结果之前进行必要的分析,您可以使用
WindowsStore
(启用复制)来缓冲存储区中的所有数据)


如果您想编写一个程序来准备**all*数据进行分析,您可以使用
groupBy()
(或
groupbykey()
)。将
windowedBy()
TimeWindows
配合使用,只有您知道要预先对数据进行分组的时间范围(例如,每小时、每天或类似的时间范围)才有效。对于聚合本身,您可以返回一个
列表
对象,并为每个键和窗口累积相应的记录。通过这种方式,您可以使用IQ通过一次查找获取指定键和窗口的所有记录。

好的,但是如何使用特定键查询数据点呢?不确定您期望的是什么。您研究过交互式查询功能或KSQL吗?是的,我知道交互式查询,但问题是我只能获得某些键的“最新”值。但是如何查询该键以前的值呢?当您对该键进行分组时,您将在消息中存储这两个值,而不仅仅是正在合并的“其他”值。因此,我会使用聚合将旧值添加到消息中?