influxDB常用命令

概念

https://jasper-zhang1.gitbooks.io/influxdb/content/Concepts/key_concepts.html

名词解释

influxDB中的名词 传统数据库中的概念
database 数据库
measurement 数据库中的表
points 表里面的一行数据

Point由时间戳(time)、数据(field)、标签(tags)组成。

Point属性 传统数据库中的概念
time 每个数据记录时间,是数据库中的主索引(会自动生成)
fields 各种记录值(没有索引的属性)也就是记录的值:温度, 湿度
tags 各种有索引的属性:地区,海拔

启动命令行

# 输入命令
influx
# 或者
/usr/bin/influx

常用命令

connect <host:port>   连接到指定的另一个节点主机:端口
auth                  提示输入用户名和密码
pretty                切换json格式的pretty print
chunked               打开来自服务器的分块响应
chunk size <size>     设置分块响应的大小。设置为0可重置为默认的分块大小
use <db_name>         设置使用当前数据库
format <format>       指定服务器响应的格式: json, csv, or column
precision <format>    指定时间戳的格式: rfc3339, h, m, s, ms, u or ns
consistency <level>   设置写入一致性级别: any, one, quorum, or all
history               查看命令历史记录
settings              打印当前的设置
clear                 清除数据库或保留策略等设置。运行"clear"以寻求帮助
exit/quit/ctrl+d      终止infuxm命令行交互
show databases        查看所有数据库名
show series           查看series信息
show measurements     查看measurements信息
show tag keys         查看tag信息
show field keys       查看字段信息
help                  获取帮助

数据库操作

 # 创建数据库
 CREATE DATABASE mytestdb
 # 查看已存在的数据库 
 SHOW DATABASES
 # 使用选择数据库
 USE mytestdb
 # 显示该数据库中的表
 SHOW MEASUREMENTS
 # 删除表
 DROP MEASUREMENT "measurementName"
 # 删除数据库
 DROP database mytestdb

创建数据库策略

# 创建策略
CREATE RETENTION POLICY "rp_name" ON "db_name" DURATION 30d REPLICATION 1 DEFAULT
# 修改策略
ALTER RETENTION POLICY "rp_name" ON db_name" DURATION 3w DEFAULT
# 删除策略
DROP RETENTION POLICY "rp_name" ON "db_name"
  1. rp_name:策略名
  2. db_name:具体的数据库名
  3. 30d:保存30天,30天之前的数据将被删除
    它具有各种时间参数,比如:h(小时),w(星期)
  4. REPLICATION 1:副本个数,这里填1就可以了
  5. DEFAULT 设为默认的策略

删与改

在InfluxDB中并没有提供数据的删除与修改方法。
不过我们可以通过数据保存策略(Retention Policies)来实现删除。

数据写入

  • 格式
<measurement>[,<tag-key>=<tag-value>...] <field-key>=<field-value>[,<field2-key>=<field2-value>...] [unix-nano-timestamp]
  • 示例
INSERT cpu,host=serverA,region=us_west value=0.64

这样一个measurement为cpu,tag是hostregionvalue值为0.64的数据点被写入了InfluxDB中。

数据查询

  • 格式
SELECT <field_key>[,<field_key>,<tag_key>] FROM <measurement_name>[,<measurement_name>]
  • 示例
SELECT * FROM "cpu"
# golang样式的正则
SELECT * FROM /.*/ LIMIT 1
SELECT * FROM "cpu" WHERE "value" > 0.9

支持的操作符

符号 含义
= 等于
!= 不等于
<> 不等于
> 大于
< 小于
>= 大于等于
<= 小于等于

常用函数

函数名 含义
COUNT 返回非空字段值得数目
DISTINCT 返回field value的不同值列表。
INTEGRAL 返回字段曲线下的面积,即是积分。
MEAN 返回字段的平均值
MEDIAN 返回排好序的字段的中位数。
MODE 返回字段中出现频率最高的值。
SPREAD 返回字段中最大和最小值的差值。
STDDEV 返回字段的标准差。
SUM 返回字段值的和。
BOTTOM 返回最小的N个field值。
FIRST 返回时间戳最早的值
LAST 返回时间戳最近的值
MAX 返回最大的字段值
MIN 返回最小的字段值
PERCENTILE 返回较大百分之N的字段值
SAMPLE 返回N个随机抽样的字段值。SAMPLE()使用reservoir sampling来生成随机点。
TOP 返回最大的N个field值。
CUMULATIVE_SUM 返回字段实时前序字段值的和。
DERIVATIVE 返回字段的相邻两个点的变化率。