时序数据库InfluxDB

一.定义

时序数据库 是一种专门用于高效存储和查询带有时间戳的数据的数据库。如果你的数据是随着时间变化而不断产生,并且你想知道过去某一时刻发生了什么,那么你应该用时序数据库。

这类数据通常具有以下特征:

  • 数据点按时间顺序不断写入(高频写入)
  • 查询通常是基于时间段进行聚合分析
  • 数据量大但更新少,删除也较少

二、InfluxDB 的核心功能与特点

  • 高性能写入能力
    • 支持高并发写入,适合每秒成千上万条数据插入。
    • 写入后自动按时间索引,读取效率高。
  • 时间序列优化的查询语言
    • 提供类似 SQL 的查询语言(Flux / InfluxQL),支持时间范围过滤、聚合计算(如平均值、最大值、求和等)。
  • 数据保留策略(Retention Policy)
    • 可设置数据保留时间(如只保留最近 7 天、30 天、永久等),自动清理旧数据。
  • 标签(Tags)和字段(Fields)类似于关系型数据库中的字段,但做了区分:
    • tags:用于索引,可快速过滤查询(如设备ID、区域、类型)
    • fields:用于存储实际的数值(如温度、电压、计数)
  • 5内置聚合函数和插值功能
    • 自动对时间序列做插值(interpolation)、降采样(downsampling)、窗口聚合(windowing)等操作。

三、与时序数据库相比,关系数据库有哪些不同?

如果你只接触过关系型数据库,那么以下对照表有助于加深你的理解

|------|--------------------------|-------------------|
| 对比维度 | 关系型数据库(MySQL/PostgreSQL) | 时序数据库(InfluxDB) |
| 数据结构 | 表结构固定,需定义 schema | 灵活,无需严格定义 schema |
| 写入频率 | 支持中低频写入 | 极高写入吞吐量(每秒百万级) |
| 时间处理 | 时间只是普通字段 | 时间是核心维度,所有数据都带时间戳 |
| 索引机制 | 支持多列索引 | 默认按时间排序并建立索引 |
| 查询模式 | 支持复杂 JOIN、事务 | 更适合单表聚合查询、时间窗口统计 |
| 扩展性 | 单机为主,分布式部署较难 | 天生为分布式设计 |
| 使用场景 | OLTP、业务系统 | OLAP、监控、物联网、日志分析 |

|---------------|----------------------|
| 关系型概念 | InfluxDB 对应概念 |
| 数据库(Database) | Bucket(桶) |
| 表(Table) | Measurement(测量) |
| 字段(Column) | Tag / Field |
| 行(Row) | 数据点(Data Point)+ 时间戳 |
| SQL 查询 | Flux / InfluxQL 查询语言 |
[思维转换从"表"到"测量"]

四.InfluxDB安装

操作系统:windows10

数据库版本:2.7.12

4.1下载

下载连接

4.2启动

这里需要提醒的是,influxd.exe不能双击运行,需要在cmd中运行,因为它本质上是一个长时间运行的控制台程序,不是 GUI 应用,双击后提示如下:

启动成功,端口8086

启动成功

4.3.配置服务

在cmd窗口启动InfluxDB,是前台进程,将cmd窗口关掉时,InfluxDB服务也就关掉了。 如果你希望开机启动或者后台启动,可参考下面的操作。

  • 安装NSSM
    • 解压下载的 nssm-2.24.zip
    • 找到对应系统的文件夹(如 win64)
    • 将整个 nssm-2.24 文件夹复制到一个简单路径中
  • 安装服务InfluxDB

五.InfluxDB初始化

初始化成功

相关推荐
Neolnfra8 分钟前
SMB、FTP、MySQL... 配置不当,即是漏洞
linux·数据库·mysql·安全·网络安全·系统安全·安全架构
雷神乐乐8 分钟前
Mysql数据泵导入导出数据
数据库·oracle
摇滚侠9 分钟前
Redis 零基础到进阶,Redis 持久化,RDB,AOF,RDB AOF 混合,笔记 28-46
数据库·redis·笔记
李慕婉学姐11 分钟前
基于微信小程序的运动会信息管理系统k6kqgy34(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·微信小程序·小程序
韩立学长19 分钟前
基于Springboot流浪动物救助系统cqy142wz(程序、源码、数据库、调试部署方案及开发环境)系统界面展示及获取方式置于文档末尾,可供参考。
数据库·spring boot·后端
好好沉淀22 分钟前
开发过程中动态 SQL 中where 1=1的作用是什么
java·服务器·开发语言·数据库·sql
曲莫终23 分钟前
springboot集成h2内存数据库运行测试用例
数据库·spring boot·测试用例
她说..23 分钟前
Spring AOP场景5——异常处理(附带源码)
java·数据库·后端·spring·springboot·spring aop
dllxhcjla31 分钟前
MySQL单表
数据库·mysql
叫我龙翔32 分钟前
【Redis】从零开始掌握redis --- 认识redis
数据库·redis·缓存