InfluxDB时序数据库
InfluxDB 是一个时间序列数据库,用于处理海量写入与负载查询。InfluxDB旨在用作涉及大量时间戳数据的任何用例(包括DevOps监控,应用程序指标,物联网传感器数据和实时分析)的后端存储。
1. InfluxDB时序数据库的安装
有关如何从文件安装RPM软件包的说明,请参阅下载页面。
Red Hat和CentOS用户可以使用yum包管理器安装最新稳定版本的InfluxDB :
cat <<EOF | sudo tee /etc/yum.repos.d/influxdb.repo
[influxdb]
name = InfluxDB Repository - RHEL $releasever
baseurl = https://repos.influxdata.com/rhel/$releasever/$basearch/stable
enabled = 1
gpgcheck = 1
gpgkey = https://repos.influxdata.com/influxdb.key
EOF
将存储库添加到yum配置后,通过运行以下命令安装并启动InfluxDB服务:
sudo yum install influxd
sudo service influxdb start
或者,如果您的操作系统使用的是systemd(CentOS 7 +,RHEL 7+):
sudo yum install influxdb
sudo systemctl start influxdb
2 InfluxDB时序数据库的特点
特点
为时间序列数据专门编写的自定义高性能数据存储。 TSM引擎具有高性能的写入和数据压缩
Golang编写,没有其它的依赖
提供简单、高性能的写入、查询 http api
插件支持其它数据写入协议,例如 graphite、collectd、OpenTSDB
支持类sql查询语句
tags可以索引序列化,提供快速有效的查询
Retention policies自动处理过期数据
Continuous queries自动聚合,提高查询效率
设计理念
同一时间点多次写入同样的数据被认为是重复写入
极少出现删除数据的情况,删除数据基本都是清理过期数据
极少更新已有数据且不会出现有争议的更新,时间序列数据总是新数据
绝大多数写入是针对最新时间戳的数据,并且数据按时间升序添加
数据的规模会非常大,必须能够处理大量的读写操作能够写入和查询数据会比强一致性更重要很多time series非常短暂的存在,所以time series 数量比较大没有哪个point是过于重要的
3.利用命令行操作InfluxDB时序数据库
#显示用户
SHOW USERS
#创建用户
CREATE USER “username” WITH PASSWORD ‘password’
#创建管理员权限的用户
CREATE USER “username” WITH PASSWORD ‘password’ WITH ALL PRIVILEGES
#删除用户
DROP USER “username”
命令行下创建及查询
通过influx命令进行管理,可以使用如下命令创建数据库:
CREATE DATABASE “testDB”
show databases //查询当前的所有数据库
show databases
name: databases
name
_internaltestDB
use testDB //使用某个数据库
4.数据保留策略与连续查询
- 数据保存策略
一般情况下基于时间序列的point数据不会进行直接删除操作,一般我们平时只关心当前数据,历史数据不需要一直保存,不然会占用太多空间。这里可以配置数据保存策略(Retention Policies),当数据超过了指定的时间之后,就会被删除。
SHOW RETENTION POLICIES ON “testDB” //查看当前数据库的Retention Policies
CREATE RETENTION POLICY “rp_name” ON “db_name” DURATION 30d REPLICATION 1 DEFAULT //创建新的Retention Policies
#注释如下:
rp_name:策略名
db_name&