influxdb2的使用

本文介绍了Influxdb2的下载安装、数据库初始化、基础操作,包括添加、查询和删除数据。通过`influx`命令行工具,展示了如何使用Flux语法进行数据读写。此外,还解释了Influxdb中的核心概念,如bucket、organization、measurement、tag、field等,以及数据的存储机制。文章还提到了权限管理、数据备份与恢复、任务管理和查询优化等高级功能。
摘要由CSDN通过智能技术生成
  1. Influxdb2****
    1. Influxdb2入门****

在进行influxdb2的真正学习之前,我们先完成必须的下载安装,和基础的添加、查询、删除数据。

      1. 下载安装

wget https://dl.influxdata.com/influxdb/releases/influxdb2-2.0.8.x86_64.rpm

sudo yum localinstall influxdb2-2.0.8.x86_64.rpm

    1. 2 配置初始化信息

安装好influxdb2后,直接启用运行influxd命令启动。

然后使用influxsetup命令初始化influxdb数据库,如图完成数据库配置

配置清单

Username

root

Password

2342@@#@#

Organizationname

abc

Bucketname

test

如上就完成了数据库的初始化,我们可以使用auth命令查看配置信息是否已经生效,查看token信息,如果不存在任何auth信息,使用influx命令是无法连接到influxd,完成数据的操作。通过token信息我们也可以直接在程序中利用该token信息直接对influxdb进行操作

      1. 基本操作

对influxdb操作,最基本的是通过内置的influx命令完成,或者在程序中使用httpapi完成操作,这里以infux为例,简单介绍下读数据、写数据、和删除数据的基础操作,形成基本认识。

Influxquery‘query_command’

查看数据,使用内置的flux语法进行查询

Influxwrite

写数据,可以通过命令行的形式或者导入文件的方式进行数据的写入

Influxdelete

删除数据,最常用的是删除指定时间范围之内的数据

–bucket参数指定待删除数据归属的bucket

–start指定删除数据的起始时间

–stop指定删除数据的结束时间

–predicate对被删除的数据进行过滤

        1. 概念解析

在经过这一节,我们必须理解几个相对抽象的概念,才能更好的应用操作,这里仅给出便于理解的概念

bucket

桶,influxdb中存储时间序列数据的指定位置,每个bucket都有一个数据存储周期配置(可配置为无限),超过该保留时间的数据自动被清除,每个bucket必须属于一个organizations。

Bucket类比于关系数据库中的database

organization

组织,org是一组用户、任务、bucket、dashboard的抽象容器概念

measurement

Measurement类似于关系数据库中表的概念

Point

Point类似于关系数据库中的一行数据 ,一个point由tag 、timestamp、field组合的数据

        1. 插入数据

通过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. 查询数据
          1. 查询1

influx query ’

from(bucket:“test”)

|> range(start:0) ’

from函数指定查询的bucket

range指定查询的时间范围,这里根据插入的时间戳得到对应的秒数,stop不填写为到当前时间点

          1. 查询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

        1. 删除数据

influx delete

-o abc

–bucket test

–start 1970-01-01T00:00:00Z

–stop $(date +“%Y-%m-%dT%H:%M:%SZ”)

–predicate ‘_measurement=“mem”’

    1. Influxdb2基础****
      1. 配置文件
        1. 启动参数

Influxdb2不需要特定的配置参数即可以启动,可以完全做到开箱可用,非常方便,但是在实际项目中,我们还是需要对inflxdb2进行一些项目定制化的配置,以适配具体的业务。

Influxdb2中的启动参数,可以有三种方式配置,三种方式从上到下依次优先级降低:

  1. Influxd的启动参数
  2. 设置系统环境变量
  3. 配置文件加载

在系统中配置环境变量INFLUXD_CONFIG_PATH,可以将我们的个人配置文件放到指定目录,并且配置文件支持yaml、json、toml三种格式,在配置文件中我们可以指定请求的长度、加解密信息,以及其他数据存储路径等内容。

export INFLUXD_CONFIG_PATH=/path/to/custom/config/directory

        1. 数据配置

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

授权信息存储等

      1. 数据概念
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值