Influxdb数据库(centos7)

这篇具有很好参考价值的文章主要介绍了Influxdb数据库(centos7)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Influxdb数据库

1、简介与使用场景

简介

InfluxDB是一个由InfluxData开发的开源时序型数据库,专注于海量时序数据的高性能读、高性能写、高效存储与实时分析等,在DB-Engines Ranking时序型数据库排行榜上排名第一:Influxdb数据库(centos7),数据库,时序数据库,Influxdb InfluxDB广泛应用于DevOps监控、IoT监控、实时分析等场景。除了具有成本优势的高性能读、高性能写、高存储率,InfluxDB还具有如下特点:

  1. 无系统环境依赖,部署方便。
  2. 无结构化(SchemaLess)的数据模型,灵活强大。
  3. 原生HTTP管理接口,免插件配置和免第三方依赖。
  4. 强大的类SQL查询语句的操作接口,学习成本低,上手快。
  5. 丰富的权限管理功能,精细到“表”级别。
  6. 丰富的时效管理功能,自动删除过期数据,自定义删除指标数据。
  7. 低成本存储,采样时序数据,压缩存储。
  8. 丰富的聚合函数,支持AVG、SUM、MAX、MIN等聚合函数。

使用场景

时序数据以时间作为主要的查询纬度,通常会将连续的多个时序数据绘制成线,制作基于时间的多纬度报表,用于揭示数据背后的趋势、规律、异常,进行实时在线预测和预警,时序数据普遍存在于IT基础设施、运维监控系统和物联网中。如:监控数据统计。每毫秒记录一下电脑内存的使用情况,然后就可以根据统计的数据,利用图形化界面(InfluxDB V1一般配合Grafana)制作内存使用情况的折线图;可以理解为按时间记录一些数据(常用的监控数据、埋点统计数据等),然后制作图表做统计。

2、安装

2.1、传统安装

  1. 下载Linux的安装包:https://dl.influxdata.com/influxdb/releases/influxdb-1.8.0_linux_amd64.tar.gz,或者直接执行
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.8.0_linux_amd64.tar.gz
  1. 推送到Linux系统上

  2. 解压缩

tar -zxf influxdb-1.8.0_linux_amd64.tar.gz 
  1. 查看目录结构
[root@bogon temp]# cd influxdb-1.8.0-1/
[root@bogon influxdb-1.8.0-1]# ll
drwxr-xr-x. 4 root root 41 412 2020 etc
drwxr-xr-x. 5 root root 41 412 2020 usr
drwxr-xr-x. 4 root root 28 412 2020 var
  • etc 主要用来存储 influxdb 的系统配置信息
  • usr 主要用来存储 influxdb 的操作相关脚本文件
  • var 主要用来存储 influxdb 的运行日志、产生数据和依赖库文件
  1. 启动influxdb
[root@bogon influxdb-1.8.0-1]# cd usr/bin/
[root@bogon bin]# ls
influx  influxd  influx_inspect  influx_stress  influx_tsm
[root@bogon bin]# ./influxd
  1. 验证启动成功
# 新开一个终端
[root@bogon ~]# cd /root/temp/influxdb-1.8.0-1/usr/bin/
[root@bogon bin]# ./influx -host 127.0.0.1 -port 8086
Connected to http://127.0.0.1:8086 version 1.8.0
InfluxDB shell version: 1.8.0

# 连接格式
influx -database '数据库名' -host '主机名' -port '端口号' -username 用户名 -password 密码

2.2、Docker安装

需要有Docker前置知识

可以看这篇文章:https://blog.csdn.net/qq_56517253/article/details/127281571

  1. 编写docker-compose.yml
# 这里的版本号要对应自己的docker版本
version: "3"

volumes:
  influxdb:
  
services:
  influxdb: 
    image: influxdb:1.7.8
    ports: 
        - '8086:8086'
    volumes:
      - influxdb:/root/influxdb/data
      #- $PWD/influxdb.conf:/root/influxdb/influxdb.conf
    environment:
      - INFLUXDB_ADMIN_USER=root
      - INFLUXDB_ADMIN_PASSWORD=root
      - INFLUXDB_DB=history
    restart: always
  1. 执行yml
# 本系统为centos7
# 1.更新依赖
[root@bogon influxdb]# yum install -y epel-release

# 2.安装docker-compose
[root@bogon influxdb]# yum install docker-compose

# 3.执行文件
[root@bogon influxdb]# docker-compose up
  1. 验证是否启动成功
