2021-02-28

1.1. InfluxDB技术选型原因分析
海缆在线监测系统数据规模较大且需要实现高效的存储和查询,传统数据库无法满足其性能要求,数据时间点、数据位置和采样值之间存在较强的关联关系。
1.2. InfluxDB介绍、特性和基本使用
InfluxDB是一个由InfluxData用go语言开发的开源时序型数据库,专注于海量时序数据的高性能读、高性能写、高效存储与实时分析等,无需外部依赖。

InfluxDB 描述
database 数据库
measurement 数据表
points 数据行

Point由时间戳(time)、数据(field)、标签(tags)组成。

points 描述
time 每个数据记录时间,是数据库中的主索引(会自动生成)
tags 有索引的属
field 性各种记录值(没有索引的属性)

1.2.1. 特性
 基于时间序列,支持与时间有关的相关函数(如最大,最小,求和等)
 可度量性:你可以实时对大量数据进行计算
 基于事件:它支持任意的事件数据;
1.2.2. 基本使用
创建数据库:create database “db_name”
显示所有数据库:show databases
使用数据库:using database “db_name”
删除数据库:drop database “db_name”
插入数据:insert “measurement_name”,tag=values timestamp
显示数据库中所有数据表:show messurements
查询数据表:select * from “measurement_name”
删除数据表:drop mensurement “measurement_name”
1.2.3. InfluxDB保存策略
InfluxDB的数据保留策略(RP) 用来定义数据在InfluxDB中存放的时间,或者定义保存某个期间的数据。一个数据库可以有多个保留策略,但每个策略必须是独一无二的。
创建数据库策率:

CREATE RETENTION POLICY <rp_name> ON <db_name> DURATION <duration> REPLICATION <n> [SHARD DURATION <duration>] [DEFAULT]

创建策率相关说明:
retention_policy_name: 策略名(自定义的)
database_name: 一个必须存在的数据库名
duration: 定义的数据保存时间,最低为1h,如果设置为0,表示数据持久不失效(默认的策略就是这样的)
REPLICATION: 定义每个point保存的副本数,默认为1
default: 表示将这个创建的保存策略设置为默认的
修复数据库策率:


```java
ALTER RETENTION POLICY <rp_name> ON <db_name> DURATION <duration> REPLICATION <n> SHARD DURATION <duration> DEFAULT

查询数据库策率:show retention policies on <tb_name>
删除数据库策率:retention POLICY <rp_name> ON <tb_name>
**1.2.4. InfluxDB 数据保留策略目的**
InfluxDB本身不提供数据的删除操作,因此用来控制数据量的方式就是定义数据保留策略。因此定义数据保留策略的目的是让InfluxDB能够知道可以丢弃哪些数据,从而更高效的处理数据。
**1.3. InfluxDB安装步骤(Linux)**
**1.3.1. YUM安装包方式安装**
第一步:wget https://dl.influxdata.com/influxdb/releases/influxdb-1.2.4.x86_64.rpm
第二步:sudo yum localinstall influxdb-1.2.4.x86_64.rpm
启动服务:service influxdb start
**1.3.2.  InfluxDB相关文件说明**
安装后,在/usr/bin下面有如下文件:
influxd    influxdb服务器
influx      influxdb命令行客户端
influx_inspect  查看工具
influx_stress  压力测试工具
influx_tsm  数据库转换工具

在/var/lib/influxdb/下面会有如下文件夹:
data  存放最终存储的数据,文件以.tsm结尾
meta  存放数据库元数据
wal  存放预写日志文件

**1.4. InfluxDB使用注意事项**
	数据类型包括time、tags、field。Tags类型只能用于“=“查询,field类型支持“=”查询和范围查询
	InfluxDB排序仅支持fime
	Tags都是有索引的,而Field是没有索引的。select的列必须带有一个field,否则是查不出来的。
	InfluxDB的无结构特性,使用时不需要预先创建建表
	InfluxBD数据库支持多种策略,可以在插入和查询时指定策略
	series过度会降低InfluxDB的性能。series的多少,主要是由tag的个数和tag的值决定的,所以如果要降低series的数量,可以从两个方面来考虑。第一,通过合理地规划,来减少不必要的tag。如果某个tag的值分布非常的多,可以考虑下它是否有必要作为tag,是不是作为field更合适。第二,通过设置保留策略,保留更少的数据。influxdb是时序数据库,主要被用来存储监控数据,可以根据具体场景来保留更短的数据,这样的话会有一些旧数据由于过期而被清理掉,从而减少series的数量。

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页