如何在Kafka中执行消息(事件)的聚合?

时间:2018-05-18 10:09:29

标签: apache-kafka

我有以下属性:

  1. ORGID
  2. DEVICEID
  3. ResponseId
  4. 我想在每次响应时聚合组织的设备数量,而不是组织的响应。我想不出合适的聚合结构。

1 个答案:

答案 0 :(得分:1)

这是一个非常广泛的问题。暂且不谈技术选择,如果要在伪SQL中表达答案,它将如下所示:

  

我想汇总一个组织的设备数量

SELECT OrgId,COUNT DISTINCT(DeviceId) FROM inbound_data GROUP BY OrgId
  

每次回复时组织的回复数量

SELECT OrgId, COUNT DISTINCT(ResponseId) FROM inbound_data GROUP BY OrgId

所以现在只是如何实现这一点。如果您已经在使用Apache Kafka,那么您可以使用Kafka Streams API在Java中执行此操作,并且您还可以使用KSQL在SQL中执行此操作。我不确定是否支持COUNT DISTINCT