influxdb简介
influxdb是一款常年在db-engine使用排名第一的时序数据库,提供存储管理、用户管理、http接口、各类语言API接口。
TSM
时序数据使用类似 LSM Tree 的 TSM Tree (Time Series Merge Tree
)存储,而且是一种「列式」存储结构。
数据写入时:
- 先保存到 cache 和 WAL 当中
- 当 WAL 当中数据超出阈值时,将 WAL 文件写入到 level 1 的 TSM 文件当中,cache 和 WAL 也随之清空
- 每个 TSM 文件主要分成两部分:时序数据,以及时序数据的索引,通过索引可以使用二分查找找到我们需要的数据
- 随着 TSM 文件变多,系统会将多个小 的TSM 文件会合并成一个的更大的 TSM 文件,持续这个过程保证文件数量不会过多
- TSM 文件的合并策略是比较老的 size-tiered 策略,将小的文件压缩成大的文件,这一点和 leveldb 不太一样,leveldb 要严格保证每个 level 下的文件没有重叠,但是 influxdb 不会。
之所以这么设计,应该是因为查询时序数据的时候,一般会根据时间进行筛选,而大部分时候每个 TSM 文件当中都是越老的文件数据也越老,数据天然会按照时间排序,虽然会有重叠的情况,但是权衡利弊,最终可以容忍这种情况,查询的时候做数据合并的成本更小。
TSI
TSI 是 Time Series Index
的缩写,influxdb 用 TSI 来保存时序数据的倒排索引。可以通过 TSI 快速查询到某个表中,包含某个 tag 的 series 都有哪些。
TSI 的另一个工作是将倒排索引保存在磁盘当中,在 TSI 之前,influxdb 完全是使用内存存储倒排索引的,当时序数据变多的时候,特别是「表」变多的时候,倒排索引消耗的内存会飙升。TSI 使用类似 TSM 的文件结构来存储索引。
inflxdb数据库安装
centos安装
- 下载地址
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.10.x86_64.rpm
sudo yum localinstall influxdb-1.7.10.x86_64.rpm
- 安装
yum localinstall influxdb-1.7.10.x86_64.rpm
- 卸载
rpm -qa | grep influx
rpm -e influxdb-1.7.10.x86_64
- 启动
service influxdb start
systemctl enable influxdb
systemctl start influxdb
systemctl restart influxdb
systemctl stop influxdb
windows
https://dl.influxdata.com/influxdb/releases/influxdb-1.7.10_windows_amd64.zip unzip influxdb-1.7.10_windows_amd64.zip
docker安装
docker pull influxdb
可视化UI-Chronograf
docker安装
docker pull quay.io/influxdb/chronograf:1.7.17
centos
wget https://dl.influxdata.com/chronograf/releases/chronograf-1.7.17.x86_64.rpm
sudo yum localinstall chronograf-1.7.17.x86_64.rpm
windows
https://dl.influxdata.com/chronograf/releases/chronograf-1.7.17_windows_amd64.zip
unzip chronograf-1.7.17_windows_amd64.zip
数据收集器-Telegraf
docker安装
docker pull telegraf
centos
wget https://dl.influxdata.com/telegraf/releases/telegraf-1.13.3-1.x86_64.rpm
sudo yum localinstall telegraf-1.13.3-1.x86_64.rpm
windows
wget https://dl.influxdata.com/telegraf/releases/telegraf-1.13.3_windows_amd64.zip
unzip telegraf-1.13.3_windows_amd64.zip
处理和监控服务-Kapacitor
docker安装
docker pull kapacitor
centos
wget https://dl.influxdata.com/kapacitor/releases/kapacitor-1.5.4-1.x86_64.rpm
sudo yum localinstall kapacitor-1.5.4-1.x86_64.rpm
windows
wget https://dl.influxdata.com/kapacitor/releases/kapacitor-1.5.4_windows_amd64.zip
unzip kapacitor-1.5.4_windows_amd64.zip