InfluxDB学习笔记

InfluxDB

  • 概念:InfluxDB是一种时序数据库:按时间顺序写入数据,并按照一定时间策略保留数据的数据库

1. Database: 数据库

含义

和关系数据库中的“数据库”的概念类似

操作

  • 创建:
CREATE DATABASE myDb 
  • 删除:
DROP DATABASE myBb
  • 查看:
SHOW DATABASES

2. Measurement: 测量

含义

和关系数据库中“表”的概念类似

Measurement包含的一些概念

  • time:时间字段,必须,每个Measurement都有,也是InfluxBD保存、查询、清除历史数据的基础
  • tag:标签,可选,加了索引,因此作为筛选条件查询较快。各个key不同value的组合叫做tag set
    • tag key:string
    • tag value:string
  • field:字段,必须,未加索引。各个key不同value的组合叫做field set
    • field key:string
    • field value:string, float, integer, boolean

操作

  • 创建:InfluxDB是schema-free的,无需预先定义,直接写入数据就可以创建测量。但是后面写入的数据要与之前的类型一致,否则报错
  • 删除:
DROP MEASUREMENT myMeas 
  • 查看:
SHOW MEASUREMENTS

3. Retention policy: 数据保留策略

含义

表示数据保存的策略,包含了数据保留时长、数据时间跨度、数据备份数等参数。

InfluxDB在写数据的时候,是将一定时间的数据写在一个shard(也就是一个文件)中的。
根据写入时指定的Retention policy,会给shard文件设置保存数据的起始、终止时间范围,以及设定文件过期时间。
文件过期后即被删除。

一个Database可以设置多个Retention policy,其中必须有个一默认的。
在插入数据的时候可以指定写入的Retention policy名称: INSERT myRp.myMeas...否则是使用默认的。

Retention policy包含的一些概念

  • duration:保留时长
  • replication:备份数量
  • shardGroupDuration:表示一个shard文件所存的数据的时间跨度

shardGroupDuration的取值:

image.png

终止时间 = 起始时间 + shardGroupDuration

文件过期时间 = 终止时间 + duration

操作

  • 创建:
CREATE RETENTION POLICY myRp ON myDb DURATION 1d REPLICATION 1 DEFAULT
  • 删除:
DROP RETENTION POLICY myRp ON myDb
  • 查看:
SHOW RETENTION POLICIES ON myDb
image.png

4. 数据操作

  • 写入:
INSERT myMeas, tag1=t1,tag2=t2 field1=value1, field2=value2 unix-nano-timestamp
  • 查询:
SELECT * FROM myMeas WHERE xxx
  • 删除:
DELETE FROM myMeas WHERE xxx
  • 修改:同INSERT只要tag set和timestamp相同就会覆盖fields

注:InfluxBD的使用场景是时序写入与查询,尽量不要人为地去删除和修改数据

5. Continuous query(CQ): 连续查询

含义

是InfluxDB内置的一种机制,可以自动地、连续地对某一个MEASUREMENT中的数据进项查询和处理,并写入另一张表中

操作

  • 创建:
CREATE CONTINUOUS QUERY myCq ON myDb
BEGIN
  SELECT mean("value") INTO "myRp_min". "myMeas_min" FROM "myMeas" GROUP BY time(1m)
END

表示将在myDb上建立一个名为myCq的CQ,将myMeas中的数据按照1min维度聚合,求出每分钟的平均值,写入以myRp_min为Retention policy的MEASUREMENT: myMeas_min中。这个例子的作用是,比如写入InfluxDB的源数据是s级的,可以将其保留策略设为1天。而可以吧采样后的min级数据的保留策略设为1周。这样就可以实现用精度换存储空间的功能。

  • 删除:
DROP CONTINUOUS QUERY myCq ON myDb
  • 查看:
SHOW CONTINUOUS QUERIES
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 什么是InfluxDB? InfluxDB介绍 InfluxDB是一款用Go语言编写的开源分布式时序、事件和指标数...
    BilyLuo阅读 3,332评论 0 18
  • 最近这段时间在使用influxdb,抽空翻译了一下配置文件。有不足的地方请指正。因为简书默认markdown编辑器...
    wangrui927阅读 4,318评论 0 4
  • InfluxDB 是一个时间序列数据库(TSDB), 被设计用来处理高写入、高查询负载,是 TICK 的一部分。 ...
    jouyouyun阅读 1,223评论 0 0
  • 1. 简述 时间序列数据:从定义上来说,就是一串按时间维度索引的数据。 时序数据库(TSDB)特点:持续高并发写入...
    楚_kw阅读 113,166评论 4 26
  • 2019-1-31周四 天气 晴 气温-6-1摄氏度 今天是儿子的生日,忙碌着筹备饭菜,加上工作琐事缠绕,实在没抽...
    不变的军魂阅读 83评论 0 1