时序数据库InfluxDB

发布于:2025-07-13 ⋅ 阅读:(16) ⋅ 点赞:(0)

一.定义

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

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

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

二、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初始化 

 初始化成功


网站公告

今日签到

点亮在社区的每一天
去签到