influxDB快速入门实战教程
文章目录
- influxdb是什么
- influxdb数据模型
- influxdb数据存储架构
- influxdb部署运行
- influxdb基本操作
influxdb是什么
时序数据库是近几年一个新的概念,与传统的Mysql关系型数据库相比,它的最大的特点是:数据按照时间顺序存储。
InfluxDB是一个由InfluxData开发的开源时序型数据库。它由Go语言写成,着力于高性能地查询与存储时序型数据。InfluxDB被广泛应用于存储系统的监控数据,IoT行业的实时数据等场景,有三大特性
- 基于时间序列
- 可度量性
- 基于事件
在最新的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快速入门实战教程相关推荐
- MongoDB 快速入门实战教程最新版
在上一篇 <MongoDB 实战教程:数据库与集合的 CRUD 操作篇> 中,我们学习了MongoDB 与 NoSQL 的关系. MongoDB 的安装.数据类型.MongoShell.创 ...
- EasyUI快速入门实战教程(一)
1.jQuery EasyUI概述 jQuery EasyUI是一组基于jQuery的UI插件集合体,而jQuery EasyUI的目标就是帮助web开发者更轻松的打造出功能丰富并且美观的UI界面.开 ...
- Python教程:网络爬虫快速入门实战解析
建议: 请在电脑的陪同下,阅读本文.本文以实战为主,阅读过程如稍有不适,还望多加练习. 网络爬虫简介 网络爬虫,也叫网络蜘蛛(Web Spider).它根据网页地址(URL)爬取网页内容,而网页地址( ...
- Python之Numpy入门实战教程(2):进阶篇之线性代数
Numpy.Pandas.Matplotlib是Python的三个重要科学计算库,今天整理了Numpy的入门实战教程.NumPy是使用Python进行科学计算的基础库. NumPy以强大的N维数组对象 ...
- Python之Numpy入门实战教程(1):基础篇
Numpy.Pandas.Matplotlib是Python的三个重要科学计算库,今天整理了Numpy的入门实战教程.NumPy是使用Python进行科学计算的基础库. NumPy以强大的N维数组对象 ...
- python3 爬虫实例_【实战练习】Python3网络爬虫快速入门实战解析(上)
原标题:[实战练习]Python3网络爬虫快速入门实战解析(上) 摘要 使用python3学习网络爬虫,快速入门静态网站爬取和动态网站爬取 [ 前言 ] 强烈建议:请在电脑的陪同下,阅读本文.本文以实 ...
- 视频教程-深度学习与PyTorch入门实战教程-深度学习
深度学习与PyTorch入门实战教程 新加坡国立大学研究员 龙良曲 ¥399.00 立即订阅 扫码下载「CSDN程序员学院APP」,1000+技术好课免费看 APP订阅课程,领取优惠,最少立减5元 ↓ ...
- Python3网络爬虫快速入门实战解析
Python3网络爬虫快速入门实战解析 标签: python网络爬虫 2017-09-28 14:48 6266人阅读 评论(34) 收藏 举报 分类: Python(26) 作者同类文章X 版权声明 ...
- Python3 网络爬虫快速入门实战解析
点击上方"Python高校",关注 文末干货立马到手 作者:Jack Cui http://cuijiahua.com/blog/2017/10/spider_tutorial_1 ...
最新文章
- c语言中小数乘法怎样写程序,四年级下册lbrack;小数乘法rsqb;知识点归纳
- 公安网安装mysql 5.7_安装Mysql 5.7.1
- rust外服组建战队_[新手教程]模组服服务器指令大全(最新版)
- 低代码音视频开发训练营
- 2021 大前端技术回顾及未来展望
- 分布式压测系列之Jmeter4.0第一季
- Heron 数据模型,API和组件介绍
- 【Linux】kali 2019.4 安装中文输入法
- 2020,“拷问”AI创业与投资
- mysql left join右边有多条_left join 右表多条数据重复
- turtle fillcolor_Python编程:使用海龟turtle画图制作可爱的哆啦A梦,你也可以的。
- 成功粉碎北信源监控程序vrvedp_m.exe ,vrvrf_c64.exe,svchost.exe,vrvrf_c.exe
- 编程语言的分类与关系
- 在职攻读教育硕士专业学位有计算机专业吗,在职攻读教育硕士专业怎样?
- shopnc mysql_(转) shopnc数据库操作
- oracle ocx加载错误,怎么对.ocx格式的文件进行注册加载?出现0x8002801c错误怎么办?...
- Android爬虫(一)使用OkHttp+Jsoup实现网络爬虫
- java工程师面试英文自我介绍_软件工程师面试英语自我介绍范文
- nodejs 使用 pako 压缩数据
- 微型计算机怎么没声音,我的电脑怎么没声音了