InfluxDB摘要

  1. retention policy
    存储策略,用于设置数据的保存时间,以及集群中的的副本保存个数。默认为永久,副本个数为1。用户可以自己设置。influxDB会定期清除过期的数据。

  2. series
    influxDB中数据的集合,在同一个database中,retention policy、measurement、tag sets完全相同的数据同属于一个series,同一个series的数据在物理上会按照时间顺序排列存储在一起。
    series的key为measurement+所有tags的序列化字符串。
    同一个序列,如果时间戳相同,则会更新已经存在的数据

  3. 删除
    influxDB支持对数据的删除操作,采用了标记删除的键的方式来进行操作,等到需要进行压缩合并时,再真正意义上地删除这些数据。

  4. 常见操作

元数据查询
show MEASUREMENTS
SHOW TAG KEYS FROM "measurement_name"
SHOW TAG VALUES FROM "measurement_name" WITH KEY = "tag_key"
普通数据查询
SELECT value FROM "cpu_usage" WHERE host='server01' AND time > now() - 1h
  1. 数据格式
measurement[,tag_key1=tag_value1...] field_key=field_value[,field_key2=field_value2] [timestamp]

measurement:metric name
field_key,field_value:用来存储数据,存储时不会进行索引,如果使用field_key进行过滤,则需要遍历一遍所有数据。
tag_key,tag_value:会进行索引,方便查询时进行条件过滤
  1. API

通过 HTTP 访问 influxdb。

语法上是一种类似于 SQL 的命令,官方称为 InfluxQL。

创建数据库
curl -POST http://localhost:8086/query --data-urlencode "q=CREATE DATABASE mydb"
插入数据

curl -i -XPOST 'http://localhost:8086/write?db=mydb' --data-binary 'cpu_load_short,host=server01,region=us-west value=0.64 1434055562000000000'
cpu_load_short 是 measurement,host 和 region 是 tags-key,value 是 field-key。

curl -i -XPOST 'http://localhost:8086/write?db=lbs' --data-binary 'userlbs userId="80502",deviceId="dd727a62d5e60db5f1bf28cb7b805696",latitude="31.325618396458715",longitude="120.72951502597091" 1476255696616'

时间单位为纳秒

多条数据时,用换行区分每条数据

curl -i -XPOST 'http://localhost:8086/write?db=mydb' --data-binary 'cpu_load_short,host=server02 value=0.67
cpu_load_short,host=server02,region=us-west value=0.55 1422568543702900257
cpu_load_short,direction=in,host=server01,region=us-west value=2.0 1422568543702900257'
读取数据

curl -GET 'http://localhost:8086/query' --data-urlencode "db=mydb" --data-urlencode "epoch=s" --data-urlencode "q=SELECT value FROM cpu_load_short WHERE region='us-west'"
同时查询多条数据时,以分号分隔

curl -G 'http://localhost:8086/query' --data-urlencode "db=mydb" --data-urlencode "epoch=s" --data-urlencode "q=SELECT value FROM cpu_load_short WHERE region='us-west';SELECT count(value) FROM cpu_load_short WHERE region='us-west'"
这里 --data-urlencode "epoch=s" 会使返回的时间戳为 unix 时间戳格式。
创建 RP

CREATE RETENTION POLICY two_hours ON food_data DURATION 2h REPLICATION 1 DEFAULT
这里将 two_hours 设置成了默认保存策略,存入 food_data 中的数据如果没有明确指定 RP 将会默认采用此策略,数据保存时间为 2 小时,副本数为 1
创建 CQ

CREATE CONTINUOUS QUERY cq_5m ON food_data BEGIN SELECT mean(website) AS mean_website,mean(phone) AS mean_phone INTO food_data."default".downsampled_orders FROM orders GROUP BY time(5m) END
这里创建了一个 CQ,每个5分钟将 two_hours.orders 中的数据计算5分钟的平均值后存入 default.downsampled_orders 中,default 这个 RP 中的数据是永久保存的。
WHERE

查询时指定查询的限制条件,例如查询最近1小时内 host_id=1 的机器的 cpu 数据。

SELECT value FROM cpu_load WHERE time > now() - 1h and host_id = 1
GROUP BY

类似于 SQL 中的语法,可以对细粒度数据进行聚合计算,例如查询最近1小时内 host_id=1 的机器的 cpu 的数据,并且采样为每5分钟的平均值。

SELECT mean(value) FROM cpu_load WHERE time > now() - 1h and host_id = 1 GROUP BY time(5m)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值