InfluxDB时序数据库的使用 | 您所在的位置:网站首页 › influxdb官网中文 › InfluxDB时序数据库的使用 |
InfluxDB时序数据库的使用
InfluxDB
InfluxDB概述
相关概念
安装InfluxDB
InfluxDB的操作
用户管理
启用认证
数据库操作
数据库表操作
查询操作
项目集成使用
添加依赖
创建数据库
配置InfluxDB
编码
执行测试
InfluxDB
InfluxDB概述
InfluxDB 是一个从头开始构建的时间序列数据库,用于处理高写入和查询负载。InfluxDB 旨在用作任何涉及大量时间戳数据的用例的后备存储,包括 DevOps 监控、应用程序指标、物联网传感器数据和实时分析。 什么是时间序列的数据?从定义上来说,就是一串按时间维度索引的数据。 时间序列数据库(TSDB)特点: 持续高并发写入、不用更新 数据压缩存储 低延时查询常见的时间序列数据库除了InfluxDB之外还有:opentsdb、timeScaladb、Druid等。 官网: https://www.influxdata.com/ GitHub:https://github.com/influxdata/influxdb 中文文档:https://jasper-zhang1.gitbooks.io/influxdb/content/Introduction/installation.html 相关概念 nfuxDB传统数据库database数据库measurement数据库中的表point表中的行Point是由时间戳(time)、标签(tags)、数据(fields)三部分组成 point属性含义time数据记录的时间,主索引,默认自动生成,相当于每行数据都具备的列tags相当于有索引的列。tag中存储的值的类型是字符串类型fieldsvalue值,没有索引的列。field中存储的值得类型:字符串、浮点数(Double)、整数、布尔型。一个field value总是和一个timestamp相关联 安装InfluxDB拉取influxdb docker pull influxdb:1.8 复制代码启动influxdb docker run -d --name influxdb -p 8086:8086 influxdb:1.8 复制代码进入influxdb容器 docker exec -it influxdb /bin/bash 复制代码在命令行里输入influx,进入InfluxDB数据库环境 root@70783fdf1b06:/# influx Connected to http://localhost:8086 version 1.8.10 InfluxDB shell version: 1.8.10 > 复制代码 InfluxDB的操作 用户管理创建用户 > create user "root" with password 'root' with all privileges > show users user admin ---- ----- root true > 复制代码删除用户 > drop user root > > show users user admin ---- ----- > 复制代码 启用认证配置influxdb.conf文件启用认证 docker cp influxdb:/etc/influxdb/influxdb.conf ./ docker cp ./influxdb.conf influxdb:/etc/influxdb/ docker restart influxdb 复制代码在influxdb.conf配置文件中添加如下内容 [http] auth-enabled= true 复制代码使用账号密码登录 root@70783fdf1b06:/# influx -username 'root' -password 'root' Connected to http://localhost:8086 version 1.8.10 InfluxDB shell version: 1.8.10 > show users user admin ---- ----- root true > 复制代码错误密码认证 root@70783fdf1b06:/# influx -username 'root' -password 'root123' Connected to http://localhost:8086 version 1.8.10 InfluxDB shell version: 1.8.10 > show users ERR: authorization failed Warning: It is possible this error is due to not setting a database. Please set a database with the command "use ". > 复制代码 数据库操作显示数据库:show databases > show databases name: databases name ---- _internal > 复制代码新建数据库:create database test > create database test > show databases name: databases name ---- _internal test > 复制代码删除数据库命令:drop database test > drop database test > show databases name: databases name ---- _internal > 复制代码使用某个数据库,必须先创建create database test ,然后再使用use test > create database test > use test Using database test > 复制代码 数据库表操作显示所有表:SHOW MEASUREMENTS > SHOW MEASUREMENTS > 复制代码新建表:insert InfluxDB中没有显式的新建表的语句,只能通过insert数据的方式来建立新表,或者在客户端程序代码中插入数据的时候就会自动建表。 以下命令表示:一个measurement为cpu,tag是host和region,value值为0.64的数据点被写入到InfluxDB中 > INSERT cpu,host=serverA,region=us_west value=0.64 > SHOW MEASUREMENTS name: measurements name ---- cpu > 复制代码删除表:drop measurement cpu > drop measurement cpu > SHOW MEASUREMENTS > 复制代码 查询操作InfluxQL是一种类似SQL的查询语言,用于与InfluxDB中的数据进行交互。 表数据查询:SELECT * FROM tb > SELECT "host", "region", "value" FROM "cpu" name: cpu time host region value ---- ---- ------ ----- 1642915045925737934 serverA us_west 0.64 > 复制代码InfluxDB中的模糊搜索和mysql中的模糊搜索一样 查询包含给定字段数据 select fieldName from measurementName where fieldName=~/条件值/ 复制代码查询以给定字段开始的数据 select fieldName from measurementName where fieldName=~/^条件值/ 复制代码查询以给定字段结束的数据 select fieldName from measurementName where fieldName=~/条件值$/ 复制代码统计记录个数 select count(value) from measurementName where time>='2021-01-01' and time='2021-01-01' and time select * from bbu name: bbu time alarm deviceId indicatorName level value ---- ----- -------- ------------- ----- ------ 1642948114035000000 0 0001 温度 正常 56.5 > 复制代码 > select * from bbu where time>='2020-01-01' and time select last(value),* from bbu where deviceId='0001' group by deviceId name: bbu tags: deviceId=0001 time last alarm indicatorName level value ---- ---- ----- ------------- ----- ----- 1642950703148000000 65.55 0 温度 正常 65.55 > 复制代码 |
CopyRight 2018-2019 实验室设备网 版权所有 |