文章目录
1. 碎碎念
事情是这样的,笔者这周在配置 grafana 的 influxdb 的面板,然后被同事狂问底层是怎么聚合的?
然后我的心里就是各种吐槽「就是 复制+粘贴 配置一下,问我底层原理鬼👻才知道,有种非常抓狂的感觉?」
不过这件事情,过去之后,我就在思考🤔:
如果是刚入职场的我,不知道还是会回答不知道,但是下去之后一定会默默搞清楚的?所以是什么时候开始发生了变化呢?(ps:有那么多时间纠结不如就从思考的时候开始动起来吧。
这篇文章大概介绍了下 influxdb 2.0 的最基本使用方式,毕竟是了解一下。至于底层的数据结构和更多关于 web UI 如何配置显示数据等内容,就留给后面深入了解的时候整理吧。
2. 从使用开始
2.1 如何安装
笔者用的的是 mac ,安装的版本时 2.2.0,所以以下的例子都是 mac 的,其他平台安装可以参考以下两个文档:
- Install InfluxDB — https://docs.influxdata.com/influxdb/v2.1/install/
- Install and use InfluxDB CLI — https://docs.influxdata.com/influxdb/v2.1/tools/influx-cli/
2.1.1 InfluxDB Server 安装及使用
brew update && brew install influxdb
用如下命令运行 influxDB server
influxd
注:influxd 的配置文件,可以通过三种方式修改,优先级的先后顺序为,
1. influxd 的 flags; 2. Environment variables; 3. Configuration file settings
详细的配置文件信息参考— https://docs.influxdata.com/influxdb/v2.0/reference/config-options/
通过 web 端访问运行的 influxDB :
注: 初次访问是需要按要求输入Username、Password、Confirm Password、Organization Name、Bucket Name,需要记住 Username 和 Password 不然就木有办法登陆了
2.1.2 InfluxDB Cli 安装及使用
brew update && brew install influxdb-cli
注:上述的配置步骤也可以通过 influx 命令行完成,执行 influx setup 然后根据提示输入配置信息。参考文档—https://docs.influxdata.com/influxdb/v2.2/reference/cli/influx/setup/
增加 influx config
使 influx cli 可以连接到本机的 server :
influx config create --active \
-n config-name \
-u http://localhost:8086 \
-t mySuP3rS3cr3tT0keN \
-o example-org
注:参考文档 https://docs.influxdata.com/influxdb/v2.2/reference/cli/influx/config/create/
用户自己 token 的查找路径:
3. 关键概念
influxDB中的名词 | 传统数据库中的概念 |
---|---|
database | 数据库 |
measurement | 数据库中的表 |
points | 表里面的一条数据 |
time | 每个数据记录时间,是数据库中的主索引(不存在的时候会自动生成) |
fields | 没有索引的属性 |
tags | 有索引的属性 |
bucket | 数据都存储在一个存储桶中。一个桶结合了数据库的概念和存储周期,一个桶属于一个组织 |
bucket schema | 支持具有明确的 schema-type 的存储桶 |
organization | 所有仪表板、任务、存储桶和用户都属于一个组织,可以解决多用户权限问题 |
以上是主要的关键概念介绍,想了解更多戳这里
注: points 由 time + fields + tags 组成。
4. 写入 vs 读取
4.1 数据的格式 (protocol)
influxDB 中有 tags 和 fields,那么二者在写入时如何区分呢?
答案看这里:
// Syntax
<measurement>[,<tag_key>=<tag_value>[,<tag_key>=<tag_value>]] <field_key>=<field_value>[,<field_key>=<field_value>] [<timestamp>]
// Example
myMeasurement,tag1=value1,tag2=value2 fieldKey="fieldValue" 1556813561098000000
上述的字段对应关系看下图:
注:不得不说 influxdb 的官方文档是我看过很清晰的,没有之一。
4.1 写入数据
influxdb 写入数据的方式有很多种,此处以直接使用 cli 工具为例。
注:更常使用的方式应该是 client libaray。多种写入方式移步—https://docs.influxdata.com/influxdb/v2.2/write-data/
辩证思维,怎么证明自己写入的数据成功了,很简单,查询一下即可:
4.3 读取数据
既然 influx cli 能够写入数据,那么也一定能够读取数据,所以试试?
注:Flux 是 influxDB 的功能性数据脚本语言,设计用于查询、分析和处理数据。更多使用方式见—https://docs.influxdata.com/influxdb/v2.2/query-data/
5. 碎碎念
中午吃饭刷手机的时候,看到一个很喜欢的博主更新,点进去,被其中的一段话触动到了。所以是喜欢的东西才会有各种好奇的想法吧。虽然最近隔离在家心情偶尔会变的不好,但还是要动起来呀。
-
只活一次的人生,要比谁都炙热。
-
抉择本身没有对和错,每一个抉择,都必然会产生一个结果。我们要明白的是,在做出抉择后将要面对的结果。
-
不管全世界所有人怎么说,我认为自己的感受才是最正确的,无论别人怎么看,我绝不打乱自己的节奏,喜欢的事自然可以坚持,不喜欢怎么也长久不了。
注:博主的话摘自村上春树的《当我跑步时我谈些什么》