[root@bogon bin]# docker ps
CONTAINER ID   IMAGE            COMMAND                  CREATED          STATUS          PORTS                                       NAMES
c1f8b1988283   influxdb:1.7.8   "/entrypoint.sh infl…"   50 seconds ago   Up 48 seconds   0.0.0.0:8086->8086/tcp, :::8086->8086/tcp   influxdb_influxdb_1

[root@bogon bin]# docker exec -it influxdb_influxdb_1 bash
root@c1f8b1988283:/# influx
Connected to http://localhost:8086 version 1.7.8
InfluxDB shell version: 1.7.8
>

3、客户端工具

DBeaver

4、相关概念

概念

  • database:数据库,针对不同应用的数据进行隔离
  • measurement:数据库中的表
  • points:表里的一行数据
  • Influxdb中独有的一些概念:Point由时间戳(time)、数据(field)和标签(tags)组成

库 database

​ 表 measurement

​ 数据 point = time(主键) + field(普通字段、存储数据) + tags(索引:加快查询速度)

​ time:主键,类似PrimaryKey

​ field:不经常查询的数据,可以直接存为 field

​ tags:索引字段

与Mysql对比

概念 Mysql Influxdb
数据库(同) database database
表(不同) table measurement
列(不同) column tag(带索引,非必须)、field(不带索引)、timestamp(唯一主键)

Point相当于传统数据库里的一行数据,如下表:

Point属性 传统数据库中的概念
time(时间戳) 每个数据的记录时间,是数据库中的主索引(自动生成)
fields(字段、数据) 各种记录值(没有索引的属性):温度、湿度…
tags(标签) 各种有索引的属性:地区、海拔…

注意:在influxdb中,字段必须存在。因为字段是没有索引的。如果使用字段作为查询条件,会扫描符合查询条件的所有字段值,性能不及tag。类比一下, fields相当于SQL的没有索引的列。tags是可选的,但是强烈建议你用上它,因为tag是有索引的,tags相当于SQL中的有索引的列。tag value只能是string类型。

类型说明

  • tag类型
    • tag都是string类型
  • field类型
    • 支持四种类型:int、float、string、boolean
类型 使用方式 实例
float 数字 id=21
int 数字i age=18i
boolean true/false buy=true
string “” | ‘’ email=“876606658@qq.com”

5、基本操作

5.1、库 database

# 显示所有库
show databases

# 创建库
create database <name>

# 选中库
user <database-name>

# 删除库
drop database <name>

# 清空当前上下文的库
clear database|db		# 取消当前选中的库

5.2、表 mesaurement

# 显示所有表
show measurements

# 删除表
drop measurement <name>

5.3、数据操作

插入数据

# 基本语法
insert <retention policy> measurement, tagKey=tagValue fieldKey=fieldValue timestamp
	1. insert + measurement + "," + tag=value,tag=value + " " + field=value,field=value
	2. tag与tag之间用逗号隔开,field与field之间用逗号隔开
	3. tag与field之间用空格隔开
	4. tag都是string类型,不需要引号
	5. field如果是string类型,需要用引号

# 举例
> insert user,name=bby,phone=13066586501 age=20i,'email'="876606658@qq.com" 

> show measurements
name: measurements
name
----
user	# 多了user表

注意:Influxdb是不允许手动删除数据的,只能根据保留策略自己删除

查询数据文章来源地址https://www.toymoban.com/news/detail-660407.html

# 测试数据
insert test,id=1 age=23,name="bby",address="shenyang"
insert test,id=2 age=24,name="zqj",address="changyuan"
insert test,id=3 age=20,name="zwj",address="zhoukou"
insert test,id=4 age=20,name="ctx",address="yanan"
insert test,id=5 age=21,name="zh",address="hanzhong"
insert test,id=6 age=22,name="zxd",address="ningbo"
insert test,id=7 age=22,name="zqx",address="zhengzhou"
insert test,id=8 age=23,name="dyz",address="nanyang"
insert test,id=9 age=24,name="hnb",address="taizhou"
  • 普通查询
# 查询所有数据
> select * from test
name: test
time                address   age id name
----                -------   --- -- ----
1692521949440454412 shenyang  23  1  bby
1692521971727361412 changyuan 24  2  zqj
1692521993268148981 zhoukou   20  3  zwj
1692522010600707668 yanan     20  4  ctx
1692522032293330114 hanzhong  21  5  zh
1692522050213472795 ningbo    22  6  zxd
1692522066004959288 zhengzhou 22  7  zqx
1692522086233138642 nanyang   23  8  dyz
1692522104458762739 taizhou   24  9  hnb

