数据中心-时序数据库InfluxDB

目录

一、InfluxDB介绍

1.1 什么是InfluxDB?

1.2 应用场景

1.3 特点

1.4 版本差异

二、数据模型和存储架构

2.1 相关概念

2.2 存储架构

三、InfluxDB基础操作

3.1 数据库操作

3.2 数据表操作

显示所有表

新建表

删除表

3.3 数据保存策略

查看保存策略

创建保存策略

修改保存策略

 删除保存策略

3.4 数据查询

查询全部

条件查询

or查询

模糊查询

排序查询 

去重

分组

聚合函数

分页


一、InfluxDB介绍

1.1 什么是InfluxDB?

InfluxDB是一个开源的时间序列数据库,特别为处理和分析带有时间戳的数据而设计。

它由InfluxData公司开发,并使用Go语言编写,目标在提供高性能的数据写入与查询能力。

1.2 应用场景

  ▪  物联网(IoT):处理来自传感器的大量实时数据,用于环境监测、智能城市、工业自动化等领域.

  ▪  系统监控:收集和分析服务器、应用程序的性能指标,如CPU使用率、内存占用、网络流量.

  ▪  实时分析:在金融、电商等行业中,用于实时交易分析、市场趋势预测等.

1.3 特点

  ▪  高写入性能

        专为时序数据的 “写多读少” 场景优化,支持每秒数十万条数据写入(取决于硬件),写入时跳过复杂索引和事务检查,优先保证吞吐量

  ▪  时间优化的存储

        采用 TSM(Time-Structured Merge Tree)存储引擎,数据按时间分段存储,查询时可快速定位时间范围,避免全表扫描。

  ▪  灵活的数据模型

        不依赖固定表结构,支持动态字段扩展,适合数据格式多变的场景(如不同传感器的指标差异)。

  ▪  内置数据生命周期管理

        通过数据保留策略(Retention Policy, RP) 自动删除过期数据,减少存储成本(如只保留最近 30 天的监控数据)。

  ▪  专用查询语言

        支持 InfluxQL(类 SQL,易上手)和 Flux(函数式语言,支持复杂数据处理,如跨时间范围聚合、数据转换)。

总的来说;非常适合对实时大量数据进行存储与计算

1.4 版本差异

InfluxDB 有两个主要版本,架构和功能差异较大:

二、数据模型和存储架构

2.1 相关概念

  • Measurement: 主要用来存储具有相似特征或属于同一类别的数据点集合,类似于关系型数据库中的表(table);包含了列Timestamp时间戳,field字段和tag标签

  • Field set: 每组field key和field value的集合,即我们需要的字段,如internale[key] = 76[value], external[key]= 18[value]。不可索引

  • Tag set: 不同的每组tag key和tag value的集合,如device[key]= dev1[value], buiding[key]= b1[value]。可索引

  • Point:表里面的一行数据,由时间戳(timestamp)、标签(tag)、字段(field)和组成:

    • 时间戳time:每条数据记录的时间,也是数据库自动生成的主索引,如果时间戳没有指定。那么InfluxDB就使用当前系统的时间戳(纳秒)

    • 字段field:字段包含数据的实际值,可以是各种数据类型(整数、浮点数、字符串、布尔值等);与标签不同,字段在查询时可以进行数学运算。

    • 标签tag:用于索引和过滤数据;通常是字符串类型。

2.2 存储架构

三、InfluxDB基础操作

这里我已经进行安装

# 进入InfluxDB的命令行终端
docker exec -it influxdb /bin/bash# 连接InfluxDB
influx

3.1 数据库操作

连接InfluxDB:

进入InfluxDB的命令行终端,再连接InfluxDB

# 进入InfluxDB的命令行终端
docker exec -it influxdb /bin/bash# 连接InfluxDB
influx

数据库操作:

# 显示数据库
show databases# 创建数据库
create database itheima# 删除数据库
drop database itheima# 使用数据库
use itheima

3.2 数据表操作

显示所有表
# 显示所有的 measurement
show measurements

 

新建表
insert measurement+","+tag1=value1,tag2=value2 + 空格 + field1=value1,field2=values2-- 例如:对measurement为tb_user的插入数据;有一个tag索引名为region,值为广东;有三个field分别是age,high,weight 对应的值分别为25、175、130
insert tb_user,region=广东 name="张三",age=25,high=175,weight=130

删除表
-- 删除语法
drop measurement 表名-- 例如:删除名为 tb_user 的measurement
drop measurement tb_user

3.3 数据保存策略

查看保存策略
show retention policies on 数据库名称-- 例如:查看 point_data 数据库的保存策略
show retention policies on point_data

创建保存策略
-- 语法
create retention policy 策略名 on 数据库名 duration 保留时长 replication 副本个数 [default]-- 示例:创建point_data数据库的默认保存策略名字为 my_retention ,保留时长为24小时,副本数1个
create retention policy my_retention on point_data duration 24h replication 1 default-- 示例:同样的,但是保存时长设置为3天,但是不设置为默认的保存策略的话就不加default
create retention policy my_retention2 on point_data duration 3d replication 1

