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的取值:

InfluxDB学习笔记_第1张图片
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
InfluxDB学习笔记_第2张图片
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学习笔记)