influxdb创建数据库实例的保留策略和连续查询

目录

保留策略

创建存储策略

查看数据库实例保留策略

连续查询

介绍:

基本语法:

案例需求


保留策略

创建存储策略

      duration:保留策略的属性决定数据库中的数据保留期间。大于这个期间的数据将会被删除

     保留策略创建语法:

      CREATE RETENTION POLICY <retention_policy_name> ON <database_name> DURATION <duration> REPLICATION <n> [SHARD DURATION <duration>] [DEFAULT]

CREATE RETENTION POLICY "k2h_raw" ON "dat_metrics" DURATION 2h0m0s REPLICATION 1 DEFAULT;
CREATE RETENTION POLICY "k7d_s5m" ON "dat_metrics" DURATION 168h0m0s REPLICATION 1;
CREATE RETENTION POLICY "k90d_s30m" ON "dat_metrics" DURATION 2160h0m0s REPLICATION 1;
创建连续查询
CREATE CONTINUOUS QUERY bc_query_stat_sample_by_30m ON dat_metrics BEGIN SELECT last(*), mean(*), max(*), min(*) INTO dat_metrics.k90d_s30m.bc_query_stat FROM dat_metrics.k2h_raw.bc_query_stat GROUP BY time(30m), cloud_app_id, cloud_node_id, service END;

修改保留策略语法
ALTER RETENTION POLICY <retention_policy_name> ON <database_name> DURATION <duration> REPLICATION <n> SHARD DURATION <duration> DEFAUL

alter retention policy "k2h_raw" on "dat_metrics" DEFAULT

查看数据库实例保留策略

SHOW RETENTION POLICIES ON "dat_metrics";

连续查询

介绍:

连续查询(Continuous Queries下文统一简称CQ)是InfluxQL对实时数据自动周期运行的查询,然后把查询结果写入到指定的measurement中。

基本语法:

CREATE CONTINUOUS QUERY <cq_name> ON <database_name>
BEGIN
  <cq_query>
END

语法描述:

cq_query

cq_query需要一个函数,一个INTO子句和一个GROUP BY time()子句:

SELECT <function[s]> INTO <destination_measurement> FROM <measurement> [WHERE <stuff>] GROUP BY time(<interval>)[,<tag_key[s]>]
​

运行时间点以及覆盖的时间范围

CQ对实时数据进行操作。他们使用本地服务器的时间戳,GROUP BY time()间隔和InfluxDB的预设时间边界来确定何时执行以及查询中涵盖的时间范围。

CQs以与cq_queryGROUP BY time()间隔相同的间隔执行,并且它们在InfluxDB的预设时间边界开始时运行。如果GROUP BY time()间隔为1小时,则CQ每小时开始执行一次。

当CQ执行时,它对于now()now()减去GROUP BY time()间隔的时间范围运行单个查询。 如果GROUP BY time()间隔为1小时,当前时间为17:00,查询的时间范围为16:00至16:59999999999。

案例需求

原始数据保留7天,5分钟采样数据保留一个月,30分钟采样数据保留一年。

以host_metrics数据库为例:

第一步 修改保留策略为数据保留7天

alter retention policy "k2h_raw" on "host_metrics" DEFAULT

第二步 创建连续查询
对host_metrics数据中的cpu measurement进行创建连续查询

CREATE CONTINUOUS QUERY cpu_sample_by_5m ON host_metrics 
BEGIN 
  SELECT last(*), mean(*), max(*), min(*) INTO host_metrics.k7d_s5m.cpu FROM host_metrics.k2h_raw.cpu GROUP BY time(5m), host, core_id 
END
              
CREATE CONTINUOUS QUERY cpu_sample_by_30m ON host_metrics
BEGIN
 SELECT last(*), mean(*), max(*), min(*) INTO host_metrics.k90d_s30m.cpu FROM host_metrics.k2h_raw.cpu GROUP BY time(30m), host, core_id 
END

列出influxdb实例上的CQ,展示是以实例进行分组

 

参考1:https://jasper-zhang1.gitbooks.io/influxdb/content/Query_language/continuous_queries.html

参考2:https://docs.influxdata.com/influxdb/v1.3/query_language/data_download/

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

独步秋风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值