对于我的未来项目,我有一个clickhouse数据库。这个数据库由rabbitsmq提供的几个微服务自己提供。
数据如下所示:
| Datetime | nodekey | value |
| 2018-01-01 00:10:00 | 15 | 156 |
| 2018-01-01 00:10:00 | 18 | 856 |
| 2018-01-01 00:10:00 | 86 | 8 |
| 2018-01-01 00:20:00 | 15 | 156 |
| 2018-01-01 00:20:00 | 18 | 84 |
| 2018-01-01 00:20:00 | 86 | 50 |
......
所以对于几百个不同的nodekey,我每10分钟有一个值。
我需要有另一个表的总和或平均值(取决于nodekey类型)的值为每小时。。。
我的第一个想法就是使用crontab。。。但数据并没有在流体流动中传递,有时微服务会增加2-3个新值,有时一周的数据传递。。。我很少需要大量插入一年的新数据。。。
目前,我只有几百个nodekey,但这个项目将继续发展。
所以,我认为使用crontab或循环数据库来更新数据不是一个好主意。。。
我还有什么选择?
1条答案
按热度按时间hs1rzwqc1#
创建一个视图怎么样?
这种方法的优点是不需要担心刷新数据。在查询视图时,您实际上访问了底层的实时数据。缺点是,当数据集变得非常大时,它可能无法很好地扩展(处理视图的查询往往会变慢)。
中间的一个选择是使用物化视图,它将持久化数据。如果我正确理解clickhouse文档,那么在修改源表中的数据时,物化视图会自动更新,这似乎与您要查找的内容接近(但是您需要使用适当的引擎,这可能会影响插入的性能)。