时序数据预测:TDengine 与机器学习框架的结合(一)
一、引言
在当今数字化时代,时序数据如潮水般涌来,广泛存在于物联网、工业监控、金融交易、气象监测等众多领域。这些按时间顺序记录的数据蕴含着丰富的信息,对其进行准确预测,能够为企业和组织的决策提供有力支持,带来巨大的价值。例如在工业领域,通过预测设备的运行状态,可以提前进行维护,避免故障带来的生产损失;在能源领域,准确预测能源消耗,有助于优化能源分配,降低成本。
TDengine 作为一款高性能的开源时序数据库,专门针对时序数据的特点进行了优化设计,具备高效的数据存储和查询能力,能够轻松应对海量时序数据的处理挑战。而机器学习框架,如 TensorFlow、PyTorch 等,则提供了强大的算法和工具,用于构建各种预测模型,挖掘数据中的潜在模式和规律。
将 TDengine 与机器学习框架相结合,能够实现优势互补。TDengine 负责高效地存储和管理时序数据,为机器学习模型提供稳定可靠的数据来源;机器学习框架则利用这些数据进行模型训练和预测,发挥其强大的数据分析能力。这种结合在时序数据预测领域展现出了巨大的潜力和应用前景,能够帮助企业更准确地预测未来趋势,提前做出决策,提升竞争力。本文将深入探讨 TDengine 与机器学习框架的结合,为相关领域的开发者和研究者提供有价值的参考。
二、TDengine:强大的时序数据库
2.1 TDengine 简介
TDengine 是涛思数据专为物联网、车联网、工业互联网、IT 运维等设计和优化的大数据平台 ,其核心模块是高性能、集群开源、云原生、极简的时序数据库。它能安全高效地将大量设备、数据采集器每天产生的高达 TB 甚至 PB 级的数据进行汇聚、存储、分析和分发,对业务运行状态进行实时监测、预警,提供实时的商业洞察。
TDengine 从设计之初就充分考虑了时序数据的特点,通过创新的存储引擎设计,实现了高效的数据写入和查询。与传统的关系型数据库相比,TDengine 在处理时序数据时具有更高的性能和更低的存储成本。同时,TDengine 还支持分布式部署,能够轻松应对海量数据的存储和处理需求。
2.2 核心特性
- 高性能:TDengine 采用了一系列优化技术,如列式存储、数据压缩、索引优化等,使得其在数据写入和查询方面具有极高的性能。例如,在处理物联网设备产生的大量时序数据时,TDengine 能够实现每秒数百万条数据的写入,并且查询响应时间极短,能够满足实时监测和分析的需求。在一个实际的物联网项目中,使用 TDengine 存储传感器数据,每秒可以处理 500 万条数据的写入,相比其他数据库性能提升了数倍。
- 分布式架构:TDengine 支持分布式部署,能够通过水平扩展来提高系统的存储容量和处理能力。在分布式环境下,TDengine 能够自动进行数据分片和负载均衡,确保系统的高可用性和高性能。当数据量不断增长时,可以轻松添加新的节点,实现系统的无缝扩展。某大型工业互联网平台,使用 TDengine 构建分布式时序数据库集群,管理着数十亿个设备的时序数据,系统运行稳定,性能卓越。
- 支持 SQL:TDengine 支持标准的 SQL 查询语言,这使得熟悉 SQL 的开发者可以轻松上手。同时,TDengine 还针对时序数据的特点进行了 SQL 扩展,提供了丰富的时序分析函数,如时间序列聚合、插值、差分等,方便用户进行复杂的数据分析。例如,使用 TDengine 的 SQL 扩展,可以轻松计算出设备的平均运行温度、最大负载等指标。
- 灵活的数据模型:TDengine 采用了超级表(Super Table)的概念,允许用户将具有相同结构的多个表进行统一管理,从而简化数据模型的设计。在物联网场景中,不同的传感器可能具有相同的测量指标,使用超级表可以将这些传感器的数据存储在同一个超级表中,通过标签(Tag)来区分不同的传感器,大大提高了数据管理的效率。
- 内建系统功能:TDengine 内置了缓存、流式计算和数据订阅等功能,减少了系统设计的复杂度。其缓存功能可以加速数据的读取,流式计算功能可以实时处理和分析数据,数据订阅功能则可以实现数据的实时分发。以智能电网为例,通过 TDengine 的流式计算功能,可以实时监测电网的运行状态,及时发现并处理异常情况。
2.3 应用场景
- 物联网:在物联网领域,大量的设备会产生海量的时序数据,如传感器数据、设备状态数据等。TDengine 能够高效地存储和管理这些数据,为物联网应用提供强大的数据支持。例如,智能家居系统中,各种智能设备(如智能电表、智能水表、智能摄像头等)产生的时序数据可以存储在 TDengine 中,通过对这些数据的分析,可以实现设备的智能控制、能源管理等功能。
- 工业互联网:工业互联网中,生产设备的运行数据、工艺参数数据等都是时序数据。TDengine 可以帮助企业实时监测设备的运行状态,预测设备故障,优化生产流程。在制造业中,通过 TDengine 存储和分析生产线上设备的运行数据,可以及时发现设备的潜在问题,提前进行维护,避免生产中断,提高生产效率。
- 车联网:车联网产生的数据包括车辆的行驶数据、位置数据、故障数据等,这些数据对于车辆的监控、调度和安全管理具有重要意义。TDengine 能够快速处理车联网中的海量时序数据,为车联网应用提供数据支持。例如,通过对车辆行驶数据的分析,可以实现智能驾驶辅助、车辆远程诊断等功能。
- 电力行业:电力行业中,电网的运行数据、电力负荷数据等都是时序数据。TDengine 可以用于电力数据的存储和分析,帮助电力企业实现电网的实时监测、负荷预测、故障诊断等功能。在智能电网建设中,TDengine 可以存储电网中各种设备的运行数据,通过对这些数据的分析,实现电网的优化调度,提高电力系统的稳定性和可靠性。
三、机器学习框架基础
3.1 常见机器学习框架介绍
- Scikit-learn:作为基于 Python 语言的免费机器学习库,Scikit-learn 整合了多种成熟的算法,支持分类、回归、降维和聚类等常见机器学习任务 。它的 API 设计简洁且一致,所有模型共享一套标准化的接口,如 fit(拟合)、predict(预测)和 score(评分)等方法,极大地简化了模型的使用和评估流程,即便是机器学习初学者也能快速上手。在数据预处理方面,Scikit-learn 提供了全面的工具集,包括特征缩放、编码、缺失值处理以及特征提取等,为模型训练提供了良好的数据基础。在一个预测客户信用风险的项目中,利用 Scikit-learn 的逻辑回归模型,结合数据预处理工具对客户的信用数据进行分析和预测,取得了良好的效果。
- TensorFlow:由谷歌开发的开源机器学习框架,在深度学习和机器学习领域应用广泛。TensorFlow 基于数据流图的概念,使用图来表示计算任务,其中节点表示操作,边表示它们之间的输入和输出关系,这种设计使得计算过程更加直观和易于理解。它支持分布式计算,可以使用多个 GPU 和 TPU 进行训练,大大加速了模型的训练过程。同时,TensorFlow 提供了丰富的 API,可以构建不同类型的神经网络模型,支持从浅层神经网络到深度神经网络的各种结构,满足了不同场景下的建模需求。此外,TensorFlow 还提供了 TensorBoard 用于可视化训练过程和模型性能,帮助开发者更好地理解和优化模型。在图像识别领域,使用 TensorFlow 构建卷积神经网络模型,对大量图像数据进行训练和分类,能够准确识别出各种图像中的物体。
- PyTorch:Facebook AI Research 开发的开源深度学习框架,以其灵活性和易用性而受到广泛欢迎,特别是在学术界和研究中。PyTorch 采用动态计算图,即在运行时构建计算图,这使得开发者可以在编写代码的过程中轻松地更改网络结构和参数,而无需重新构建计算图,极大地提高了调试和开发效率。同时,PyTorch 支持 Python 语言,开发者可以充分利用 Python 的强大功能和丰富的库资源。在自然语言处理任务中,使用 PyTorch 构建循环神经网络(RNN)及其变体,如长短期记忆网络(LSTM)、门控循环单元(GRU)等,可以有效地处理文本序列数据,实现文本分类、机器翻译、情感分析等功能 。
3.2 机器学习在时序数据预测中的应用
机器学习在时序数据预测中主要通过构建模型,挖掘数据中的时间依赖关系和潜在模式,从而对未来的数据进行预测。常见的机器学习算法在时序数据预测中各有其独特的原理和应用场景。
- ARIMA(自回归积分滑动平均模型):是一种经典的时间序列预测模型,由自回归(AR)、差分(I)和滑动平均(MA)三个部分组成。自回归部分通过前几个时间点的数据来预测当前时间点,基于当前值与前几个时刻的值之间存在线性关系的假设;差分用于将非平稳的时间序列转换为平稳序列,通过计算相邻时间点的差值,消除趋势和季节性波动;滑动平均部分则通过当前和前几个时刻的误差(噪声)来预测未来的值。ARIMA 模型的参数 p、d、q 分别表示自回归阶数、差分次数和滑动平均阶数,通过合理选择这些参数,可以使模型较好地拟合时间序列数据。在预测某地区电力负荷时,利用 ARIMA 模型对历史电力负荷数据进行分析和建模,能够准确捕捉到数据的趋势和周期性变化,从而对未来的电力负荷进行有效预测。
- LSTM(长短期记忆网络):是一种特殊的递归神经网络(RNN),专门用于处理具有长期依赖关系的序列数据,在时序数据预测中表现出色。LSTM 通过引入记忆单元(cell state)、输入门、输出门和遗忘门来解决传统 RNN 在处理长序列时梯度消失或爆炸的问题。记忆单元可以保存长期信息,输入门控制新信息的输入,遗忘门决定保留或丢弃记忆单元中的信息,输出门确定输出的信息。在股票价格预测中,由于股票价格受到多种因素的影响,具有复杂的非线性关系和长期依赖特性,LSTM 模型能够有效地捕捉这些特征,对股票价格的走势进行预测 。
四、TDengine 与机器学习框架结合的原理与优势
4.1 结合原理
TDengine 与机器学习框架的结合,主要通过数据交互来实现时序数据预测。具体来说,TDengine 负责高效地存储和管理海量的时序数据,这些数据可以来自各种数据源,如传感器、日志文件、交易记录等。机器学习框架则利用这些数据进行模型训练和预测,挖掘数据中的潜在模式和规律。
在数据交互过程中,首先需要将 TDengine 中的数据提取出来,转换为机器学习框架能够处理的格式。这通常可以通过 TDengine 提供的各种连接器和 API 来实现,如 Python 连接器、Java 连接器等。以 Python 为例,可以使用 TDengine 的 Python 连接器,通过 SQL 查询语句从 TDengine 中获取数据,并将其转换为 Pandas 的数据帧(DataFrame)格式,方便后续的数据分析和处理。代码示例如下:
import taos
import pandas as pd
# 连接TDengine
conn = taos.connect(host='localhost', user='root', password='taosdata', database='power')
# 执行SQL查询
sql = "SELECT ts, value FROM power_data WHERE device_id = 'device1'"
df = pd.read_sql(sql, conn)
# 关闭连接
conn.close()
print(df.head())
在获取数据后,就可以将其输入到机器学习框架中进行模型训练。以 Scikit-learn 为例,可以使用 ARIMA 模型对电力消耗数据进行预测。首先,需要对数据进行预处理,如数据清洗、特征工程等,以提高模型的性能。然后,使用训练数据对 ARIMA 模型进行训练,并使用测试数据对模型进行评估和验证。代码示例如下:
from statsmodels.tsa.arima_model import ARIMA
import numpy as np
# 数据预处理
df['ts'] = pd.to_datetime(df['ts'])
df.set_index('ts', inplace=True)
data = df['value'].astype('float32')
# 划分训练集和测试集
train_size = int(len(data) * 0.8)
train_data, test_data = data[0:train_size], data[train_size:]
# 训练ARIMA模型
model = ARIMA(train_data, order=(1, 1, 1))
model_fit = model.fit(disp=0)
# 进行预测
predictions = []
for i in range(len(test_data)):
predict = model_fit.forecast()[0]
predictions.append(predict)
model_fit = ARIMA(np.append(train_data, predictions), order=(1, 1, 1)).fit(disp=0)
# 评估模型
from sklearn.metrics import mean_squared_error
mse = mean_squared_error(test_data, predictions)
print(f'Mean Squared Error: {mse}')
在模型训练完成后,可以将训练好的模型保存下来,以便在需要时进行加载和使用。同时,也可以将模型的预测结果反馈回 TDengine 中进行存储和分析,为后续的决策提供支持。
4.2 优势分析
- 数据处理效率高:TDengine 专门针对时序数据进行了优化,能够快速地写入和查询海量数据。在结合机器学习框架时,TDengine 可以高效地提供数据,减少数据读取和预处理的时间,提高模型训练和预测的效率。例如,在处理物联网设备产生的大量时序数据时,TDengine 能够实现每秒数百万条数据的写入,并且查询响应时间极短,能够快速将数据传递给机器学习框架进行处理,大大提高了整个系统的数据处理速度。
- 预测准确性提升:TDengine 能够存储大量的历史时序数据,这些丰富的数据为机器学习模型提供了更全面的信息,有助于模型学习到更准确的模式和规律,从而提高预测的准确性。通过对多年的电力负荷数据进行分析和训练,机器学习模型可以更好地捕捉到电力负荷的季节性、周期性变化以及各种影响因素,从而更准确地预测未来的电力负荷。
- 降低成本:TDengine 采用了一系列优化技术,如列式存储、数据压缩等,大大降低了数据存储的成本。同时,由于其高效的数据处理能力,也减少了对硬件资源的需求,降低了硬件成本。在结合机器学习框架时,整体系统的成本得到了有效控制。与传统的数据库和机器学习框架组合相比,使用 TDengine 可以将存储成本降低数倍,同时减少服务器的数量和配置要求,降低了运维成本。
- 简化系统架构:TDengine 内置了缓存、流式计算和数据订阅等功能,减少了系统设计的复杂度。与机器学习框架结合时,不需要额外引入大量的中间件和工具,使得系统架构更加简洁和易于维护。在构建一个实时监测和预测系统时,TDengine 可以直接与机器学习框架进行交互,利用其内置的功能实现数据的实时处理和分析,无需再引入 Kafka、Redis 等中间件,简化了系统的架构和部署过程。
相关文章:
时序数据预测:TDengine 与机器学习框架的结合(一)
一、引言 在当今数字化时代,时序数据如潮水般涌来,广泛存在于物联网、工业监控、金融交易、气象监测等众多领域。这些按时间顺序记录的数据蕴含着丰富的信息,对其进行准确预测,能够为企业和组织的决策提供有力支持,带…...
SvelteKit 最新中文文档教程(20)—— 最佳实践之性能
前言 Svelte,一个语法简洁、入门容易,面向未来的前端框架。 从 Svelte 诞生之初,就备受开发者的喜爱,根据统计,从 2019 年到 2024 年,连续 6 年一直是开发者最感兴趣的前端框架 No.1: Svelte …...
Spark-SQL核心编程(二)(三)
Spark-SQL核心编程(二) DSL 语法 DataFrame 提供一个特定领域语言(domain-specific language, DSL)去管理结构化的数据。 可以在 Scala, Java, Python 和 R 中使用 DSL,使用 DSL 语法风格不必去创建临时视图了。 1.创建一个 DataFrame val d…...
Godot学习-创建简单动画
文章目录 1、准备工作Godot资源 2、创建项目3、创建结点4、创建动画1、创建动画2、添加轨道3、创建关键帧3.1 第一个关键帧3.2 第二个关键帧 5、加载后自动播放6、动画循环7、轨道设置1、轨道更新模式2、轨迹插值3、其他属性的关键帧4、编辑关键帧5、使用 RESET 轨道6、洋葱皮 …...
新加坡太白私募:金融创新与稳健发展的典范
在全球金融市场的版图中,新加坡太白私募正以其独特的魅力和卓越的表现,成为众多投资者关注的焦点。作为一家在新加坡注册成立的私募机构,太白私募自诞生以来,便凭借着创新的理念、专业的团队和稳健的运营,在激烈的市场…...
[MySQL] 事务管理(二) 事务的隔离性底层
事务的隔离性底层 1.数据库并发的场景2.读-写2.1MVCC三个变量2.1.1 3个记录隐藏列字段2.1.2 undo日志 模拟MVCCselect 的读取2.1.3 Read View(读视图) 3.RR与RC的区别 1.数据库并发的场景 读-读:不存在问题,也不需要并发控制读-写…...
【Netty篇】EventLoopGroup 与 EventLoop 详解
目录 开场白:话说 Netty 江湖第一段:EventLoopGroup——“包工头”的角色第二段:EventLoop——“身怀绝技的工人”第三段:EventLoop 如何处理 I/O 事件、普通任务和定时任务第四段:Handler 执行中如何换人?…...
vscode连接windows服务器出现过程试图写入的管道不存在
优云智算平台的windows 1. 确保 Windows 已启用 OpenSSH 服务器 Get-WindowsCapability -Online | Where-Object Name -like OpenSSH.Server* 如果 State 是 NotPresent,说明未安装。 如果 State 是 Installed,说明已安装。 安装 OpenSSH Server&am…...
Windows VsCode Terminal窗口使用Linux命令
背景描述: 平时开发环境以Linux系统为主,有时又需要使用Windows系统下开发环境,为了能像Linux系统那样用Windows VsCode,Terminal命令行是必不可少内容。 注:Windows11 VsCode 1.99.2 下面介绍,如何在V…...
19【干获】如何快速在GIS某个图斑中抠出空洞
应用场景:在图斑中扣取空洞,很多时候是因为CAD数据在转换为GIS文件时,由于CAD作图不规范,例如填充本身不严谨,导致转换后,一个大地块包含的小地块范围不见了,只有大地块;或者会存在两…...
基于YOLO11的跌倒检测报警系统
基于YOLO11的跌倒检测报警系统 【包含内容】 【一】项目提供完整源代码及详细注释 【二】系统设计思路与实现说明 【三】完整的视频/摄像头/图片检测与报警功能 【技术栈】 ①:系统环境:Windows/MacOS/Linux通用 ②:开发环境:Py…...
十、自动化函数+实战
Maven环境配置 1.设计测试用例 2.创建空项目 1)添加需要的依赖pom.xml <dependencies> <!-- 截图配置--><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.6</…...
面向初学者的JMeter实战手册:从环境搭建到组件解析
🌟 大家好,我是摘星! 🌟 今天为大家带来的是面向初学者的JMeter实战手册:从环境搭建到组件解析,废话不多说,让我们直接开始~ 目录 1. JMeter简介 2. JMeter安装与配置 2.1. 安装 2.2.…...
【正点原子STM32MP257连载】第四章 ATK-DLMP257B功能测试——PCIE2.0 x1接口测试
1)实验平台:正点原子ATK-DLMP257B开发板 2)浏览产品:https://www.alientek.com/Product_Details/135.html 3)全套实验源码手册视频下载:正点原子资料下载中心 文章目录 第四章 ATK-DLMP257B功能测试——PCI…...
云函数采集架构:Serverless模式下的动态IP与冷启动优化
在 Serverless 架构中使用云函数进行网页数据采集,不仅能大幅降低运维成本,还能根据任务负载动态扩展。然而,由于云函数的无状态特性及冷启动问题,加上目标网站对采集行为的反制措施(如 IP 限制、Cookie 校验等&#x…...
UE5 设置物体的位置
UE的位置设置和untiy不同,UE的对象分为根物体和组件,他们的设置方法不同 对于蓝图根物体 可以直接当作Actor处理,设置它的世界位置 对于蓝图的组件 设置世界位置: 设置相对位置...
【adb】bat批处理+adb 自动亮屏,自动解锁屏幕,启动王者荣耀
准备adb 下载 需要确认是否安装了adb.exe文件,可以在: 任务管理器 -->详细信息–>找一下后台运行的adb 安装过anroid模拟器,也存在adb,例如:雷电安装目录 D:\leidian\LDPlayer9 单独下载adb 官方下载地址:[官方网址] 下载目录文件: 测试adb USB连接手机 首先在设置界…...
【计算机网络】3数据链路层①
这篇笔记专门讲数据链路层的功能。 2.功能 数据链路层的主要任务是让帧在一段链路上或一个网络中传输。 2.1.封装成帧(组帧) 解决的问题:①帧定界②帧同步③透明传输 实现组帧的方法通常有以下种。 2.1.1.字符计数法 原理:在每个帧开头,用一个定长计数字段来记录该…...
OSPF路由协议
OSPF(开放式最短路径优先) 1、回顾 rip:v1(广播发送、路由自动汇总,不支持可变长子网)v2(组播发送,默认不汇总路由,支持可变长子网)封装在UDP的520端口中&a…...
线代第二章矩阵第三、四课:矩阵乘法和方阵的幂
文章目录 矩阵的乘法矩阵的可交换方阵的幂 矩阵的乘法 (1)乘法的前提条件: 第一个矩阵的列数等于第二个矩阵的行数 (2)结果阵的形状: 结果矩阵的行数=第一个矩阵的行数 结果矩阵的列数=第二个矩阵的列数 乘法不满足交换律: &am…...
if constexpr
if constexpr if constexpr 是 C17 引入的一个强大的特性,它允许在编译时根据条件选择性地编译代码块。与普通的 if 语句不同,if constexpr 的条件必须是一个编译时可计算的常量表达式(constexpr 表达式)。如果条件为 true&#…...
JAVA程序实现mysql读写分离并在kubernetes中演示
1 概述 对数据进行读写分离,可以将读流量从主数据库中剥离出来,进一步降低读操作对写操作的影响。读写分离的实现可以有多种方式,例如通过proxySQL、mycat等中间件来实现,也可以在应用进程内实现。本文介绍JAVA程序通过spring框架…...
HarmontOS-ArkUI V2状态 !!语法糖 双向绑定
什么是双向绑定 双向绑定指的是在组件间数据的双向绑定。当一个值无论是在父组件还是子组件中改动都会在这两层中都更新界面。 回顾过往的“双向绑定”实现方式 靠@Event装饰回调函数 一般是对于@Param修饰的状态变量。当子组件发生某个动作的时候,调用某个父组件传递过来的…...
Linux驱动开发进阶(十)- I2C子系统BSP驱动
文章目录 1、前言2、I2C总线注册3、I2C设备注册4、I2C驱动注册总结 1、前言 学习参考书籍以及本文涉及的示例程序:李山文的《Linux驱动开发进阶》本文属于个人学习后的总结,不太具备教学功能。 2、I2C总线注册 和其它总线驱动一样,I2C驱动…...
Vue 3 路由配置使用与讲解
在现代前端开发中,单页应用(SPA)已成为主流趋势,Vue.js 作为一款优秀的 JavaScript 框架,在构建 SPA 方面表现出色。Vue Router 作为 Vue.js 官方的路由管理器,与 Vue.js 核心深度集成,极大地简…...
7系列fpga在线升级和跳转
一、常见跳转方式 1,一般FPGA只要上电,就会自动从外部flash的0地址加载程序。2,而我们所谓的在线式升级就是在flash0地址放一个程序(boot/golden image),然后在后面再放一个程序(app/update im…...
解决靶机分配的 IP 地址与 Kali 机器静态 IP 地址冲突的方法
在网络安全学习或渗透测试中,经常会遇到靶机和 Kali 机器处于同一网络环境的情况。如果靶机通过 DHCP 自动获取的 IP 地址与 Kali 机器手动设置的静态 IP 地址发生冲突,就会导致网络通信异常,例如无法正常 ping 通或访问目标。本文将详细介绍…...
LLM做逻辑推理题 - 飞机事件
题目: 有N架一样的飞机停靠在同一个机场,每架飞机都只有一个油箱,每箱油可使飞机绕地球飞半圈。注意:天空没有加油站,飞机之间只是可以相互加油。如果使某一架飞机平安地绕地球飞一圈,并安全地回到起飞时的机场&#x…...
【Netty4核心原理】【全系列文章目录】
文章目录 一、前言二、目录 一、前言 本系列虽说本意是作为 《Netty4 核心原理》一书的读书笔记,但在实际阅读记录过程中加入了大量个人阅读的理解和内容,因此对书中内容存在大量删改。 本系列内容基于 Netty 4.1.73.Final 版本,如下…...
SAP ECCS 标准报表 切换为EXCEL电子表格模式
在解决《SAP ECCS标准报表在报表中不存在特征CG细分期间 消息号 GK715报错分析》问题过程中通过DEBUG方式参照测试环境补录数据后,不再报GK715错误,此时用户要的很急,要出季报。要求先把数据导出供其分析出季报。 采用导出列表方式ÿ…...
开源推荐#6:可爱的临时邮箱服务
大家后,我是 jonssonyan。 我们的邮箱常常被各种推广邮件、验证码甚至垃圾邮件淹没。每次注册新服务或临时需要一个邮箱时,都担心自己的主邮箱地址被泄露或滥用?也许你用过一些公共的临时邮箱服务,但数据隐私和可控性总是让人不那…...
SpringBoot企业级开发之【用户模块-更新用户密码】
具体内容: 依旧是查看接口文档信息: 开发思路: 实操: 1.controller //更新用户密码PatchMapping("/updatePwd")public Result updatePwd(RequestBody Map<String,String> params) {//1.校验参数String oldPwdparams.get(…...
MyBatis-Plus 通过 ID 更新数据为NULL总结
在使用 MyBatis-Plus 通过 ID 更新数据时,若需将字段值设为 null,可参考以下解决方案: 方法一:使用 TableField 注解 在实体类字段上添加注解,指定更新策略为忽略非空检查: public class User {TableFie…...
SpringCloud Alibaba微服务工程搭建
前言 在讲微服务工程的搭建之前,我们先分析下为什么要使用微服务呢? 1、单体应用的痛点 维护困难:代码臃肿,牵一发而动全身。扩展性差:无法按需扩展特定功能,只能整体扩容。技术栈僵化:难以引…...
mobaXterm添加自定义内容按钮方法、mobaXterm宏的另一种使用方式、mobaxterm免输密码自动su到root用户
文章目录 说明添加自定义按钮内容方式完整流程说明root密码demo一键suroot 说明 就是给mobax添加secureCRT工具中的自定义按钮。 但发现mobax中的按钮其实是固定功能,并不能自定义编辑按钮内容。 添加自定义按钮内容方式 完整流程说明 虽然mobax不能直接像CRT那…...
04.Python代码NumPy-通过索引或切片来访问和修改
04.Python代码NumPy-通过索引或切片来访问和修改 提示:帮帮志会陆续更新非常多的IT技术知识,希望分享的内容对您有用。本章分享的是Python基础语法。前后每一小节的内容是存在的有:学习and理解的关联性,希望对您有用~ python语法…...
继承:(开始C++的进阶)
我们今天来学习C的进阶: 面向对象三大特性:封装,继承,多态。 封装我们在前面已经学了,我们细细理解,我们的类的封装,迭代器的封装(vector的迭代器可以是他的原生指针,li…...
【本地MinIO图床远程访问】Cpolar TCP隧道+PicGo插件,让MinIO图床一键触达
写在前面:本博客仅作记录学习之用,部分图片来自网络,如需引用请注明出处,同时如有侵犯您的权益,请联系删除! 文章目录 前言MinIO本地安装与配置cpolar 内网穿透PicGo 安装MinIO远程访问总结互动致谢参考目录…...
OpenCV数组的操作
OpenCV计算机视觉开发实践:基于Qt C - 商品搜索 - 京东 这里的数组不是普通意义上的数组。核心模块Core专门提供了一些全局函数用于对数组(矩阵)进行操作。常用函数如表3-2所示。 3.2.1 寻找数组中最小值和最大值的位置(minMaxL…...
python idea pycharm ModuleNotFoundError: No module named ‘bin‘
一、解决方案 1.修正运行配置中的环境变量 2.打开运行配置: 3.点击 IDEA 右上角配置下拉菜单 -> Edit Configurations。 4.选择 Django Server 配置(或自定义的调试配置)。 5.移除错误变量: 5.1在 Environment var…...
自动驾驶创建场景(just soso)
使用 Driving Scenario Designer 创建弯道驾驶场景并导出模型的详细步骤整理与补充说明: 步骤 1:打开应用程序 启动 MATLAB在 MATLAB 命令窗口中输入以下命令,打开驾驶场景设计器:matlabCopy CodedrivingScenarioDesigne…...
大模型在轮状病毒肠炎预测及临床方案制定中的应用研究
目录 一、引言 1.1 研究背景与意义 1.2 研究目的与创新点 二、轮状病毒肠炎概述 2.1 病毒特性与传播途径 2.2 临床症状与病理机制 2.3 流行病学特征 三、大模型技术原理及在医疗领域应用现状 3.1 大模型基本原理 3.2 医疗领域应用案例分析 3.3 大模型应用于轮状病毒…...
从 PyTorch 到 ONNX:深度学习模型导出全解析
在模型训练完毕后,我们通常希望将其部署到推理平台中,比如 TensorRT、ONNX Runtime 或移动端框架。而 ONNX(Open Neural Network Exchange)正是 PyTorch 与这些平台之间的桥梁。 本文将以一个图像去噪模型 SimpleDenoiser 为例&a…...
移动硬盘突然打不开紧急救援指南:从排查到完整恢复
突发状况的典型特征 当移动硬盘突然打不开时,用户常会遇到多种异常表现:接入电脑后硬盘指示灯虽亮但无法识别、系统反复提示“设备未连接成功”或弹出“磁盘结构损坏”的警告。部分情况下,资源管理器中的盘符虽可见,但双击后显示…...
HarmonyOS学习 实验九:@State和@Prop装饰器的使用方法
HarmonyOS应用开发:父子组件状态管理实验报告 引言 在HarmonyOS应用开发领域,组件之间的状态管理是一个至关重要的概念。通过有效的状态管理,我们可以确保应用的数据流动清晰、可预测,从而提升应用的稳定性和可维护性。本次实验…...
lodash-es 详解
import { cloneDeep } from lodash-es 是使用 ES Modules 语法从 lodash-es 包中按需导入 cloneDeep 函数。这是现代前端开发中推荐的使用 Lodash 的方式: 1. lodash-es 是什么? 它是 Lodash 的 ES Modules 版本(普通 lodas…...
使用nvm install XXX 下载node版本时网络不好导致npm下载失败解决方案
若nvm install ***安装报错解决方案: 离线安装Node.js npm,可直接下载Node.js 14.21.3的完整离线包(含npm): 访问 Node.js历史版本下载页:https://nodejs.org/download/release/v14.21.3/ 下载 node-v14.…...
VScode+OpenOCD+HTOS栈回溯在国产mcu芯片上完全调试
VScodeOpenOCDCmakeHTOS栈回溯在国产32芯片上完全调试 说实话用的都是HAL库开发的,flash链接文件用的都是stm32的,只能说国产芯片抄的基本完全一样了。具体芯片是什么就不介绍了,看过文章就能猜出来是哪家的了。代码开源在Gitee上了。https:…...
2025年最新版动漫短剧系统开发小程序app教程,源码部署上线
以下是动漫短剧系统开发上线的详细教程,包含从0到1的全流程: 一、需求分析(关键:明确核心功能) 核心功能清单: 用户端:短视频浏览、弹幕评论、收藏/点赞、创作者关注、付费订阅。创作者端&am…...
Java练习——day2(集合嵌套)
文章目录 练习1练习2练习3 练习1 给定一个字符串列表List words,统计每个单词出现的次数,并用Map<String, Integer>存储结果。 示例代码: import java.util.*;public class WordCount {public static void main(String[] args) {// 示…...