- Influxdb2****
- Influxdb2入门****
在进行influxdb2的真正学习之前,我们先完成必须的下载安装,和基础的添加、查询、删除数据。
-
-
- 下载安装
-
wget https://dl.influxdata.com/influxdb/releases/influxdb2-2.0.8.x86_64.rpm
sudo yum localinstall influxdb2-2.0.8.x86_64.rpm
-
- 2 配置初始化信息
安装好influxdb2后,直接启用运行influxd命令启动。
然后使用influxsetup命令初始化influxdb数据库,如图完成数据库配置
配置清单
Username
root
Password
2342@@#@#
Organizationname
abc
Bucketname
test
如上就完成了数据库的初始化,我们可以使用auth命令查看配置信息是否已经生效,查看token信息,如果不存在任何auth信息,使用influx命令是无法连接到influxd,完成数据的操作。通过token信息我们也可以直接在程序中利用该token信息直接对influxdb进行操作
-
-
- 基本操作
-
对influxdb操作,最基本的是通过内置的influx命令完成,或者在程序中使用httpapi完成操作,这里以infux为例,简单介绍下读数据、写数据、和删除数据的基础操作,形成基本认识。
Influxquery‘query_command’
查看数据,使用内置的flux语法进行查询
Influxwrite
写数据,可以通过命令行的形式或者导入文件的方式进行数据的写入
Influxdelete
删除数据,最常用的是删除指定时间范围之内的数据
–bucket参数指定待删除数据归属的bucket
–start指定删除数据的起始时间
–stop指定删除数据的结束时间
–predicate对被删除的数据进行过滤
-
-
-
- 概念解析
-
-
在经过这一节,我们必须理解几个相对抽象的概念,才能更好的应用操作,这里仅给出便于理解的概念
bucket
桶,influxdb中存储时间序列数据的指定位置,每个bucket都有一个数据存储周期配置(可配置为无限),超过该保留时间的数据自动被清除,每个bucket必须属于一个organizations。
Bucket类比于关系数据库中的database
organization
组织,org是一组用户、任务、bucket、dashboard的抽象容器概念
measurement
Measurement类似于关系数据库中表的概念
Point
Point类似于关系数据库中的一行数据 ,一个point由tag 、timestamp、field组合的数据
-
-
-
- 插入数据
-
-
通过write命令写入如下数据
influx write -b test’
mem,host=host1 used_percent=44.23 1577836800000000000
mem,host=host2 used_percent=72.01 1557836800000000000
mem,host=host1 used_percent=42.61 1537836810000000000
mem,host=host2 used_percent=82.98 1477844810000000000
mem,host=host1 used_percent=46.40 157783880000000000
mem,host=host2 used_percent=43.77 157678367820000000000
‘
写入的bucket为test中的measument为mem,其中tag为host,field数据为used_percent。
类比到mysql,即往数据库test中的表men中写入内存占用数据6条,且通过host列代表不同的主机。
-
-
-
- 查询数据
- 查询1
- 查询数据
-
-
influx query ’
from(bucket:“test”)
|> range(start:0) ’
from函数指定查询的bucket
range指定查询的时间范围,这里根据插入的时间戳得到对应的秒数,stop不填写为到当前时间点
-
-
-
-
- 查询2
-
-
-
influx query ’
from(bucket:“test”)
|> range(start:0)
|> filter( fn: ® => r.host == “host1”) ’
通过filter进行过滤host1的内存占用情况,fn为自定义的函数fn:®中的r为传入给fn的参数,代表一行数据,=>之后为定义的fn函数内容,和如下的查询等价:
influx query ’
fn****=********® => r.host == “host1”****
from(bucket:“test”)
|> range(start:0)
|> filter(fn) ’
需要注意filter参数只能接受fn的参数为r的函数,如果将r修改成其他形参则会报错。
以上为使用filter函数,指定measurement为mem且host为host2
-
-
-
- 删除数据
-
-
influx delete
-o abc
–bucket test
–start 1970-01-01T00:00:00Z
–stop $(date +“%Y-%m-%dT%H:%M:%SZ”)
–predicate ‘_measurement=“mem”’
-
- Influxdb2基础****
- 配置文件
- 启动参数
- 配置文件
- Influxdb2基础****
Influxdb2不需要特定的配置参数即可以启动,可以完全做到开箱可用,非常方便,但是在实际项目中,我们还是需要对inflxdb2进行一些项目定制化的配置,以适配具体的业务。
Influxdb2中的启动参数,可以有三种方式配置,三种方式从上到下依次优先级降低:
- Influxd的启动参数
- 设置系统环境变量
- 配置文件加载
在系统中配置环境变量INFLUXD_CONFIG_PATH,可以将我们的个人配置文件放到指定目录,并且配置文件支持yaml、json、toml三种格式,在配置文件中我们可以指定请求的长度、加解密信息,以及其他数据存储路径等内容。
export INFLUXD_CONFIG_PATH=/path/to/custom/config/directory
-
-
-
- 数据配置
-
-
Influxdb2中的配置数据相关的存储文件在不同的系统下可能具有一定的差异,在linux下默认配置和数据保存在~/.influxdbv2/目录下
~/.influxdbv2/engine/
Influxdb时间序列化数据存储的位置,
data目录存储时间结构合并树文件(time-Structured Merge
Tree ,TSM)
Wal(Write Ahead Log)存储预写日志的存储目录
通过export INFLUXD_ENGINE_PATH=~/.influxdbv2/engine迁移该目录
或者在json配置文件中添加:
“engine-path”: “/users/user/.influxdbv2/engine”
~/.influxdbv2/influxd.bolt
非时间序列数据的基于文件的键值存储,例如 InfluxDB user、oards、task等
在json配置文件中指定
“bolt-path”: “/users/user/.influxdbv2/influxd.bolt”
~/.influxdbv2/configs
授权信息存储等
-
-
- 数据概念
-