InfluxDB是一个开源的、高性能的时序型数据库,并且在时序型数据库DB-Engines Ranking上排名第一。专门用于收集、存储、处理和可视化时间序列数据的平台。 时间序列数据是按时间顺序索引的数据点序列。数据点通常由同一来源的连续测量组成,用于跟踪随时间的变化。现在更多的企业会通过时序存储和数据分析来获得预测能力和实时决策能力,从而为客户提供更好的使用体验。这意味着底层数据平台需要发展以应对新的工作负载的挑战,以及更多的数据点、数据源、监控维度、控制策略和精度更高的实时响应,对下一代时序中台提出了更高的要求
时间序列数据的示例包括:
InfluxDB 数据模型将时间序列数据组织到存储桶和测量中。一个桶可以包含多个测量值。测量包含多个标签和字段。
批量插入,每批1万条
配置:
MySQL: V5.7
InfluxDB: V1.8.0
结论:插入速度InfluxDB是MySQL的两倍,查询速度InfluxDB是MySQL的45倍(查询数据量很少的情况,大约1000条左右)
结论:查询速度InfluxDB是MySQL的2倍多
结论:多线程下查询速度InfluxDB是MySQL的4倍
结论:插入速度InfluxDB是MySQL的2倍多
单线程:
多线程:
而写数据的瓶颈在于带宽:
参考文献: https://developer.aliyun.com/article/899126 感谢提供测试参考!
influxDB支持MacOS、Windows、Linux、Docker等下载安装,本文提供 Docker 版的安装教程,毕竟方便哈哈????。若需要下载其他版本可以到influxDB官方获取。
建议获取2.0版本以上的,自带监控UI。
用docker run运行 InfluxDB v 2.x Docker 映像。公开端口8086,InfluxDB 使用该端口通过InfluxDB HTTP API进行客户端-服务器通信。
docker run --name influxdb -p 8086:8086 influxdb:2.7.0
docker run \
--name influxdb \
-p 8086:8086 \
--volume D:/dockerMountDirectory/influxdb2:/var/lib/influxdb2 \
influxdb:2.7.0
也可以把容器的启动信息使用docker compose构建好,下次启动只需要一行命令就可以了
新建 docker-compose.yml
version: '3'
services:
#influxdb服务
influxdb:
container_name: influxdb2.7
image: influxdb:2.7
ports:
- '8086:8086'
restart: always
volumes:
- D:/dockerMountDirectory/influxdb2:/var/lib/influxdb2
- D:/dockerMountDirectory/influxdb2/configs/influxdb.conf:/etc/influxdb2/influxdb.conf
environment:
TZ: "Asia/Shanghai"
安装好后并启动,浏览器输入localhost:8086进入到管理页面
由于我已经创建了账户,所以就直接登录了,一般第一次进来的时候会提示你创建账号和密码,然后登录进到主页面
总之,InfluxDB 具备秒级写入百万级时序数据的性能,提供高压缩比低成本存储、预降采样、多维聚合计算、可视化查询结果等功能,解决由设备采集点数量巨大、数据采集频率高造成的存储成本高、写入和查询分析效率低的问题。