首页 > 数据库 > > influxdb1.X的CQ、RP实战
大量参考翻译自 https://docs.influxdata.com/influxdb/v1.8/guides/downsample_and_retain/
InfluxDB 每秒可以处理数十万个数据点。 长时间处理这么多数据可能会引起存储问题。 一个自然的解决方案是对数据进行下采样; 将高精度原始数据仅保留有限的时间,并将较低精度的汇总数据存储更长时间。 本指南描述了如何使用 InfluxQL 自动化下采样数据和过期旧数据的过程。
influxdb 1.X有CQ和RP的概念,不过在influx2中,这两个概念都被替换掉了,不过还是很有必要学习了解一下这两个概念并感悟一下为什么在influx2替换掉了这两个概念
本部分使用虚构的实时数据以 10 秒的间隔跟踪通过电话和网站向餐厅订购的食品数量。 我们将此数据存储在名为 food_data 的数据库中、在measurement orders中的字段phone和website。
样本
name: orders------------time phone website2016-05-10T23:18:00Z 10 302016-05-10T23:18:10Z 12 392016-05-10T23:18:20Z 11 56
假设在长期运行中,我们只对以30分钟为周期的通过电话和网站的订单数感兴趣,在接下来,我们通过CQ和RP来
我们在向food_data插入数据之前先做一些准备工作。原因是因为CQ只对最近的数据进行操作。
CREATE DATABASE "food_data"
如果在写入数据的时候不指定RP,那么InfluxDB会使用默认的RP。由于我们想把每十秒写进来的数据自动使用2小时的RP(而不需要手动指定),我们将默认的RP修改成2h。
CREATE RETENTION POLICY "two_hours" ON "food_data" DURATION 2h REPLICATION 1 DEFAULT
这个语句在food_data中创建了一个名叫two_hours的RP。two_hours默认保留2小时的数据,并且是food_data数据库的默认RP
接下来我们创建一个52周的RP,用来存储每30分钟的数据。
CREATE RETENTION POLICY "a_year" ON "food_data" DURATION 52w REPLICATION 1
注意,这个RP并不是默认RP
现在我们已经设置了我们的 RP,我们想要创建一个连续查询 (CQ),它会自动定期将 10 秒采样数据下采样到 30 分钟采样,然后将这些结果存储在不同的measurement和不同的RP中
使用CREATE CONTINUOUS QUERY语句来创建CQ
CREATE CONTINUOUS QUERY "cq_30m" ON "food_data" BEGIN
SELECT mean("website") AS "mean_website",mean("phone") AS "mean_phone"
INTO "a_year"."downsampled_orders"
FROM "orders"
GROUP BY time(30m)
END
CREATE CONTINUOUS QUERY "cq_30m" ON "food_data" BEGIN SELECT mean("website") AS "mean_website",mean("phone") AS "mean_phone" INTO "a_year"."downsampled_orders" FROM "orders" GROUP BY time(30m) END
这个语句在food_data中创建了一个名为cq_30m的CQ。cq_30m告诉influxdb计算在measurement orders中在DEFAULT RP two hours下的30分钟内的website和phone的平均值。并且还让influxdb将这些结果写到measurement downsampled_orders,并使用a_year的老化策略,字段名分别为mean_website和mean_phone。Influxdb每30分钟运行一次前30分钟的数据
有了CQ和RP,之后,我们就可以往数据库中写入数据了,让我们插入几条数据
INSERT orders phone=5,website=20
INSERT orders phone=5,website=21
INSERT orders phone=5,website=20
INSERT orders phone=2,website=4

这个时候downsampled_orders还没有数据,我们需要等待它运行一段时间(半小时起步)


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69946831/viewspace-3146233/ ,如需转载,请注明出处,否则将追究法律责任。