文章目录

  • influxdb是什么
  • influxdb数据模型
  • influxdb数据存储架构
  • influxdb部署运行
  • influxdb基本操作

influxdb是什么

时序数据库是近几年一个新的概念,与传统的Mysql关系型数据库相比,它的最大的特点是:数据按照时间顺序存储。
InfluxDB是一个由InfluxData开发的开源时序型数据库。它由Go语言写成,着力于高性能地查询与存储时序型数据。InfluxDB被广泛应用于存储系统的监控数据,IoT行业的实时数据等场景,有三大特性

  1. 基于时间序列
  2. 可度量性
  3. 基于事件
    在最新的DB-ENGINES排名给出的时间序列数据库的排名中,InfluxDB高居第一位

influxdb数据模型

database 代表含义:数据库
measurement 代表含义:数据库中的表
point 代表含义:表里面的一行数据,由时间戳(time)、数据(field)、标签(tags)组成
time 代表含义:每个数据记录时间,是数据库中的主索引(会自动生成)
fields 代表含义:各种记录值(没有索引的属性)
tags 代表含义: 各种有索引的属性
series 代表含义:所有在数据库中的数据,都需要通过图表来展示,表示表里面的数据,可以在图表上画成几条线,通过tags排列组合计算出来

如下图:temperature 就是measurement 代表一张表。每行代表一个 point internal extenal 是两个数据指标取值。tags代表取值产生的位置。

series 就是某种特定tag下的某个特定指标的时序取值集合。

influxdb数据存储架构

每个database 可以有多个RP(retention policy数据保存策略),但是只有一个默认策略。策略下按照时间段分为多个ShardGroup,每个ShardGroup存储一个时间段的数据。每个shardgroup下分多个shard来存储数据。

influxdb部署运行

解压安装包并重命名

[root@localhost ~]# wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.8_linux_amd64.tar.gz
[root@localhost ~]# tar -zvxf influxdb-1.7.8_linux_amd64.tar.gz
[root@localhost ~]# mv influxdb-1.7.8_linux_amd64 influx

创建 data log meta wal 四个目录如下

[root@localhost influx]# ll
drwxr-xr-x. 4 root root    34 9鏈  5 15:21 data
drwxr-xr-x. 4 root root    41 8鏈 21 2019 etc
-rw-r--r--. 1 root root 20862 9鏈  5 15:24 influxdb.conf
drwxr-xr-x. 2 root root     6 9鏈  5 15:00 log
drwxr-xr-x. 2 root root    21 9鏈  5 15:23 meta
drwxr-xr-x. 5 root root    41 8鏈 21 2019 usr
drwxr-xr-x. 4 root root    28 8鏈 21 2019 var
drwxr-xr-x. 4 root root    34 9鏈  5 15:21 wal

修改配置文件 influxdb.conf中如下内容

[meta]
dir = "/usr/local/influx/meta"
[data]
dir = "/usr/local/influx/data"
wal-dir = "/usr/local/influx/wal"
series-id-set-cache-size = 100
[coordinator]
[retention]
enabled = true
check-interval = "30m"

为了命令调用方便增加环境变量配置

export PATH=$PATH:/usr/local/influx/usr/bin

启动服务,日志中可以看到相关配置如下:

[root@localhost influx]# influxd  -config influxdb.conf

influxdb基本操作

使用influx客户端连接服务,即可进行相关操作
数据库操作
显示数据库
show databases
创建数据库
create database influxdb
删除数据库
drop database influxdb
使用数据库
use influxdb

数据保留策略
数据保留策略创建语法

CREATE RETENTION POLICY <retention_policy_name> ON <database_name> DURATION
<duration> REPLICATION <n> [SHARD DURATION <duration>] [DEFAULT]

创建数据保留策略
CREATE RETENTION POLICY “influx_retention” ON “influxdb” DURATION 30d
REPLICATION 1 DEFAULT;
查看保留期
SHOW RETENTION POLICIES ON influxdb
修改保留期
ALTER RETENTION POLICY “influx_retention” ON influxdb DURATION 15d
删除保留期
DROP RETENTION POLICY “influx_retention” ON influxdb

表操作
表增删查操作
显示所有表
show measurements
插入数据

> use influxdb
>insert weather,altitude=1000,area=北 temperature=11,humidity=-4

查询表
select * from weather
设置时间显示格式
precision rfc3339
删除表
DROP MEASUREMENT weather

示例如下:

