了解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入门相关推荐

  1. influxdb入门——和mongodb一样可以动态增加字段

    ./influxd [--config yourconfigfile 2> /dev/null]  之所以重定向 因为默认log是stderr 再启动客户端./influx > CREAT ...

  2. InfluxDB 入门

    1. 简述 时间序列数据:从定义上来说,就是一串按时间维度索引的数据. 时序数据库(TSDB)特点: 持续高并发写入.无更新: 数据压缩存储: 低查询延时. 常见 TSDB:influxdb.open ...

  3. InfluxDB入门系列教程④ InfluxDB Studio可视化数据库管理工具

    目录 一.简介 二.下载 三.应用 一.简介 这是一个Windows平台下的开源的可视化的数据库管理工具,功能相对简单,但也胜在实用. 二.下载 https://github.com.cnpmjs.o ...

  4. 上新了!国内首本从原理与实践角度全面讲解InfluxDB的宝藏书

    新书速递 InfluxDB是一款非常优秀的软件,直接推动监控技术进入了实时.纳秒级的新时代,除了类SQL查询语言.RESTful API等现代特性外,还具有读写性能高.存储压缩率高.生态丰富.功能强大 ...

  5. influxdb+grafana 监控

    参考InfluxDB 入门 一.简介 1.什么是InfluxDB InfluxDB(时序数据库),常用的一种使用场景:监控数据统计.每毫秒记录一下电脑内存的使用情况,然后就可以根据统计的数据,利用图形 ...

  6. android 系统图标资源,Android系统资源图标android.R.drawable

    redux-undo 简介 通过包装reducer,创建一个state History,保留历史state,可以做退一步,进一步操作 1.install npm install --save redu ...

  7. Go 1.18特性快速了解 | Gopher Daily (2021.12.18) ʕ◔ϖ◔ʔ

    每日一谚:感觉Go是谷歌这些年来唯一真正仁慈的产品之一.它没有任何地方看起来对谷歌"行了方便".我没有感觉到别有用心的动机.没有跟踪或锁定.它只是真正的帮助大家,对世界有用且免费. ...

  8. 从零开始学习InfluxDB:安装和使用入门教程

    InfluxDB 安装使用入门教学 InfluxDB 是一种流行的开源时间序列数据库,它专门用于存储和查询时间相关的数据.本篇文章将为你提供 InfluxDB 的安装和入门使用教程. 步骤 1:安装 ...

  9. jmeter使用入门(+influxdb+grafana)

    jmeter 入门到精通_墨瑶_165的博客-CSDN博客_jmeter菜鸟入门到进阶 官网: Apache JMeter - Download Apache JMeter 一.jmeter实际模拟一 ...

最新文章

  1. js 获取表格数据(表单变量值)
  2. mysql查询字符串出现次数
  3. _tcscpy_s函数引发的问题
  4. Windows10 编译 Open3D 时出现 error C2220: 以下警告被视为错误 (编译源文件
  5. SQL ORDER BY 子句
  6. 关于@Mapper注解的几个问题
  7. 呼吸灯程序(非阻塞)
  8. lamp兄弟连PHP视频教程 笔记心得
  9. 《指数基金投资指南》银行螺丝钉 ---读书
  10. 最近刚开始学编程,记录一下学习感受
  11. 解压文件到服务器是什么意思,linux中zip文件解压命令是什么
  12. 【数据库基础知识六】内连接、外连接、自连接
  13. Android studio飞机大战游戏分析-月末总结
  14. 澄清烟台苹果果袋用药与果树种植
  15. 单元识别码是什么意思_NLPer入门指南 | 完美第一步
  16. 算法-- x 的平方根
  17. 「UG/NX」Block UI RGB 颜色拾取器RGBColorPicker
  18. 带电流检测的门极驱动ICs: IR212X
  19. 先搞一波kotlin,看它怎么说
  20. 一些关于界面设计的技巧

热门文章

  1. 消融实验(ablation)
  2. 实际例子描述和分析“猎豹抢票跨站推荐功能有票刷不到”的疑似bug
  3. 世界杯看不明白?没事咱们还会画足球吗。
  4. PPT基础入门实例:倾斜型封面页制作
  5. mysql多字段设置为text问题
  6. 将Dao层注入到Service层
  7. jQuery学习手册(24)
  8. C#,入门教程(01)—— Visual Studio 2022 免费安装的详细图文与动画教程
  9. 腾讯短信发送(基于v3版本封装)
  10. 小程序css 文字居中,小程序css设置垂直居中显示