定义

The part of InfluxDB’s data structure that describes for how long InfluxDB keeps data (duration), how many copies of this data is stored in the cluster (replication factor), and the time range covered by shard groups (shard group duration). RPs are unique per database and along with the measurement and tag set define a series.

下面简单谈一下我对这句话的理解。retention policy描述了influxdb中的数据会保留多长时间、数据保留几个副本(开源版的只能保留一个副本),以及每个shard保存多长时间的数据。每个influxdb数据库都有一个独立的retention policy。这里面涉及到几个基本概念,下面描述一下。

  • DURATION:这个描述了保留策略要保留多久的数据。这个机制对于时序型的数据来讲,是非常有用的。
  • SHARD:这个是实际存储influxdb数据的单元。每个shard保留一个时间片的数据,默认是7天。如果你保存1年的数据,那么influxdb会把连续7天的数据放到一个shard中,使用好多个shard来保存数据。
  • SHARD DURATION:这个描述了每个shard存放多数据的时间片是多大。默认7天。需要注意的是,当数据超出了保留策略后,influxdb并不是按照数据点的时间一点一点删除的,而是会删除整个shard group。
  • SHARD GROUP:顾名思义,这个一个shard group包含多个shard。对于开源版的influxdb,这个其实没有什么区别,可以简单理解为一个shard group只包含一个shard,但对于企业版的多节点集群模式来讲,一个shard group可以包含不同节点上的不同shard,这使得influxdb可以保存更多的数据。
  • SHARD REPLICATION:这个描述了每个shard有几个副本。对于开源版来讲,只支持单副本,对于企业版来讲,每个shard可以冗余存储,这样可以避免单点故障。

关于SHARD DURATION

influxdb官方建议,如果保留期限低于2天,shard duration设置为1h,如果保留期限位于2天到6个月之间,shard duration设置为1d,如果保留期限大于6个月,shard duration设置为7d,

创建retention policy

当执行create database时,会创建一个名叫autogen的retention policy,它会永久保留数据

> create database testdb
> use testdb
Using database testdb
> show retention policies
name    duration shardGroupDuration replicaN default
----    -------- ------------------ -------- -------
autogen 0s       168h0m0s           1        true

可以通过create retention policy的命令来创建一个新的retention policy

CREATE RETENTION POLICY "one_month" ON "testdb" DURATION 30d REPLICATION 1 DEFAULT

然后再查看一下retention policy

> show retention policies
name      duration shardGroupDuration replicaN default
----      -------- ------------------ -------- -------
autogen   0s       168h0m0s           1        false
one_month 720h0m0s 24h0m0s            1        true

需要注意的是,如果切换数据库的retention policy的话,已有的数据会被全部删掉。

更新retention policy

如果想修改retention policy的数据保留时间,可以使用alter retention policy语句

> alter retention policy autogen on mydb duration 30d  REPLICATION 1  SHARD DURATION 1d default> show retention policies
name    duration shardGroupDuration replicaN default
----    -------- ------------------ -------- -------
autogen 720h0m0s 24h0m0s           1        true

更新retention policy的保留时间的话,数据不会全部丢失。

retention policy最佳实践

关于retention policy,最好的方式是在创建数据库时就考虑清楚数据要保留多长时间。简单来讲,可以通过下面的方式创建一个保留30天的数据库,并且,influxdb还会自动生成一个比较合理的shardGroupDuration,此时是1天。

> create database testdb2 with duration 30d
> show retention policies on testdb2
name    duration shardGroupDuration replicaN default
----    -------- ------------------ -------- -------
autogen 720h0m0s 24h0m0s            1        true

参考资料

https://docs.influxdata.com/influxdb/v1.7/query_language/database_management/

https://stackoverflow.com/questions/41620595/how-to-set-default-retention-policy-and-duration-for-influxdb-via-configuration

https://dzone.com/articles/simplifying-influxdb-shards-and-retention-policies

https://stackoverflow.com/questions/39878027/influxdb-whats-shard-group-duration

