influxdb数据过期_详解时序数据库InfluxDB|一个不为人知的数据库-db文件

概述

认识influxdb是之前在做docker展示的时候接触的,那时候是跟grafana一起配套用,图形还是挺好看的,趁周六分享给大家。

一、什么是InfluxDB?

InfluxDB是一款用Go语言编写的开源分布式时序、事件和指标数据库,无需外部依赖。该数据库现在主要用于存储涉及大量的时间戳数据,如DevOps监控数据,APP metrics, loT传感器数据和实时分析数据。

InfluxDB特征:

– 无结构(无模式):可以是任意数量的列(tags)。

– 可以设置metric的保存时间。

– 支持与时间有关的相关函数(如min、max、sum、count、mean、median等),方便统计。

– 支持存储策略:可以用于数据的删改(influxDB没有提供数据的删除与修改方法)。

– 支持连续查询:是数据库中自动定时启动的一组语句,和存储策略搭配可以降低InfluxDB的系统占用量。

– 原生的HTTP支持,内置HTTP API。

– 支持类似SQL语法。

– 支持设置数据在集群中的副本数。

– 支持定期采样数据,写入另外的measurement,方便分粒度存储数据。

– 自带web管理界面,方便使用(登入方式:http://< InfluxDB-IP >:8083)。

– 最关键的一点,也是我采用的原因,支持Grafana画图展示。

二、InfluxDB基本概念

在具体的讲解influxdb的相关操作之前先说说influxdb的一些专有名词,这些名词代表什么。先看下面一段Influxdb中的表信息。

InfluxDB是时序数据库,所以怎么都绕不开时间,第一纵列time存储着时间戳,而时间戳是与数据进行关联,这样才能将时间和数据进行展示。

InfluxDB名词database:数据库,根关系型数据库一个概念。

measurement:数据库中的表,就是关系型数据库中的表。

points:表里面的一行数据,就是关系型数据库中的记录。

InfluxDB中独有的一些概念

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

time:每条数据记录的时间,也是数据库自动生成的主索引。

tags:各种有索引的属性。

fields:各种记录的值。

tag set:tag在InfluxDB中会按照字典序排序,不管是tag-key还是tag-value,只要不一致就分别属于两个tag set,例如hostname=server01,device=/data和hostname=server02,device=/data就是两个不同的tag set。

还有三个重要的名词:Series、Retention policy和ShardSeries:相当于是InfluxDB中一些数据的集合,在同一个database中,retention policy、measurement、tag sets完全相同的数据同属于一个series,同一个series的数据在物理上会按照时间顺序排列存储在一起。

Retention policy:存储策略,用于设置数据保留的时间,每个数据库刚开始会自动创建一个默认的存储策略autogen,数据保留时间为永久,之后用户可以自己设置,例如保留最近2小时的数据。插入和查询数据时如果不指定存储策略,则使用默认存储策略,且默认存储策略可以修改。InfluxDB会定期清除过期的数据。

Shard:在InfluxDB中是一个比较重要的概念,它和Retention policy相关联。每一个存储策略下会存在许多shard,每一个shard存储一个指定时间段内的数据,并且不重复,例如7点-8点的数据落入shard0中,8点-9点的数据则落入shard1中。每一个shard都对应一个底层的tsm存储引擎,有独立的 cache、wal、tsm file。

TSM存储引擎主要由几个部分组成:cache、wal、tsm file、compactor。

三、InfluxDB安装配置

1)安装配置# 安装influxdb;

$ yum install influxdb

# 启动influxdb;

$ systemctl start influxdb

# 连接influxdb;

$ influx -database 'test' -host 'localhost' -port '8086'

2)相关文件$ rpm -ql influxdb

# 配置文件;

/etc/influxdb/influxdb.conf

# 日志轮转;

/etc/logrotate.d/influxdb

# 命令行客户端;

/usr/bin/influx

# 查看工具;

/usr/bin/influx_inspect

# 压力测试工具;

/usr/bin/influx_stress

# 数据库转换工具(将数据库从b1或bz1格式转换为tsm1格式);

/usr/bin/influx_tsm

# 服务端;

/usr/bin/influxd

# Systemctl服务管理;

/usr/lib/influxdb/scripts/influxdb.service

/usr/lib/influxdb/scripts/init.sh

................

# 数据目录;

/var/lib/influxdb

# 日志目录;

/var/log/influxdb

3)开启Web

influxdb提供的简单web管理页面,可以用来操作influxdb,默认没有开启,如果想开启需要修改配置文件中[admin]部分,如下:[admin]

# Determines whether the admin service is enabled.

enabled = true

# The default bind address used by the admin service.

bind-address = ":8080"

篇幅有限,今天关于influxdb就介绍到这了,有时间大家可以测试下,一般infulxdb是要跟grafana一起使用的。在有了InfluxDB+Grafana后,你就可以写一些简单的程序了,可以只负责写后端逻辑部分,数据都可以存入InfluxDB,然后通过Grafana展示出来。

后面会分享更多关于devops和DBA内容,感兴趣的朋友可以关注下~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值