修改保存策略
-- 语法
alter retention policy 策略名 on 数据库名 duration 时长 default(可选)-- 例如:修改point_data数据库中的my_retention2策略,保留时长为2天,并设置为默认
alter retention policy my_retention2 on point_data duration 2d default
 删除保存策略
drop retention policy 策略名 on 数据库名-- 例如:删除point_data数据库中策略名为 my_retention2 的策略
drop retention policy my_retention2 on point_data--- 删除保存策略如果是默认的;则不会自动的指定一个策略为默认;不过可以修改
alter retention policy autogen on point_data default

3.4 数据查询

查询全部
-- 插入数据
insert tb_user,region=广东 name="张三",age=25,high=175,weight=130
insert tb_user,region=湖南 name="李四",age=21,high=177,weight=135
insert tb_user,region=广东 name="王五",age=28,high=178,weight=138-- 查询数据
select * from tb_user

条件查询
-- 查询名字为 李四,年龄为21 的用户
select * from tb_user where "name"='李四' and age=21

or查询
-- 查询姓名为张三或李四
select * from tb_user where "name"='张三' or "name"='李四'

模糊查询
-- 查询名字中包含王的
select * from tb_user where "name"=~/王/

排序查询 
-- 只能根据时间排序;根据创建时间降序排序
select * from tb_user order by time desc

去重
insert tb_user,region=广西 name="钱六",age=28,high=178,weight=138-- 对age字段去重查询;注意:只能在distinct 之后接一个字段
select distinct age from tb_user

分组

在InfluxDB中,GROUP BY 语句主要用于根据时间序列数据的标签(tags)进行分组。GROUP BY 仅能用于标签(tag)字段,而不能直接用于字段(field)进行分组。

-- 根据region进行分组
select * from tb_user group by region
-- 统计所有年龄之和
select sum(age) from tb_user

聚合函数
-- 统计一条记录中;每个非空field的总数
select count(*) from tb_user

-- 求用户表的广东地区的用户平均年龄
select mean(age) from tb_user where region='广东'

-- 查询身高中间值
select median(high) from tb_user-- 插入数据后再查看
insert tb_user,region=湖南 name="赵六",age=28,high=171,weight=110

-- 返回最大与最小年龄之间的差值
select spread(age) from tb_user

分页
-- 查询第1页,每页3条数据
select * from tb_user limit 3 offset 0-- 查询第2页,每页3条数据
select * from tb_user limit 3 offset 3



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/916907.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/916907.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

webpack-高级配置

多入口文件 如何输出多个html文件 输入位置 需要写两个entryoutput位置也要改一下 加一个name避免重名 在生成html时 要根据每一个入口都写一个插件 并且chunks要写好 当前html引入哪些文件如何抽离压缩css文件 安装插件在rules里面添加插件plugins中添加css抽离代码压缩css抽离…

WinForm组件之Label 控件

Label 控件Label 控件是 WinForm 中最基础、最常用的控件之一,主要用于在界面上显示文本信息,通常作为说明、提示或标题,不直接接受用户输入。它是构建用户界面的基础组件,在引导用户操作、展示状态信息等方面发挥重要作用。Label…

鸿蒙中相册权限弹窗

