InfluxDB摘要

来源:互联网 发布:excel表删除重复数据 编辑:程序博客网 时间:2024/05/21 06:45
  1. retention policy
    存储策略,用于设置数据的保存时间,以及集群中的的副本保存个数。默认为永久,副本个数为1。用户可以自己设置。influxDB会定期清除过期的数据。

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

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

  4. 常见操作

元数据查询show MEASUREMENTSSHOW 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 namefield_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.67cpu_load_short,host=server02,region=us-west value=0.55 1422568543702900257cpu_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 时间戳格式。
创建 RPCREATE RETENTION POLICY two_hours ON food_data DURATION 2h REPLICATION 1 DEFAULT这里将 two_hours 设置成了默认保存策略,存入 food_data 中的数据如果没有明确指定 RP 将会默认采用此策略,数据保存时间为 2 小时,副本数为 1
创建 CQCREATE 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 = 1GROUP 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
原创粉丝点击