# 根据tag查询
> select * from test where id='5'
name: test
time                address  age id name
----                -------  --- -- ----
1692522032293330114 hanzhong 21  5  zh

# 根据field查询
> select * from test where "name"='zwj'		# 注意:name是保留字,需要+“”区分
name: test
time                address age id name
----                ------- --- -- ----
1692521993268148981 zhoukou 20  3  zwj

# 从单个measurement中查询所有的field,不查tag
> select *::field from test;
name: test
time                address   age name
----                -------   --- ----
1692521949440454412 shenyang  23  bby
1692521971727361412 changyuan 24  zqj
1692521993268148981 zhoukou   20  zwj
1692522010600707668 yanan     20  ctx
1692522032293330114 hanzhong  21  zh
1692522050213472795 ningbo    22  zxd
1692522066004959288 zhengzhou 22  zqx
1692522086233138642 nanyang   23  dyz
1692522104458762739 taizhou   24  hnb

# 查询时不能只查tag,至少要有一个field项
> select *::tag,age from test;
name: test
time                id age
----                -- ---
1692521949440454412 1  23
1692521971727361412 2  24
1692521993268148981 3  20
1692522010600707668 4  20
1692522032293330114 5  21
1692522050213472795 6  22
1692522066004959288 7  22
1692522086233138642 8  23
1692522104458762739 9  24

# 查询多张表 (没什么用,两个表依然是单独的数据)
> select * from "user",test
name: test
time                'email' address   age id name name_1 phone
----                ------- -------   --- -- ---- ------ -----
1692521949440454412         shenyang  23  1  bby         
1692521971727361412         changyuan 24  2  zqj         
1692521993268148981         zhoukou   20  3  zwj         
1692522010600707668         yanan     20  4  ctx         
1692522032293330114         hanzhong  21  5  zh          
1692522050213472795         ningbo    22  6  zxd         
1692522066004959288         zhengzhou 22  7  zqx         
1692522086233138642         nanyang   23  8  dyz         
1692522104458762739         taizhou   24  9  hnb         

name: user
time                'email'          address age id name name_1 phone
----                -------          ------- --- -- ---- ------ -----
1692518226057415102 876606658@qq.com         20          bby    13066586531

# 模糊查询
# 前缀匹配  like 'z%'
> select * from test where "name"=~/^z/
name: test
time                address   age id name
----                -------   --- -- ----
1692521971727361412 changyuan 24  2  zqj
1692521993268148981 zhoukou   20  3  zwj
1692522032293330114 hanzhong  21  5  zh
1692522050213472795 ningbo    22  6  zxd
1692522066004959288 zhengzhou 22  7  zqx

# 后缀匹配 like '%j'
> select * from test where "name"=~/j$/
name: test
time                address   age id name
----                -------   --- -- ----
1692521971727361412 changyuan 24  2  zqj
1692521993268148981 zhoukou   20  3  zwj

