InfluxDB学习之InfluxDB数据保留策略(Retention Policies)

InfluxDB每秒可以处理成千上万条数据,要将这些数据全部保存下来会占用大量的存储空间,有时我们可能并不需要将所有历史数据进行存储,因此,InfluxDB推出了数据保留策略(Retention Policies),用来让我们自定义数据的保留时间。更多InfluxDB详细教程请看:InfluxDB系列学习教程目录

InfluxDB技术交流群:580487672(点击加入)

数据保留策略

一、InfluxDB 数据保留策略 说明

InfluxDB的数据保留策略(RP) 用来定义数据在InfluxDB中存放的时间,或者定义保存某个期间的数据。

一个数据库可以有多个保留策略,但每个策略必须是独一无二的。

二、InfluxDB 数据保留策略 目的

InfluxDB本身不提供数据的删除操作,因此用来控制数据量的方式就是定义数据保留策略。

因此定义数据保留策略的目的是让InfluxDB能够知道可以丢弃哪些数据,从而更高效的处理数据。

三、InfluxDB 数据保留策略 操作

1)查询策略

可以通过如下语句查看数据库的现有策略:

> SHOW RETENTION POLICIES ON telegraf
name    duration    shardGroupDuration    replicaN    default
default    0        168h0m0s        1        true

可以看到,telegraf只有一个策略,各字段的含义如下:

name--名称,此示例名称为 default

duration--持续时间,0代表无限制

shardGroupDuration--shardGroup的存储时间,shardGroup是InfluxDB的一个基本储存结构,应该大于这个时间的数据在查询效率上应该有所降低。

replicaN--全称是REPLICATION,副本个数

default--是否是默认策略

2)新建策略

> CREATE RETENTION POLICY "2_hours" ON "telegraf" DURATION 2h REPLICATION 1 DEFAULT
> SHOW RETENTION POLICIES ON telegraf
name    duration    shardGroupDuration    replicaN    default
default    0        168h0m0s        1        false
2_hours    2h0m0s        1h0m0s            1        true

通过上面的语句可以添加策略,本例在 telegraf 库添加了一个2小时的策略,名字叫做 2_hours, duration为2小时,副本为1,设置为默认策略。

因为名为default的策略不再是默认策略,因此,在查询使用default策略的表时要显式的加上策略名 “default”。

> select * from "default".cpu limit 2
name: cpu
---------
time            cpu        host                host_id    usage_guest    usage_guest_nice    usage_idle   usage_iowait        usage_irq    usage_nice        usage_softirq    usage_steal    usage_system        usage_user
1467884670000000000    cpu-total    ResourcePool-0246-billing07        0        0            99.79994164175388    0            0        0.06251823446523729    0        0        0.12920435125646068    0.008335764603451727
1467884670000000000    cpu9        billing07                0        0            97.79338014069532    1.8054162487519367    0        0            0        0        0.10030090272883943    0.3009027081135398

3)修改策略

修改策略使用如下语句修改

> ALTER RETENTION POLICY "2_hours" ON "telegraf" DURATION 4h DEFAULT
> show retention POLICIES on telegraf
name    duration    shardGroupDuration    replicaN    default
default    0        168h0m0s        1        false
2_hours    4h0m0s        1h0m0s            1        true

可以看到,修改后的策略发生了变化。

4)删除策略

InfluxDB中策略的删除操作如下所示:

> drop retention POLICY "2_hours" ON "telegraf"
> show retention POLICIES on telegraf
name    duration    shardGroupDuration    replicaN    default
default    0        168h0m0s        1        false

可以看到,名为2_hours的策略已经被删除了。

四、其他说明

策略这个关键词“POLICY”在使用是应该大写,小写应该会出粗。

当一个表使用的策略不是默认策略时,在进行操作时一定要显式的指定策略名称,否则会出现错误。

 

好了,有关 InfluxDB数据保留策略Retention Policies) 的相关内容就先为大家介绍到这里,有问题欢迎大家留言讨论。

更多InfluxDB详细教程请看:InfluxDB系列学习教程目录

InfluxDB技术交流群:580487672(点击加入)

转载于:https://www.cnblogs.com/waitig/p/6085233.html

要设置保留策略并将其应用于数据,请按照以下步骤操作: 1. 使用命令行或InfluxDB UI创建保留策略。您可以使用以下命令行命令: ``` CREATE RETENTION POLICY <policy_name> ON <database_name> DURATION <duration> REPLICATION <replication_factor> [SHARD DURATION <shard_duration>] [DEFAULT] ``` 其中,`<policy_name>`是您要为保留策略命名的名称,`<database_name>`是要应用保留策略数据库名称,`<duration>`是保留数据的持续时间,`<replication_factor>`是保留数据的副本数,`<shard_duration>`是可选的分片持续时间,`DEFAULT`表示此保留策略为默认保留策略。 例如,以下命令将创建一个名为`my_policy`的保留策略,将其应用于`my_database`数据库,并保留数据的持续时间为30天,副本数为2: ``` CREATE RETENTION POLICY my_policy ON my_database DURATION 30d REPLICATION 2 ``` 2. 将数据写入InfluxDB。您可以使用以下命令将数据写入数据库: ``` INSERT <measurement_name>,<tag_set> <field_set> [timestamp] ``` 其中,`<measurement_name>`是您要写入数据的测量名称,`<tag_set>`是包含标记键和标记值的标记集,`<field_set>`是包含字段名称和字段值的字段集,`[timestamp]`是可选的时间戳。 例如,以下命令将在`my_database`数据库中写入名为`cpu_usage`的测量,其标记集包含`host=server1`和`region=us-west`,字段集包含`value=75`: ``` INSERT cpu_usage,host=server1,region=us-west value=75 ``` 3. 检查保留策略是否应用于数据。您可以使用以下命令检查保留策略是否应用于数据: ``` SHOW RETENTION POLICIES ON <database_name> ``` 例如,以下命令将显示`my_database`数据库中的所有保留策略: ``` SHOW RETENTION POLICIES ON my_database ``` 如果您看到您创建的保留策略,则说明已成功将其应用于数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值