1 InfluxDB简介
InfluxDB是一款用Go语言编写的开源分布式时序、事件和指标数据库。
官网:https://www.influxdata.com
1.1 特色
InfluxDB的主要特色
1)无结构(无模式):可以是任意数量的列
2)可拓展的
3)支持min, max, sum, count, mean, median 等一系列函数,方便统计
4)原生的HTTP支持,内置HTTP API
5)强大的类SQL语法
6)自带管理界面,方便使用
1.2 主要概念
InfluxDB | mysql |
---|---|
bucket | database |
measurement | table |
point | column |
- point
代表了一条数据,由 timestamp、tag set、 field set组成。 - tag set
不同的每组tag key和tag value的集合。
如上:province、station就是tag key。 - field set
每组field key和field value的集合;
如上:temperature、wind就是field key。 - retention policy(RP)
数据存储策略(默认策略为autogen)InfluxDB没有删除数据操作,规定数据的保留时间达到清除数据的目的; - Continuous Query (CQ)
是在数据库内部自动周期性跑着的一个InfluxQL的查询,CQs需要在SELECT语句中使用一个函数,并且一定包括一个GROUP BY time()语句。 - series
由retention policy,measurement和tag set的集合;
2 InfluxDB下载安装
2.1 下载安装influxdb2-2.6.0
有2种安装方式:
- Install InfluxDB as a service with systemd
- Manually download and install the influxd binary
这里选择第1种安装方式(service)。
第1步:下载influxdb2-2.6.0-amd64.deb文件:
wget https://dl.influxdata.com/influxdb/releases/influxdb2-2.6.0-amd64.deb
第2步:安装influxdb2-2.6.0-amd64.deb:
sudo dpkg -i influxdb2-2.6.0-amd64.deb
第3步:启动service:
sudo service influxdb start
第4步:进入influxDb:
2.2 下载安装 influxdb2-client
第1步:下载influxdb2-client-2.6.1-linux-amd64.tar.gz文件:
wget https://dl.influxdata.com/influxdb/releases/influxdb2-client-2.6.1-linux-amd64.tar.gz
第2步:解压:
tar xvzf path/to/influxdb2-client-2.6.1-linux-amd64.tar.gz
第3步:修改文件夹的名称(路径简洁一些)。
mv influxdb2-client-2.6.1-linux-amd64 influxdb2-client
第4步:安装:
apt install influxdb2-client
参看安装的版本:
influx version
3 InfluxDB初始化
初始化的方式:
- 通过influx 命令,
- 通过web管理后台。
这里通过第2种方式。
InfluxDB 默认自带了一个 web 管理后台,地址:
http://localhost:8086/
第一次登录时就可以初始化。
4 InfluxDB操作
InfluxDB提供三种操作方式:
- 客户端命令行方式
- HTTP API接口
- 各语言API库
这里使用第1种方式进行入门。InfluxQL语言类似sql语言。
第1步:登录认证。
进入web管理后台,复制token。
输入:
influx config create --active -n config-name -u http://localhost:8086 -t rXaunmbAu-Bu5NvWukcp2SVM9aqFDOBf1bsDMr3QybljupHnKbdDzYpgjuo9B5WE3pPL4rYvU_OdYcF73j4HqA== -o orgName
其中:
-t: 就是复制的token;
-orgName: 初始化时的组织名称。
第2步:进入InfluxQL的模式:
influx v1 shell
设置一下时间格式:
precision rfc3339
第3步:查询bucket:
show databases
第4步:使用bucket:
use bucket
第5步:新建measurement:weather,插入两条数据:
insert weather,provice=西藏,station=珠穆朗玛峰 temperature=-60,wind=18
insert weather,provice=北京,station=八达岭长城 temperature=-9,wind=8
第6步:查看measurement:
show measurements
第7步:查看数据:
select * from weather
第8步:查看tag keys:
show tag keys
第9步:查看field keys:
show field keys
第10步:查看RP:
show retention policies
第11步:退出:
exit