model.json5配置权限{"name": ohos.permission.READ_MEDIA,"reason":"$string:permission_reason_IMG","usedScene": {}}ui使用const url albumClass.onRequestCameraPermission()类import { abilityAccessCtrl, common, PermissionR…

智能车辆热管理测试方案——提升效能与保障安全

车辆热管理在能源危机出现、汽车排放法规日益严格以及人们对汽车舒适性要求更高的背景下应运而生。将各个系统或部件如冷却系统、润滑系统和空调系统等集成一个有效的热管理系统;控制和优化车辆的热量传递过程,保证各关键部件和系统良好运行;…

如何提升 TCP 传输数据的性能?详解

TCP 会保证每一个报文都能够抵达对方,它的机制是这样:报文发出去后,必须接收到对方返回的确认报文 ACK,如果迟迟未收到,就会超时重发该报文,直到收到对方的 ACK 为止 所以,TCP 报文发出去后&…

WiFi连接简单流程

WiFi连接流程与Debug方法一、WiFi连接全流程与详细日志解读 WiFi连接是一个多阶段、跨层次的复杂过程,涉及物理层、链路层、网络层和应用层的多种协议协作。整个流程包括AP初始化、终端扫描、认证、关联、四次握手、DHCP获取IP、网络可用与后续服务。1. AP初始化与参…

Python——Pandas库,超详细教程

前言1、Python的Pandas是一个基于Python构建的开源数据分析库,它提供了强大的数据结构和运算功能。2、Series:一维数组,类似于Numpy中的一维array,但具有索引标签,可以保存不同类型的数据,如字符串、布尔值…

go语言的gRPC教程-protobuf基础

一、前言 RPC,全称Remote Procedure Call,中文译为远程过程调用。通俗地讲,使用RPC进行通信,调用远程函数就像调用本地函数一样,RPC底层会做好数据的序列化与传输,从而能使我们更轻松地创建分布式应用和服…

Linux基本指令,对路径的认识

引言简单介绍一些Linux的基本指令,快速上手Linux操作系统。一、ls指令语法:ls [选项] [目录或文件]功能::对于目录,该命令列出该目录下的所有子目录与文件。对于文件件,将列出文件名以及其他信息常用选项&a…

25. html 使用的字符集是什么,有什么特点

总结 utf-8&#xff0c;支持所有语言一、HTML 默认使用的字符集✅ HTML 页面推荐使用 UTF-8 字符集<meta charset"UTF-8" />这是 HTML5 中推荐的标准字符编码&#xff0c;用于定义网页中字符的编码方式。二、什么是字符集&#xff08;Character Encoding&#…

MySQL 读写分离(含示例代码)

背景 面对日益增加的系统访问量,数据库的吞吐量面临着巨大瓶颈。对于同一时刻有大量并发读操作和较少写操作类型的应用系统来说,将数据库拆分为主库和从库,主库负责处理事务性的增删改操作,从库负责处理查询操作,能够有效的避免由数据更新导致的行锁,使得整个系统的查询性…

C#中Visual Studio平台按照OfficeOpenXml步骤

找到包的地址&#xff1a; NuGet Gallery | DocumentFormat.OpenXml.Framework 3.3.0 https://nuget.info/packages 报错&#xff1a; 严重性 代码 说明 项目 文件 行 禁止显示状态 错误 无法解析依赖项“EPPlus”。使用的源: Officeopenxml, Mic…

【Linux】重生之从零开始学习运维之备份恢复

备份恢复准备工作16主机-ubuntu系统准备日志目录mkdir -p /data/mysql/logs/ chown mysql:mysql -R /data/mysql定制日志配置vim /etc/mysql/mariadb.conf.d/50-server.cnf log_bin/data/mysql/logs/binlog systemctl restart mariadb删除db1数据库drop database db1;13主机-ub…

VoIP技术全面深度学习指南:从原理到实践的认知进化

一、VoIP技术的本质认知与历史演进 1.1 技术本质的深层理解 VoIP&#xff08;Voice over Internet Protocol&#xff0c;IP语音传输&#xff09;从根本上代表了通信技术的范式转换。这不仅仅是将模拟语音信号数字化那么简单&#xff0c;而是将传统的电路交换模式彻底转向包交换…

CentOS Nginx 1.13.9 部署文档

以下是 Nginx 1.13.9 的详细安装步骤&#xff08;基于 CentOS/Ubuntu 系统&#xff09;&#xff1a;1. 安装依赖 CentOS/RHEL sudo yum install -y gcc pcre pcre-devel zlib zlib-devel openssl openssl-develUbuntu/Debian sudo apt update && sudo apt install -y b…

CSS-in-JS 动态主题切换与首屏渲染优化

动态主题切换的实现方式1. 使用 CSS 变量&#xff08;CSS Custom Properties&#xff09;CSS 变量是实现主题切换最直接的方式&#xff1a;:root {--primary-color: #4285f4;--background-color: #ffffff;--text-color: #333333; }[data-theme"dark"] {--primary-col…

不止 “听懂”,更能 “感知”!移远通信全新AI 音频模组 重新定义智能家居“听觉”逻辑

7月29日&#xff0c;在 2025 世界人工智能大会&#xff08;WAIC&#xff09;期间&#xff0c;移远通信正式发布全新 VA500-GL AI 音频模组。该产品基于本地化 AI 算法&#xff0c;为智能家电赋予精准 “听觉” 与主动交互能力&#xff0c;借助环境状态智能检测、离线语音控制及…

【Python】 切割图集的小脚本

Python 切割图片脚本 前言&#xff1a; 有短时间没写博客了&#xff0c;今天打算再写一篇MonoGame的教程&#xff0c;这篇是我再做我自己的2D 游戏项目的时候我需要一些已经切割好的图片但我得到图片是合在一起图集&#xff0c;这个脚本适合正在做2D游戏开发且不依赖于游戏引…

网络安全是什么?手把手教你认识网络安全

网络安全是什么&#xff1f;手把手教你认识网络安全 提到网络安全&#xff0c;不少人会联想到电影里黑客指尖翻飞攻破系统的炫酷场景。但实际上&#xff0c;它并非遥不可及的技术名词&#xff0c;而是与我们日常生活息息相关的 “数字保镖”。从手机支付密码到社交账号信息&am…

AtCoder Beginner Contest 416(2025.7.26)

文章目录A Vacation ValidationB 1D Akari&#xff08;补&#xff09;C Concat (X-th)&#xff08;补&#xff09;题目考查题意简述解法思路 &#xff1a;AC代码D Match, Mod, Minimize 2&#xff08;补&#xff09;题目分数/评级题目考查时间复杂度题意简述解法思路 &#xff…