influxdb的retention policy相关推荐

  1. influxDb 异常:{“error“:“retention policy not found: default“}

    第一次用influxDb,通过java客户端插入数据的时候总是报这个异常,后来发现命令行中插入数据是好的,但是客户端就是不行,后来检查代码发现是自己的配置中保留策略名写错了 . 修改代码:将RETEN ...

  2. ERR: partial write: points beyond retention policy dropped=10000

    背景 环境 influxdb 1.7.1 特别说明: 官方还原方法: https://docs.influxdata.com/influxdb/v1.7/administration/backup_a ...

  3. CONFIGURE RETENTION POLICY

    SQL> show parameter control_file_record_keep_time NAME TYPE VALUE ------------------------------- ...

  4. Rman备份的保留策略(retention policy)

    什么是备份的保留策略(retention policy) 保留策略就是指某份备份是否要保留以及保留多久.可以使用configure retention policy命令来创建一个一致的.自动的备份保留 ...

  5. RMAN备份概念_关于备份保留策略(RETENTION POLICY)

    可以使用CONFIGURE RETENTION POLICY命令来创建一个持续的和自动备份保留策略. 当备份保留策略生效时,RMAN根据CONFIGURE命令指定的标准将数据文件或控制文件的备份视为过 ...

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

    InfluxDB每秒可以处理成千上万条数据,要将这些数据全部保存下来会占用大量的存储空间,有时我们可能并不需要将所有历史数据进行存储,因此,InfluxDB推出了数据保留策略(Retention Po ...

  7. 时序数据库连载系列: 时序数据库一哥InfluxDB之存储机制解析

    InfluxDB 的存储机制解析 本文介绍了InfluxDB对于时序数据的存储/索引的设计.由于InfluxDB的集群版已在0.12版就不再开源,因此如无特殊说明,本文的介绍对象都是指 InfluxD ...

  8. windows版influxDB安装与配置

    一.下载链接https://portal.influxdata.com/downloads,选windows版 二.解压到安装盘,目录如下 三.修改conf文件,代码如下,直接复制粘贴(1.4.2版本 ...

  9. influxdb tsm文件_利用InfluxDB+Grafana搭建Flink on YARN作业监控大屏

    Flink 从入门到精通 系列文章 前言 虽然笔者之前写过基于Prometheus PushGateway搭建Flink监控的过程,但是在我们的生产环境中,使用的是InfluxDB.InfluxDB是 ...

  10. InfluxDB基本概念和操作

    InfluxDB基本概念 1.数据格式 在 InfluxDB 中,我们可以粗略的将要存入的一条数据看作一个虚拟的 key 和其对应的 value(field value).格式如下: 1 cpu_us ...

最新文章

  1. javascript-XMLHttpRequest
  2. poj1740 A New Stone Game
  3. Go gin静态文件的使用、自定义模板渲染器
  4. 5款最适合新手的包管理器
  5. Ubuntu(20.04):设置DNS
  6. cdr 2021 卸载
  7. 【建议收藏】1000套HTML静态网页设计期末大作业 (HTML+CSS+JS)
  8. 画流程的软件 yEd 不错, 支持中
  9. python这个怎么读-python怎么读(python怎么读中文)
  10. 小米路由器R3G 原厂BootLoader,eeprom备份
  11. 电影推荐系统(数据预处理+模型训练+预测)
  12. win11 自带远程桌面使用(包含非局域网使用以及win11升级为专业版)
  13. 转载05:全能程序员学习路线
  14. H.323 and Associated Protocols
  15. linux静默安装oracle11g数据库教程
  16. x98air2+android+升级,【转】台电x98 3G 平板刷机、升级、ROOT详解及教程
  17. java计算机毕业设计网上快捷购物系统源码+系统+数据库+lw文档+mybatis+运行部署
  18. 精灵鼠从入口到出口的最少减少速度
  19. C++及数据结构复习笔记(十二)(列表)
  20. js 点击切换背景图片

热门文章

  1. 细胞穿膜肽( CPPs)偶联肽核酸H region-PNA|Arg-PNA|Lys-PNA|Cationic-PNA|47Tat57-PNA的特性
  2. 云流化是什么?对软件企业有什么好处?
  3. HTML学生个人网站作业设计:动漫网站设计——蜡笔小新(3页) HTML+CSS+JavaScript 简单DIV布局个人介绍网页模板代码 DW学生个人网站制作成品下载
  4. 百度导航SDK升级适配 Anroid 11骑步导航闪退
  5. JS怎么唤起百度地图
  6. java获取手机型号
  7. PTA-特立独行的幸福(简单C语言)
  8. java openoffic linux_Linux下安装OpenOffice
  9. 《机器学习实战》加利福尼亚州房屋价格 数据结构与可视化
  10. 全球及中国回转窑扫描仪行业发展动态与前景趋势预测报告2022-2028年