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

为实时聚合更新旧数据的最佳做法是什么?

如何解决为实时聚合更新旧数据的最佳做法是什么?

我有最喜欢的数据,我想知道每天的总净收藏数是多少。让我们假设一个场景;

我们假设当前时间是 2021-03-05用户喜欢 2021-03-01 中的产品 1,然后在 2021-03-03删除对该产品的喜爱。如果我们想在 2021-03-02 中找到这个产品的总净收藏数,它应该是 return 1。但是在2021-03-05查询时应该返回0

有很多这样的案例。

例如,对于实时聚合,Apache Druid 是完美的。但它不支持向旧时间段添加数据(我们必须重新索引相关段)。一般来说,更新或添加一些数据到索引真的很痛苦。最好的方法是什么?

我有两种方法

1- 我们可以使用支持更新/添加数据库/引擎,如 postgresql 或弹性搜索,将数据添加到旧分区。但例如 postgresql 不是可扩展的解决方案。或者可以使用elasticsarch,但它更新操作需要重新索引数据。

2- 我们可以使用 Druid 来获取实时数据(最近的数据)。但是更新的数据(如删除收藏操作)应该存储在另一个系统中。当我们想要获得网络收藏总数时,我们将查询发送到两个数据库并在 API 端连接结果。但是这个操作也需要运行时join/merge。

我不知道最好的方法是什么?或者是否存在任何其他方法

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