首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据库数据的智能化离散化

数据库数据的智能化离散化
EN

Stack Overflow用户
提问于 2019-12-03 21:25:42
回答 1查看 119关注 0票数 0

对于我的未来项目,我有一个ClickHouse数据库。这个数据库由几个由rabbitsMQ提供的微型服务自己提供。

这些数据看起来如下:

代码语言:javascript
复制
| 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 |
 ......

因此,对于数百个不同的节点,我每10分钟就有一个值。

我需要有另一个表的和或均值(取决于节点类型)的值每小时.

我的第一个想法就是使用crontab ..。但这些数据并不是在流体流动中开始的,有时微服务会增加2-3个新值,或者一周一周的数据开始.而且我很少要大批量地插入新的数据.

现在我只有几百个节点,但是这个项目还会继续发展。

所以,我认为使用crontab或遍历db更新数据不是一个好主意.

我的其他选择是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-03 21:30:11

创建一个视图怎么样?

代码语言:javascript
复制
create view myview as
select 
    toStartOfHour(datetime) date_hour,
    nodekey,
    sum(value) sum_value
from mytable
group by 
    toStartOfHour(datetime),
    nodekey

这种方法的优点是您不需要担心刷新数据。在查询视图时,您实际上访问了底层的实时数据。缺点是当您的数据集变得非常大时,它可能不会很好地扩展(对于视图的查询往往会放慢速度)。

一个中间选项是使用物化视图,它将持久化数据。如果我正确地理解了clickhouse文档,那么在修改源表中的数据时,物化视图会自动更新,这似乎与您正在寻找的数据非常接近(但是您需要使用适当的引擎,这可能会影响插入的性能)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59165579

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档