influxdb入门
了解influxdb
参考https://www.cnblogs.com/wzbk/p/10569683.html
1、数据格式
在 InfluxDB 中,我们可以粗略的将要存入的一条数据看作一个虚拟的 key 和其对应的 value(field value)。
虚拟的 key 包括以下几个部分: database, retention policy, measurement, tag sets, field name, timestamp。
database: 数据库名,在 InfluxDB 中可以创建多个数据库,不同数据库中的数据文件是隔离存放的,存放在磁盘上的不同目录。
retention policy: 存储策略,用于设置数据保留的时间,每个数据库刚开始会自动创建一个默认的存储策略 autogen,数据保留时间为永久,之后用户可以自己设置,例如保留最近2小时的数据。插入和查询数据时如果不指定存储策略,则使用默认存储策略,且默认存储策略可以修改。InfluxDB 会定期清除过期的数据。
measurement: 测量指标名,例如 cpu_usage 表示 cpu 的使用率。InfluxDB数据结果中的一部分,描述了存在关联field中的数据的意义,measurement是字符串。
timestamp: 每一条数据都需要指定一个时间戳,在 TSM 存储引擎中会特殊对待,以为了优化后续的查询操作。
tag sets: 数据点上tag key和tag value的集合。tags 在 InfluxDB 中会按照字典序排序,不管是 tagk 还是 tagv,只要不一致就分别属于两个 key,例如 host=server01,region=us-west 和 host=server02,region=us-west 就是两个不同的 tag set。
tag InfluxDB数据结构中的键值对,tags在InfluxDB的数据中是可选的,但是它们可用于存储常用的metadata。在InfluxDB中,tag是一个非常重要的部分,表名+tag一起作为数据库的索引,是“key-value”的形式。
tag key 组成tag的键值对中的键部分,tag key是字符串,存在metadata中。
tag set数据点上tag key和tag value的集合。
**field **: InfluxDB数据中记录metadata和真实数据的键值对。fields在InfluxDB的数据结构中是必须的且不会被索引。InfluxDB 中支持一条数据中插入多个 fieldName,这其实是一个语法上的优化,在实际的底层存储中,是当作多条数据来存储。
field key: 组成field的键值对里面的键的部分。field key是字符串且保存在metadata中。
**field set **: 数据点上field key和field value的集合。
field value 组成field的键值对里面的值的部分。field value才是真正的数据,可以是字符串,浮点数,整数,布尔型数据。一个field value总是和一个timestamp相关联。field value不会被索引,如果要对field value做过滤话,那就必须遍历所选时间范围里面的所有数据点,这种方式对比与tag效率会差很多。
user 在InfluxDB里有两种类型的用户:
admin用户对所有数据库都有读写权限,并且有管理查询和管理用户的全部权限。
非admin用户有针对database的可读,可写或者二者兼有的权限。
当认证开启之后,InfluxDB只执行使用有效的用户名和密码发送的HTTP请求。
wal(Write Ahead Log)
最近写的点数的临时缓存。为了减少访问永久存储文件的频率,InfluxDB将最新的数据点缓冲进WAL中,直到其总大小或时间触发然后flush到长久的存储空间。这样可以有效地将写入batch处理到TSM中。
可以查询WAL中的点,并且系统重启后仍然保留。在进程开始时,在系统接受新的写入之前,WAL中的所有点都必须flushed。
2、与传统数据库中的名词做比较
influxDB中的名词 | 传统数据库中的概念 |
---|---|
database | 数据库 |
measurement | 数据库中的表 |
points | 表里面的一行数据 |
tag | 相当于有索引的列 |
field | 相当于没有索引的列 |
3、Point
Point由时间戳(time)、数据(field)、标签(tags)组成。
Point相当于传统数据库里的一行数据,如下表所示:
time:每个数据记录时间,是数据库中的主索引(会自动生成)
fields:各种记录值(没有索引的属性)
tags:各种有索引的属性
4、Series
Series 相当于是 InfluxDB 中一些数据的集合,在同一个 database 中,retention policy、measurement、tag sets 完全相同的数据同属于一个 series,同一个 series 的数据在物理上会按照时间顺序排列存储在一起
5、Shard
Shard 在 InfluxDB 中是一个比较重要的概念,它和 retention policy 相关联。每一个存储策略下会存在许多 shard,每一个 shard 存储一个指定时间段内的数据,并且不重复,例如 7点-8点 的数据落入 shard0 中,8点-9点的数据则落入 shard1 中。每一个 shard 都对应一个底层的 tsm 存储引擎,有独立的 cache、wal、tsm file。
安装使用influxdb
下载安装influxdb: 下载链接https://portal.influxdata.com/downloads/
分别有influxdb四大组件TICK
T(Telegraf):服务监控数据采集,包括服务器CPU、内存、IO、进程状态、服务状态等等;
I(InfluxDB):时序型数据库,存储Telegraf采集的监控数据,每条数据都会有time序列;
C(Chronograf):时间序列数据可视化展示,InfluxDB UI界面;
K(Kapacitor):可以按照预先编写好的规则,实时地订阅influxDB数据或者批量查询数据,并进行告警。
必须下载:influxdb
推荐下载:Chronograf(UI界面)
Telegraf和Kapacitor根据需求自行下载
选择zip文件免安装。
启动influxdb: influxdb下载解压完成后,打开influxd.exe,再打开influx.exe,成功启动。
influx.exe---->influxdb 命令行客户端
influxd.exe---->influxdb服务器
influxdb.conf---->配置文件,指定对应数据存储文件的位置、日志信息、连接数量、连接时间等等功能的具体配置
启动influxdb UI(chronograf) 启动完influxdb后,直接打开chronograf.exe。根据显示的端口号打开本地的UI网页。
简易中文文档:https://jasper-zhang1.gitbooks.io/influxdb/content/Guide/querying_data.html
influxdb sql
建表
CREATE DATABASE "test"
插入数据
注意: 在influxdb中没有专门用来创建measurement的命令,在执行向某个measurement新增记录的时候,如果不存在measurement,则会新创建一个。
//选定数据库
use test//基本插入语法
insert measurement,tagkey1=tagvalue1,tagkey2=tagvalue2 fieldkey1=fieldvalue1,fieldkey2=fieldvalue2 // 同类型之间用逗号隔开,先输入的是tag,tag和field用空格隔开。tag有索引,field无索引
//下面的insert语句中,tag是id,field是heartRate和SPO2H
insert runner,id=10001 heartRate=210,SPO2H=97
查询数据
//时间戳输出格式设定为rfc3339
precision rfc3339//基本查询语法
SELECT <field_key>[,<field_key>,<tag_key>] FROM <measurement_name>[,<measurement_name>]//全部查询
select * from measurement
//单独查询select "fieldKey"::field, "tagKey"::tag from measurement;
举例:(两条数据举例)
> select * from "runner"
name: runner
time SPO2H heartRate id
---- ----- --------- --
2020-08-26T01:45:43.2549928Z 99 108 10001
2020-08-26T01:46:18.9755029Z 97 210 10001> select "heartRate"::field, "id"::tag from runner;
name: runner
time heartRate id
---- --------- --
2020-08-26T01:45:43.2549928Z 108 10001
2020-08-26T01:46:18.9755029Z 210 10001> select "heartRate", "id" from runner;
name: runner
time heartRate id
---- --------- --
2020-08-26T01:45:43.2549928Z 108 10001
2020-08-26T01:46:18.9755029Z 210 10001
按条件查询
//where 查询分tag和field tag列为字符串,所以在使用是一定要加上单引号 field如果是数字则不用> select * from "runner" where id='10002'
name: runner
time SPO2H heartRate id
---- ----- --------- --
2020-08-26T02:59:10.5271329Z 100 110 10002> select * from "runner" where heartRate=108
name: runner
time SPO2H heartRate id
---- ----- --------- --
2020-08-26T01:45:43.2549928Z 99 108 10001
删除
删除操作不推荐在时序型数据库中使用。修改操作同理,因此不再介绍修改操作
> delete from "measurement" where time=1563712849953792293>
influxdb入门相关推荐
- influxdb入门——和mongodb一样可以动态增加字段
./influxd [--config yourconfigfile 2> /dev/null] 之所以重定向 因为默认log是stderr 再启动客户端./influx > CREAT ...
- InfluxDB 入门
1. 简述 时间序列数据:从定义上来说,就是一串按时间维度索引的数据. 时序数据库(TSDB)特点: 持续高并发写入.无更新: 数据压缩存储: 低查询延时. 常见 TSDB:influxdb.open ...
- InfluxDB入门系列教程④ InfluxDB Studio可视化数据库管理工具
目录 一.简介 二.下载 三.应用 一.简介 这是一个Windows平台下的开源的可视化的数据库管理工具,功能相对简单,但也胜在实用. 二.下载 https://github.com.cnpmjs.o ...
- 上新了!国内首本从原理与实践角度全面讲解InfluxDB的宝藏书
新书速递 InfluxDB是一款非常优秀的软件,直接推动监控技术进入了实时.纳秒级的新时代,除了类SQL查询语言.RESTful API等现代特性外,还具有读写性能高.存储压缩率高.生态丰富.功能强大 ...
- influxdb+grafana 监控
参考InfluxDB 入门 一.简介 1.什么是InfluxDB InfluxDB(时序数据库),常用的一种使用场景:监控数据统计.每毫秒记录一下电脑内存的使用情况,然后就可以根据统计的数据,利用图形 ...
- android 系统图标资源,Android系统资源图标android.R.drawable
redux-undo 简介 通过包装reducer,创建一个state History,保留历史state,可以做退一步,进一步操作 1.install npm install --save redu ...
- Go 1.18特性快速了解 | Gopher Daily (2021.12.18) ʕ◔ϖ◔ʔ
每日一谚:感觉Go是谷歌这些年来唯一真正仁慈的产品之一.它没有任何地方看起来对谷歌"行了方便".我没有感觉到别有用心的动机.没有跟踪或锁定.它只是真正的帮助大家,对世界有用且免费. ...
- 从零开始学习InfluxDB:安装和使用入门教程
InfluxDB 安装使用入门教学 InfluxDB 是一种流行的开源时间序列数据库,它专门用于存储和查询时间相关的数据.本篇文章将为你提供 InfluxDB 的安装和入门使用教程. 步骤 1:安装 ...
- jmeter使用入门(+influxdb+grafana)
jmeter 入门到精通_墨瑶_165的博客-CSDN博客_jmeter菜鸟入门到进阶 官网: Apache JMeter - Download Apache JMeter 一.jmeter实际模拟一 ...
最新文章
- js 获取表格数据(表单变量值)
- mysql查询字符串出现次数
- _tcscpy_s函数引发的问题
- Windows10 编译 Open3D 时出现 error C2220: 以下警告被视为错误 (编译源文件
- SQL ORDER BY 子句
- 关于@Mapper注解的几个问题
- 呼吸灯程序(非阻塞)
- lamp兄弟连PHP视频教程 笔记心得
- 《指数基金投资指南》银行螺丝钉 ---读书
- 最近刚开始学编程,记录一下学习感受
- 解压文件到服务器是什么意思,linux中zip文件解压命令是什么
- 【数据库基础知识六】内连接、外连接、自连接
- Android studio飞机大战游戏分析-月末总结
- 澄清烟台苹果果袋用药与果树种植
- 单元识别码是什么意思_NLPer入门指南 | 完美第一步
- 算法-- x 的平方根
- 「UG/NX」Block UI RGB 颜色拾取器RGBColorPicker
- 带电流检测的门极驱动ICs: IR212X
- 先搞一波kotlin,看它怎么说
- 一些关于界面设计的技巧