# 前后匹配 like '%q%'
> select * from test where "name"=~/q/
name: test
time                address   age id name
----                -------   --- -- ----
1692521971727361412 changyuan 24  2  zqj
1692522066004959288 zhengzhou 22  7  zqx
  • 聚合查询(聚合查询只能对field字段进行操作,不能对tag字段操作
# 非要对tag操作的话,子查询
> select distinct(id) from (select * from test)
name: test
time distinct
---- --------
0    1
0    2
0    3
0    4
0    5
0    6
0    7
0    8
0    9

# count() 统计某个 field 非空值的数量
> select count(age) from test
name: test
time count
---- -----
0    9

# distinct 去重
> select distinct(age) from test
name: test
time distinct
---- --------
0    23
0    24
0    20
0    21
0    22

# median() 求中位数
> select median(age) from test
name: test
time median
---- ------
0    22

# spread() 返回字段最小值与最大值的差值
select spread(age) from test
name: test
time spread
---- ------
0    4

# sum() 求和,字段必须是 int 或 float
> select sum(age) from test
name: test
time sum
---- ---
0    199

# bottom() 返回一个字段中最小的N个值
> select bottom(age,3) from test
name: test
time                bottom
----                ------
1692521993268148981 20
1692522010600707668 20
1692522032293330114 21

# first() 返回一个字段中时间最早的值
> select first(age) from test
name: test
time                first
----                -----
1692521949440454412 23

# last() 返回一个字段中时间最晚的值
> select last(age) from test
name: test
time                last
----                ----
1692522104458762739 24

# max() 求最大值
> select max(age) from test
name: test
time                max
----                ---
1692521971727361412 24
  • 分组聚合

5.4、保留策略

6、权限配置

到了这里,关于Influxdb数据库(centos7)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • CentOS7安装SQLServer数据库服务

    1.1、下载 Microsoft SQL Server 2019 Red Hat 存储库配置文件 1.2、安装 SQL Server 1.3、安装完成后,运行 mssql-conf setup,按照提示设置 SA 密码并选择版本。 1.4、完成配置后,验证服务是否正在运行 1.5、若要允许远程连接,请在 RHEL 的防火墙上打开 SQL Server 端口。 默认的 SQL Server 端口为

    2024年02月04日
    浏览(96)
  • CentOS7自动备份数据库到git

    虽然数据库没什么数据,但是有就是珍贵的啦,为了服务器什么的无了,所以还是要自动备份一下比较好。 Open备忘第一页 步骤 在Gitee(github)上创建一个 私有 仓库 Gitee(github)配置好服务器的ssh 在服务器一个好位置克隆仓库下来刚刚创建的私有仓库 在服务器写脚本 : 为

    2024年01月25日
    浏览(45)
  • 运维笔记之centos7安装mysql数据库

    如果使用的4.1以上版本的rpm的话,除了import mysql的公钥到个人用户的配置中,还需要import mysql的公钥到RPM的配置中

    2024年02月04日
    浏览(67)
  • openGauss数据库安装,配置连接 完整版Centos7

    服务器版本:Centos7.6 || 7.9 数据库版本:openGauss-5.0.0-CentOS-64bit.tar.bz2  极简版 目录 修改系统参数 安装环境 安装openGauss数据库 配置连接数据库 使用navicat连接数据库 ##修改 /etc/selinux/config 文件中的“SELINUX”值为“disabled”。 vi  /etc/selinux/config SELINUX=disabled 关闭防火墙 ##检查

    2024年02月09日
    浏览(46)
  • 基于CentOS7安装MySQL数据库并远程访问

    MySQL是目前最为流行的开放源码的数据库,是完全网络化的跨平台的关系型数据库系统,它是由瑞典MySQLAB公司开发,目前属于Oracle公司。任何人都能从Internet下载MySQL软件,而无需支付任费用,并且“开放源码”意味着任何人都可以使用和修改该软件。下面我们来学习如何在

    2024年02月11日
    浏览(50)
  • centos7.9-RPM安装MySQL 8.0.34数据库教程

    使用命令 或者 ` 查看操作系统信息,我的系统版本是el7 即liunx/centos 7系列。 下载地址: https://dev.mysql.com/downloads/mysql/ 下载时,要注意自己系统的版本,我的Linux版本是 el7 ,要下载对应的版本。 用上传工具将下载的安装包上传至指定存放目录;我专门存放安装包的目录是

    2024年02月07日
    浏览(62)
  • Ladp数据库安装和配置自定义schema ,Centos7环境

    最近安装ldap看了不少教程,整理下用到的有用的资料,并把自己的搭建过程分享。 ldap介绍:openLDAP入门与安装 官方文档:https://www.openldap.org/doc/admin22/schema.html 安装配置:Centos7 搭建openldap完整详细教程(真实可用) bug解决:ldap运维中遇到的问题 schema自定义:导入schema到openL

    2024年02月12日
    浏览(55)
  • 磐维数据库panweidb单节点服务器在centos7.9安装(研发环境)

    使用omm用户登录到openGauss包安装的主机,解压openGauss压缩包到安装目录(假定安装目录为/opt/panweidb/soft,请用实际值替换)。 假定解压包的路径为/opt/panweidb/soft,进入解压后目录下的simpleInstall。 执行install.sh脚本安装openGauss。 上述命令中,-w是指初始化数据库密码(gs_initdb指

    2024年02月06日
    浏览(51)
  • Windows下 influxdb 数据库安装和简单使用

    你可以从 InfluxDB 的 InfluxDB官网winndows二进制安装包下载适用于不同操作系统的 InfluxDB 安装包。在本教程中,我们将介绍在 Windows上安装 InfluxDB 的步骤。 如果所示,可以点击下载windows版本的安卓版,右上角还可以切换其他版本的安装包。 下载后解压,里面有个influxd.e

    2024年02月08日
    浏览(37)
  • 数据库信息速递: Apache Arrow 如何加速 InfluxDB (翻译)

    开头还是介绍一下群,如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis, Oceanbase, Sql Server等有问题,有需求都可以加群群内,可以解决你的问题。加群请联系 liuaustin3 ,(共1760人左右 1 + 2 + 3 + 4 +5) 4群(260+),另欢迎 OpenGauss 的技术人员加入。 最近是百业萧条,本地前十的新能源

    2024年02月03日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包