InfluxDB
时序数据
时序数据是一组按照时间维度索引的数据。时序数据在日常生活中随处可见,比如每个整点的温度、湿度等天气数据,每分钟的股票价格数据等。我们常用曲线图、柱状图等形式去展现时序数据,也就是我们常常听到的“数据可视化”。
时序数据库是一种非关系型数据库,以时间作为数据主键,专门用来存储时序数据。
时序数据库的特点
-
高压缩比:由于数据每分每秒都在变化,海量的时序数据往往体量巨大,占用大量硬件资源,所以需要优化数据压缩算法提高数据压缩比。
-
高并发写入:时序数据库采用持续高并发写入数据,无更新的方式,对于时间相同的重复的数据,只保留一份。
-
低延时、高并发查询:通过索引降低查询延时,通过缓存等技术提高数据并发能力。
InfluxDB特性
-
专为时间序列数据编写的定制高性能数据存储。TSM引擎可实现高提取速度和数据压缩
-
完全用Go编写。它可以编译为一个没有外部依赖项的二进制文件
-
简单,高性能的写入和查询HTTP API
-
插件支持其他数据协议,例如Graphite,collected和OpenTSDB
-
类似于SQL的富有表现力的查询语言,旨在轻松查询聚合数据
-
标签允许对系列进行索引,以进行快速有效的查询
-
保留策略可以有效地自动过期数据
-
连续查询会自动计算聚合数据,从而使频繁查询更加有效
二、InfluxDB安装(以centOS为例)
1、下载rpm包
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.8.4.x86_64.rpm
2、使用yum安装
yum localinstall influxdb-1.8.4.x86_64.rpm
3、启动
systemctl start influxdb
4、设置开机自启动
systemctl enable influxdb
5、进入CLI(命令行界面)
在命令行输入命令influx即可启动CLI,并自动连接到本地InfluxDB实例。
6、创建用户及密码
show users // 查看所有用户,默认没有 CREATE USER "root" WITH PASSWORD '123456' WITH ALL PRIVILEGES // 创建root用户,密码'123456',并设置为管理员权限
7、使用用户名密码登录influxdb
influx -username 'root' -password '123456'
三、InfluxDB名词解释
database:数据库,同Mysql等关系型数据库中的“数据库Database”
measurement:数据表,相当于关系型数据库中的“表Table”
point:数据点,表示单条数据记录,相当于关系型数据库中的“一行数据”
Point
Point由时间(time)、数据(field)、标签(tags)三类字段组成。
time:代表每条数据的时间字段,是measurement中的数据主键,因此time字段具有索引属性。一条point只能有一个time。
field:代表各种数据的字段,例如气温、压力、股价等,field字段没有索引属性。一条point可以包括多个field。
tag:代表各类非数据字段,例如设备编码、地区、姓名等,tag字段有索引属性。一条point可以包括多个tag。
四、数据库操作命令
show databases // 显示数据库 create database shhnwangjian // 新建数据库 drop database shhnwangjian // 删除数据库 use shhnwangjian // 使用指定数据库 SHOW MEASUREMENTS // 显示所有表 insert disk_free,hostname=server01 value=442221834240 // 新建表 insert disk_free,hostname=server01 value=442221834240i 1435362189575692182 // 添加数据时,自己写入时间戳 drop measurement disk_free // 删除表
数据保存策略
influxDB是没有提供直接删除数据记录的方法,但是提供数据保存策略,主要用于指定数据保留时间,超过指定时间,就删除这部分数据。
show retention policies on "db_name" // 查看当前数据库Retention Policies create retention policy "rp_name" on "db_name" duration 3w replication 1 default // 创建新的Retention Policies。 // rp_name:策略名; // db_name:具体的数据库名; // 3w:保存3周,3周之前的数据将被删除,influxdb具有各种事件参数,比如:h(小时),d(天),w(星期); // replication 1:副本个数,一般为1就可以了; // default:设置为默认策略 alter retention policy "rp_name" on "db_name" duration 30d default // 修改Retention Policies drop retention policy "rp_name" on "db_name" // 删除Retention Policies
浙公网安备 33010602011771号