INFLUXDB-influxDB基础知识

0. 简介

InfluxDB是一个由InfluxData开发的开源时序型数据。它由Go写成,着力于高性能地查询与存储时序型数据。InfluxDB被广泛应用于存储系统的监控数据,IoT行业的实时数据等场景。
本次用InfluxDB来存储监控数据。
具体安装教程见官网influxdb官网教程
influxdb中文教程
`

1. 基本概念

概念 MYSQL InfluxDB
数据库 database database
table measurement
column field
主键 可以自增主键,不能重复 timestemp(唯一主键)
索引 一个或者多个列设置为索引 tag(带索引的,非必须)
  • influx 启动
  • measurement 操作的表,假如不存在则直接创建一个
  • tag 仅仅支持字符类型
  • field 类型没有限制
  • points 表中的一行数据,由时间戳 time,数据field,索引tags组成
  • Telegraf(数据收集)+InfluxDB(数据存储)+Grafana(数据展示的图形界面,将influxDB数据可视化)经常一起使用
  • retention policy:数据存储策略 InfluxDB没有删除数据操作,规定数据的保留时间达到清除数据的目的,可以更改保留时间
  • tag sets: tags 在 InfluxDB 中会按照字典序排序,不管是 tagk 还是 tagv,只要不一致就分别属于两个 key,例如 host=server01,region=us-west 和 host=server02,region=us-west 就是两个不同的 tag set。
  • Series Series 相当于是 InfluxDB 中一些数据的集合,在同一个 database 中,retention policy、measurement、tag sets 完全相同的数据同属于一个 series,同一个 series 的数据在物理上会按照时间顺序排列存储在一起。
  • Shard 在 InfluxDB 中是一个比较重要的概念,它和 retention policy 相关联。每一个存储策略下会存在许多 shard,每一个 shard 存储一个指定时间段内的数据,并且不重复,例如 7点-8点 的数据落入 shard0 中,8点-9点的数据则落入 shard1 中。每一个 shard 都对应一个底层的 tsm 存储引擎,有独立的 cache、wal、tsm file。

具体命令如下:

[eqs@eqx_test ~]$ influx
Connected to http://localhost:8086 version 1.2.4
InfluxDB shell version: 1.2.4
#查看所以数据库
> show databases;
name: databases
name
----
_internal
sentinel_log
#使用特定的数据库
> use sentinel_log;
Using database sentinel_log
#查看所以的表
> show measurements;
name: measurements
name
----
sentinelInfo
sentinel_app
#查询一个表的一条数据,time为主键,其中app和resource为tag,其他的字段为field
> select * from sentinelInfo limit 1
name: sentinelInfo
time                app                                                               async blockQps count exceptionQps gmtCreate     gmtModified   passQps resource   resourceCode rt successQps timestamp
----                ---                                                               ----- -------- ----- ------------ ---------     -----------   ------- --------   ------------ -- ---------- ---------
1585555946175000000 com.alibaba.csp.sentinel.demo.spring.webmvc.WebMvcDemoApplication true  0        1     0            1585555946171 1585555946171 1       GET:/hello 519655111    97 1          1585555943000
#查看表中的tag(索引)字段
> show tag keys
name: sentinelInfo
tagKey
------
app
async
resource

name: sentinel_app
tagKey
------
async
#查看表中field 的key值
> show field keys
name: sentinelInfo
fieldKey     fieldType
--------     ---------
blockQps     integer
count        integer
exceptionQps integer
gmtCreate    integer
gmtModified  integer
passQps      integer
resourceCode integer
rt           float
successQps   integer
timestamp    integer

name: sentinel_app
fieldKey fieldType
-------- ---------
app      string
resource string  
#查看所有的保存策略(可以有多个,一个标识为default)
> show retention policies
name    duration shardGroupDuration replicaN default
----    -------- ------------------ -------- -------
autogen 0s       168h0m0s           1        true
#查看指定数据库的保存策略
#name: 名称 
#duration: 保留时间, 0表示永久保存 
#shardGroupDuration: shardGroup的存储时间,shardGroup是InfluxDB的一个基本储存结构,应该大于这个时间的数据在查询效率上应该有所降低。
#replicaN: 全称是REPLICATION,副本个数 default: 是否是默认策略

> show retention policies on "sentinel_log"
name    duration shardGroupDuration replicaN default
----    -------- ------------------ -------- -------
autogen 0s       168h0m0s           1        true
#更改默认保存策略的时间
> alter retention policy "autogen" on "sentinel_log" duration 30d default
#已经是最新的保存策略时间了
> show retention policies on "sentinel_log"
name    duration shardGroupDuration replicaN default
----    -------- ------------------ -------- -------
autogen 720h0m0s 168h0m0s           1        true
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章