微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Druid 如何删除 Kafka 索引服务中的重复项

如何解决Druid 如何删除 Kafka 索引服务中的重复项

我将 DRUID 与 Kafka 索引服务一起使用。我想了解它如何处理重复消息。

示例

考虑我在 Kafka Topic 中有以下消息[仅 1 个分区]

[偏移=100]

{
  "ID":4,"POINTS":1005,"CREATED_AT":1616258354000000,"UPDATED_AT":1616304119000000
}

现在考虑 24 小时后,相同的消息以某种方式再次推送到主题

[偏移=101]

{
  "ID":4,"UPDATED_AT":1616304119000000
}

注意:有效载荷没有改变。

实际:现在,在 DRUID 中,我再次看到相同的消息。

预期:我预期的是,由于有效负载未更改,因此应忽略消息。

我的时间戳列是 CREATED_AT

解决方法

你能确定除了重复之外永远不会有两个具有相同时间戳的独特事件吗?如果是这样,您可以尝试使用 rollup 来消除重复项。

您可以在粒度规范中进行设置,而 queryGranularity 基本上会根据该粒度截断所有时间戳,如果所有维度都相同,它们将使用您在规范中设置的聚合函数进行组合。

对于聚合函数,您需要使用 MAX 或 MIN 之类的东西,因为 SUM 会将它们相加。

如果您有多个 kafka 分区,这将失败,但可以通过重新索引来修复。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。