Connected to http://localhost:8086 version 1.7.8
InfluxDB shell version: 1.7.8
> show databases;
ERR: unable to parse authentication credentials
Warning: It is possible this error is due to not setting a database.
Please set a database with the command "use <database>".
> show databases;  --显示数据库
name: databases
name
----
_internal
eim
> create database zxmtest  --创建数据库
> show databases;
name: databases
name
----
_internal
eim
zxmtest
> drop database zxmtest;  --删除数据库
> use eim  --选择数据库
Using database eim
> create retention policy policy1 on eim duration 30d replication 2 default;  --创建数据保存策略
> show retention policies on eim  --查看数据保存策略
name             duration shardGroupDuration replicaN default
----             -------- ------------------ -------- -------
autogen          0s       168h0m0s           1        false
influx_retention 720h0m0s 24h0m0s            1        false
policy1          720h0m0s 24h0m0s            2        true
> alter retention policy policy1 on eim duration 15d;  --修改数据保存策略
> show retention policies on eim
name             duration shardGroupDuration replicaN default
----             -------- ------------------ -------- -------
autogen          0s       168h0m0s           1        false
influx_retention 720h0m0s 24h0m0s            1        false
policy1          360h0m0s 24h0m0s            2        true
> drop  retention policy policy1  on eim  --删除数据保存策略
> show measurements;  --查看指标清单
name: measurements
name
----
weather
> create retention policy policy1 on eim duration 30d replication 2 default;
> show retention policies on eim
name             duration shardGroupDuration replicaN default
----             -------- ------------------ -------- -------
autogen          0s       168h0m0s           1        false
influx_retention 720h0m0s 24h0m0s            1        false
policy1          720h0m0s 24h0m0s            2        true
> select * from weather;
> insert tem,t1=1000,t2=1 tem=11  插入数据 到指标 tem
> insert tem,t1=1000,t2=1 tem=12
> insert tem,t1=1000,t2=1 tem=13
> insert tem,t1=1000,t2=1 tem=14
> insert tem,t1=1000,t2=1 tem=15
> insert tem,t1=1000,t2=2 tem=15
> insert tem,t1=1000,t2=2 tem=14
> insert tem,t1=1000,t2=2 tem=13
> insert tem,t1=1000,t2=2 tem=12
> select * from tem  查询指标数据
name: tem
time                t1   t2 tem
----                --   -- ---
1638638410347983907 1000 1  11
1638638414273143226 1000 1  12
1638638415636644887 1000 1  13
1638638417093045518 1000 1  14
1638638418964082753 1000 1  15
1638638425116806331 1000 2  15
1638638427669899113 1000 2  14
1638638429520189744 1000 2  13
1638638431234719109 1000 2  12
> precision rfc3339      --修改时间显示格式
> select * from tem
name: tem
time                           t1   t2 tem
----                           --   -- ---
2021-12-04T17:20:10.347983907Z 1000 1  11
2021-12-04T17:20:14.273143226Z 1000 1  12
2021-12-04T17:20:15.636644887Z 1000 1  13
2021-12-04T17:20:17.093045518Z 1000 1  14
2021-12-04T17:20:18.964082753Z 1000 1  15
2021-12-04T17:20:25.116806331Z 1000 2  15
2021-12-04T17:20:27.669899113Z 1000 2  14
2021-12-04T17:20:29.520189744Z 1000 2  13
2021-12-04T17:20:31.234719109Z 1000 2  12

用户操作
显示用户
show users
创建用户
【普通用户】创建用户并设置密码
CREATE USER influx WITH PASSWORD ‘influxdb’;
【管理员用户】
create user “admin” with password ‘admin’ with all privileges;
修改用户密码
SET PASSWORD FOR influx = ‘influx’
删除用户
drop user admin;

数据库访问权限
用户授权
授权用户数据库操作权限
GRANT ALL PRIVILEGES ON influxdb TO influx
赋予用户管理员权限
GRANT ALL PRIVILEGES TO influx
备注:只能使用admin权限才可以操作数据库
撤销授权
撤销用户数据库操作权限
Revoke ALL PRIVILEGES ON influxdb FROM influx
撤销用户管理员权限
Revoke ALL PRIVILEGES FROM influx

示例操作如下:

> show users
user  admin
----  -----
admin true
eim   true
> create user zxm with password zxm
ERR: error parsing query: found zxm, expected string at line 1, char 31
> create user "zxm" with password 'zxm'
> show users
user  admin
----  -----
admin true
eim   true
zxm   false
> set password for zxm='zxm'
> create user "zxm2" with password 'zxm2' with all privileges
> drop user zxm
> show users
user  admin
----  -----
admin true
eim   true
zxm2  true
> create user "zxm3" with password 'zxm3'
> show users
user  admin
----  -----
admin true
eim   true
zxm2  true
zxm3  false
> grant all privileges on eim to zxm3
> revoke all privileges on eim from zxm3
> revoke all privileges from zxm2

开启用户登录认证
开启登录认证
在influxdb 配置文件influxdb.conf中,开启用户登录认证,添加如下内容:
[http]
auth-enabled = true
开启认证后无密码登录
bin/influx
开启认证后有密码登录
bin/influx -username influx -password influx

修改配置文件并重启服务
开启身份认证后,直接进行数据库操作会提示没有认证


> show users
ERR: unable to parse authentication credentials

使用用户密码后 正常

[root@localhost influxdb]# influx -username eim -password eim
Connected to http://localhost:8086 version 1.7.8
InfluxDB shell version: 1.7.8
> show users
user  admin
----  -----
admin true
eim   true
zxm2  false
zxm3  false

