Influxdb 数据库专题

发布时间: 更新时间: 总字数:1006 阅读时间:3m 作者: 分享 复制网址
专栏文章
  1. Influxdb v1.x 介绍
  2. Influxdb 1.3.x 升级到 1.7.x
  3. Chronograf 用户界面组件

本文介绍 influxdb数据库(database)表(measurements)的概念,增、删、改、查操作。并结合关系型数据库MySQL对比介绍。TDengine 可以作为 influxdb 的替代方案,它还支持 TTL 机制、数据压缩、流式计算等功能,并在性能上有很大的提升。

简介

InfluxDB是一个开源的时序数据库,使用Rust语言开发,特别适合用于处理和分析资源监控数据这种时序相关数据。而InfluxDB自带的各种特殊函数如求标准差,随机取样数据,统计数据变化比等,使数据统计和实时分析变得十分方便。

influxdb 与 Mysql 对比

库、表比较

influxDB 传统数据库中的概念
database 数据库
measurement 数据库中的表
points 表里面的一行数据

Influxdb 数据的构成:Line protocol

  • Line protocol参考
  • Point由时间戳(time)数据(field)标签(tags)组成。
# Format
<measurement>[,<tag-key>=<tag-value>...] <field-key>=<field-value>[,<field2-key>=<field2-value>...] [unix-nano-timestamp]

# Syntax
measurementName,tagKey=tagValue fieldKey="fieldValue" 1465839830100400200
--------------- --------------- --------------------- -------------------
       |               |                  |                    |
  Measurement       Tag set           Field set            Timestamp
Point属性 传统数据库中的概念
timestamp 每个数据记录时间,是数据库中的主索引(会自动生成)
fields 各种记录值(没有索引的属性)也就是记录的值:温度, 湿度
tags 各种有索引的属性:地区,海拔
  • measurement 表,必须
  • tag_set 可索引数据,可选
  • field_set 数据,必须
  • timestamp 时间戳,可选,默认插入时刻的时间戳
  • point 数据点,时间序列中某个时刻的数据
  • series 时间序列,serial key 相同的数据集合
    • 所有在数据库中的数据,都需要通过图表来展示,而这个series表示这个表里面的数据,可以在图表上画成几条线:通过tags排列组合算出来
    • series key = measurement + tag + field key
    • 具体可以通过 SHOW SERIES FROM "表名" 进行查询

TICK Stack 组成

Influx Diagram

图片摘自

  • 数据存储组件 Influxdb:存储时间序列数据
  • 收集、报告指标和事件的代理 Telegraf
  • 用户界面组件:Chronograf
    • InfluxDB 1.x 组件
  • 数据处理平台 Kapacitor:实时数据流处理引擎,并向 Chronograf 中创建和发送警报,官网
    • KapacitorInfluxDB 1.x 的本地数据处理引擎,是 InfluxDB 2.0 平台的一个集成组件

kapacitor 安装

wget https://dl.influxdata.com/kapacitor/releases/kapacitor_1.6.5-1_amd64.deb
sudo dpkg -i kapacitor_1.6.5-1_amd64.deb
sudo systemctl start kapacitor

Kapacitor task 列表:

kapacitor list tasks

Influx HA

influx 开源版本不支持HA,可以通过如下方式实现(针对 v1.x 版本,区别参考):

influx v2 HA 支持的不太好,可以尝试如下配置:

  • Replicate data
    • 仅支持 write
    • 最大批量大小为 500 kB(通常为 250 至 500 line protocol 行)

应用 & 扩展

参考

  1. https://docs.influxdata.com/influxdb/v1.6/administration/ports/#enabled-ports
  2. https://docs.influxdata.com/influxdb/v1.3/introduction/installation/
Home Archives Categories Tags Statistics
本文总阅读量 次 本站总访问量 次 本站总访客数