前言
influxdb是目前比较流行的时间序列数据库。
- 何谓时间序列数据库?
什么是时间序列数据库,最简单的定义就是数据格式里包含Timestamp字段的数据,比如某一时间环境的温度,CPU的使用率等。但是,有什么数据不包含Timestamp呢?几乎所有的数据其实都可以打上一个Timestamp字段。时间序列数据的更重要的一个属性是如何去查询它,包括数据的过滤,计算等等。
Influxdb
Influxdb是一个开源的分布式时序、时间和指标数据库,使用go语言编写,无需外部依赖。
它有三大特性:
- 时序性(Time Series):与时间相关的函数的灵活使用(诸如最大、最小、求和等);
- 度量(Metrics):对实时大量数据进行计算;
- 事件(Event):支持任意的事件数据,换句话说,任意事件的数据我们都可以做操作。
同时,它有以下几大特点:
- schemaless(无结构),可以是任意数量的列;
- min, max, sum, count, mean, median 一系列函数,方便统计;
- Native HTTP API, 内置http支持,使用http读写;
- Powerful Query Language 类似sql;
- Built-in Explorer 自带管理工具。
Influxdb安装
注:本文使用的influxdb version是1.0.2
在讲解具体的安装步骤之前,先说说influxdb的两个http端口:8083和8086
- port 8083:管理页面端口,访问localhost:8083可以进入你本机的influxdb管理页面;(在1.3版本之后不再提供管理页在, ,可以使用第三方的)
- port 8086:http连接influxdb client端口,一般使用该端口往本机的influxdb读写数据。
OS X
-
brew
update
-
brew
install influxdb
Docker Image
docker pull influxdb
Ubuntu & Debian
-
wget
https:/
/dl.influxdata.com/influxdb
/releases/influxdb_1.
0.
2_amd64.deb
-
sudo dpkg -i influxdb_1.
0.
2_amd64.deb
RedHat & CentOS
-
wget
https:/
/dl.influxdata.com/influxdb
/releases/influxdb-
1.0.
2.x86_64.rpm
-
sudo yum localinstall influxdb-
1.0.
2.x86_64.rpm
Standalone Linux Binaries (64-bit)
-
wget
https:/
/dl.influxdata.com/influxdb
/releases/influxdb-
1.0.
2_linux_amd64.tar.gz
-
tar xvfz influxdb-
1.0.
2_linux_amd64.tar.gz
Standalone Linux Binaries (32-bit)
-
wget
https:/
/dl.influxdata.com/influxdb
/releases/influxdb-
1.0.
2_linux_i386.tar.gz
-
tar xvfz influxdb-
1.0.
2_linux_i386.tar.gz
Standalone Linux Binaries (ARM)
-
wget
https:/
/dl.influxdata.com/influxdb
/releases/influxdb-
1.0.
2_linux_armhf.tar.gz
-
tar xvfz influxdb-
1.0.
2_linux_armhf.tar.gz
Influxdb配置
安装后, 在/usr/bin下面有如下文件: influxd influxdb服务器 influx influxdb命令行客户端 influx_inspect 查看工具 influx_stress 压力测试工具 influx_tsm 数据库转换工具(将数据库从b1或bz1格式转换为tsm1格式)在 /var/lib/influxdb/下面会有如下文件夹:
/etc/influxdb/influxdb.conf 默认的配置文件 修改连接参数,重启即可
/var/log/influxdb/influxd.log 日志文件
/var/lib/influxdb/data 数据文件
/var/lib/influxdb/meta 存放数据库元数据
/var/lib/influxdb/wal 存放预写日志文件
/usr/lib/influxdb/scripts 初始化脚本文件夹
/usr/bin/influx 启动数据库
/var/run/influxdb/influxd.pid 服务启动的进程id
/var/cache/yum/influxdb 缓存处理数据
配置文件路径 :/etc/influxdb/influxdb.conf
需启用HTTP相关的参数,用于作为与Grafana通讯的数据源。
Influxdb启动
1、以服务方式(实际启动失败,原因未知) service influxdb start service influxdb stop2、以非服务方式
进入/usr/bin/influxd 启动服务
之后运行influx,进入客户端脚本编辑态,可以进行Influxdb操作。
备注:运行influx.exe 时,influxd.exe不可关闭
Influxdb基本操作
#创建数据库
create database "db_name"
#显示所有的数据库
show databases
#删除数据库
drop database "db_name"
#使用数据库
use db_name
#显示该数据库中所有的表
show measurements
#创建表,直接在插入数据的时候指定表名
insert test,host=127.0.0.1,monitor_name=test count=1
#删除表
drop measurement "measurement_name"
以插入数据为例,
1、以命令行方式:
use testDb
insert test,host=127.0.0.1,monitor_name=test count=1
2、以HTTP接口方式
curl -i -XPOST ‘http://127.0.0.1:8086/write?db=testDb’ --data-binary ‘test,host=127.0.0.1,monitor_name=test count=1’