时间序列数据库 influxDB 常见操作与保存策略

时间序列数据库:
1,时间序列数据库是指对带时间戳或时间序列数据优化的数据库。
2,时间序列数据库专门用于处理带时间戳的指标和事件或测量,随时间跟踪,监控,下采样和聚合的度量或事件
3,常规数据的时间序列数据的主要区别在于,您随时都会询问有关它的问题,可以是服务器指标,应用程序性能监控,网络数据,传感器数据,事件,点击,市场交易以及许多其他类型的分析数据
4,TSDB针对测量随时间的变化进行了优化,底层平台需要不断发展以支持这些新工作负载 - 更多数据点,更多数据源,更多监控,更多控制,一切都有或将有传感器,公司内外的一切都在发出的指标和事件或时间序列数据流
5,时间序列数据库,通常会在很长一段时间内请求数据摘要。这需要通过一系列数据点来执行一些计算,对于分布式密钥值存储,这种工作负载很难优化。TSDB针对此用例进行了优化,可在数月的数据内提供毫秒级查询时间
influxDB 操作提供了三种方式:
1)客户端命令行方式
2)HTTP API接口
3)各语言API库
以下使用客户端命令的方式:
对于数据库操作
# 查看所有的数据库
show databases;
#创建数据库!
create database test;
#删除数据库
drop database test;
#使用数据库
use xk_name;
对于表操作
# 显示所有的表
SHOW MEASUREMENTS;
#InfluxDB中没有显式的新建表的语句,只能通过insert数据的方式来建立新表
#disk_free是表名,hostname=server01是tag,属于索引,value=xx是field,这个可以随意写,随意定义。
#InfluxDB规定格式,首先是表名,后面是tags,然后是field,最后是时间戳。tags、field和时间戳三者之间以空格相分隔
insert disk_free,hostname=server01 value=442221834240i 1435362189575692182;
influxDB 常见字段与说明:现实之中的influx 都是一个 value 字段!
# influxdb的数据都有一列名为time的列,里面存储UTC时间戳
tag  #索引字段 ,根据这个字段查询会很快,如果不根据这个字段查询相当于遍历表。
field key,field value,field set  #字段键key,值value 两者合并称之为 set
field key,      #它们为string类型
field value     #可以为string,float,integer或boolean类型
retention policy   #指数据保留策略,默认的autogen,它表示数据一直保留永不过期,副本数量为1
series     #共享同一个retention policy,measurement以及tag set的数据集合
point      #point则是同一个series中具有相同时间的field set,points相当于SQL中的数据行
influx 数据保存策略
1,InfluxDB的数据保留策略(RP) 用来定义数据在InfluxDB中存放的时间,或者定义保存某个期间的数据。
2,一个数据库可以有多个保留策略,但每个策略必须是独一无二的。
3,InfluxDB本身不提供数据的删除操作,因此用来控制数据量的方式就是定义数据保留策略。
4,数据保留策略的目的是让InfluxDB能够知道可以丢弃哪些数据,从而更高效的处理数据
# 对于 数据库 mydb 创建一个策略 '2_hours' duration(持续时间)为2小时,副本为1,设置为默认策略。
create retention policy "2_hours" on "mydb" duration 2h replication 1 default
# 对于数据库 mydb 展示出所有的策略
show retention policies on mydb;
# 修改策略 2_hours 为默认策略 ,持续时间为 2h
alter retention policy "2_hours" on "mydb" duration 4h default;
# 查看使用 default 策略的 cpu 表信息
select * from "default".cpu limit 2

二,HTTP API接口说明
在配置文件/etc/influxdb/influxdb.conf之中,定义web端口与ip <IP>:8083 就可以访问


 


posted @ 2018-08-25 21:13  十七楼的羊  阅读(2168)  评论(0编辑  收藏  举报