如何解决为实时聚合更新旧数据的最佳做法是什么?
我有最喜欢的数据,我想知道每天的总净收藏数是多少。让我们假设一个场景;
我们假设当前时间是 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 举报,一经查实,本站将立刻删除。