注意 < > 这两个符号加里面的字符都替换成自己的字符
influxdb数据点汇聚需要用到2个功能
1.保留策略 (Retention Policy) RP
2.连续查询 (Continuous Query) CQ
查看保留策略
show RETENTION POLICIES on <you database>
实现汇聚的步骤
1.首先将原始的数据点的保留策略改为90天也就是3个月,你也可以改成你自己的时间.(默认保留策略是永久),默认策略名称是:autogen
alter retention policy "<策略名>" on "<you database>" duration 90d
2.创建新的保留策略, 我是创建了26周也就是半年的策略, 因为这个策略是保存5分钟点的,所以我起名为5m
CREATE RETENTION POLICY "5m" ON "<you databases>" DURATION 26w REPLICATION 1
3.查询原始表.(后缀为 数字加m 的表 我都称为汇聚表)
show MEASUREMENTS with MEASUREMENT =~ /.*([\\d][^m]|[^\\d]m|[^\\d][^m])$/
4.创建连续查询,我这边创建连续查询的时候是写了个go定时任务,因为数据表太多
创建完连续查询不会直接创建表, 会之后定时的汇聚并创建
CREATE CONTINUOUS QUERY "test5m" on "testdatabase" BEGIN SELECT mean(value) AS value INTO "5m"."test5m" FROM "test" GROUP BY time(5m),* END
我把上面创建连续查询的sql拆分一下
CREATE CONTINUOUS QUERY "<连续查询名称>" on "<你的数据库>" BEGIN SELECT mean(value) AS value INTO "<你的5分钟点的保留策略>"."<你的5分钟点汇聚之后的表>" FROM "<你要的原始表>" GROUP BY time(5m),* END
GROUP BY time(5m) 把点合成5分钟一个
* 这块是为了将你所有的tag都带上
5.查询数据 除了默认策略的表之外,只要是在非默认保留策略的表,都要加上策略名称
SELECT MEAN(value) as value FROM "5m"."test5m" GROUP BY time(5m) fill(none)