influxDB快速入门实战教程相关推荐

  1. MongoDB 快速入门实战教程最新版

    在上一篇 <MongoDB 实战教程:数据库与集合的 CRUD 操作篇> 中,我们学习了MongoDB 与 NoSQL 的关系. MongoDB 的安装.数据类型.MongoShell.创 ...

  2. EasyUI快速入门实战教程(一)

    1.jQuery EasyUI概述 jQuery EasyUI是一组基于jQuery的UI插件集合体,而jQuery EasyUI的目标就是帮助web开发者更轻松的打造出功能丰富并且美观的UI界面.开 ...

  3. Python教程:网络爬虫快速入门实战解析

    建议: 请在电脑的陪同下,阅读本文.本文以实战为主,阅读过程如稍有不适,还望多加练习. 网络爬虫简介 网络爬虫,也叫网络蜘蛛(Web Spider).它根据网页地址(URL)爬取网页内容,而网页地址( ...

  4. Python之Numpy入门实战教程(2):进阶篇之线性代数

    Numpy.Pandas.Matplotlib是Python的三个重要科学计算库,今天整理了Numpy的入门实战教程.NumPy是使用Python进行科学计算的基础库. NumPy以强大的N维数组对象 ...

  5. Python之Numpy入门实战教程(1):基础篇

    Numpy.Pandas.Matplotlib是Python的三个重要科学计算库,今天整理了Numpy的入门实战教程.NumPy是使用Python进行科学计算的基础库. NumPy以强大的N维数组对象 ...

  6. python3 爬虫实例_【实战练习】Python3网络爬虫快速入门实战解析(上)

    原标题:[实战练习]Python3网络爬虫快速入门实战解析(上) 摘要 使用python3学习网络爬虫,快速入门静态网站爬取和动态网站爬取 [ 前言 ] 强烈建议:请在电脑的陪同下,阅读本文.本文以实 ...

  7. 视频教程-深度学习与PyTorch入门实战教程-深度学习

    深度学习与PyTorch入门实战教程 新加坡国立大学研究员 龙良曲 ¥399.00 立即订阅 扫码下载「CSDN程序员学院APP」,1000+技术好课免费看 APP订阅课程,领取优惠,最少立减5元 ↓ ...

  8. Python3网络爬虫快速入门实战解析

    Python3网络爬虫快速入门实战解析 标签: python网络爬虫 2017-09-28 14:48 6266人阅读 评论(34) 收藏 举报 分类: Python(26) 作者同类文章X 版权声明 ...

  9. Python3 网络爬虫快速入门实战解析

    点击上方"Python高校",关注 文末干货立马到手 作者:Jack Cui http://cuijiahua.com/blog/2017/10/spider_tutorial_1 ...

最新文章

  1. c语言中小数乘法怎样写程序,四年级下册lbrack;小数乘法rsqb;知识点归纳
  2. 公安网安装mysql 5.7_安装Mysql 5.7.1
  3. rust外服组建战队_[新手教程]模组服服务器指令大全(最新版)
  4. 低代码音视频开发训练营
  5. 2021 大前端技术回顾及未来展望
  6. 分布式压测系列之Jmeter4.0第一季
  7. Heron 数据模型,API和组件介绍
  8. 【Linux】kali 2019.4 安装中文输入法
  9. 2020,“拷问”AI创业与投资
  10. mysql left join右边有多条_left join 右表多条数据重复
  11. turtle fillcolor_Python编程:使用海龟turtle画图制作可爱的哆啦A梦,你也可以的。
  12. 成功粉碎北信源监控程序vrvedp_m.exe ,vrvrf_c64.exe,svchost.exe,vrvrf_c.exe
  13. 编程语言的分类与关系
  14. 在职攻读教育硕士专业学位有计算机专业吗,在职攻读教育硕士专业怎样?
  15. shopnc mysql_(转) shopnc数据库操作
  16. oracle ocx加载错误,怎么对.ocx格式的文件进行注册加载?出现0x8002801c错误怎么办?...
  17. Android爬虫(一)使用OkHttp+Jsoup实现网络爬虫
  18. java工程师面试英文自我介绍_软件工程师面试英语自我介绍范文
  19. nodejs 使用 pako 压缩数据
  20. 微型计算机怎么没声音,我的电脑怎么没声音了

热门文章

  1. 寻找亲和数对C语言,寻找亲和数
  2. 如何实现自定义倍速播放PC端浏览器中的视频
  3. 性能测试线上培训班怎么选 3点教你在线选好培训班
  4. 副总和副总裁的区别_总经理与副总经理的巨大区别
  5. ESP32入门基础之UDP和TCP实验
  6. QQ客户端管理聊天记录漫游功能 | 解决经常弹窗消息漫游安全验证,QQ服务独立密码的问题
  7. 为什么word文档在前面打字会把后面的文字覆盖掉?
  8. 大数据BI工具Tableau学习【第一期】:Tableau简介和安装
  9. 纯鼓点节奏_[鼓点] 简单的鼓点节奏
  10. 光栅渲染器(六)着色准备和深度缓存实现