当前位置: 首页 > news >正文

数据压缩比 38.65%,TDengine 重塑 3H1 的存储与性能

小T导读:这篇文章是“2024,我想和 TDengine 谈谈”征文活动的三等奖作品之一。作者通过自身实践,详细分享了 TDengine 在高端装备运维服务平台中的应用,涵盖架构改造、性能测试、功能实现等多个方面。从压缩效率到查询性能,从功能优化到使用体验,文章不仅展示了 TDengine 的技术优势,也提出了许多宝贵的改进建议,给人以深刻启发。

为什么选择 TDengine?

在装备行业的物联网场景中,实时数据量极为庞大,涵盖温度、压力、振动、位移等多种参数,对这些数据的高效分析和精准预警成为一大挑战。具体需求可以总结如下:

  • 高并发写入:需要支持每条记录附带时间戳的高频数据写入。

  • 灵活表设计:不同传感器设备的数据字段各不相同,需要针对每个设备灵活建表。

  • 长期存储与压缩:原始数据需存储至少 5 年,要求具备高效的数据压缩能力以降低存储成本。

  • 国产化支持:需满足国产化要求,并能提供快速响应的厂商服务。

我们选择使用 TDengine 社区版 2.2.1.1 进行分布式模拟测试,实验环境搭建在以下配置的三台服务器上:

测试一:验证时序数据库在 3 台节点上的写入性能 模拟了 2 个厂区、共 10 个车间的数据,每个车间包含 1000 个监测点。从 2017-07-14 10:40:00.000 开始写入模拟数据,时间戳间隔为 0.001 秒,每个监测点写入 50 万条记录。

测试采用 8 个线程并行写入。在超过 50 亿条记录后停止写入程序,测试结果显示,平均写入速度达 191 万条/秒

测试二:验证时序数据库在 3 台节点上的数据压缩能力 基于测试一的结果,检查 3 台数据库节点的实际文件存储大小,具体数据如下:

落盘后的文件总大小为 36GB,而原始数据大小为约 93.13GB(按 50 亿条记录,每条 20 字节计算)。由此可得,数据压缩比达到 38.65%

测试三:验证时序数据库在 3 台节点上的历史数据回溯查询性能 随机选取一个测点,查询其在特定时间段内的历史数据。例如,从 2017-07-14 10:40:00.0002017-07-14 10:40:10.000,共计 10 秒内的 10001 条记录(查询结果输出至文件)。对应的数据库查询语句如下:

select * from d0 where ts >= ‘2017-07-14 10:40:00.000’ and ts <= ’2017-07-14 10:40:10.000’ >> /dev/null;

试验证明,TDengine 具有卓越的写入性能、高并发能力以及极低的查询延迟。其分布式架构确保了系统的可靠性、稳定性和数据完整性。基于测试结果,我们迅速将 TDengine 应用于现有业务系统,进行升级改造入。

TDengine 在 3H1 上的落地实践

3H1 高端装备运维服务平台重点解决高端成形装备企业由制造化向服务化转型的关键问题,为企业提供工业互联网与智能运维的整体解决方案。

如下图所示,TDengine 与高端成形装备的智能数据采集终端模块深度集成,助力采集终端完成对设备运行数据的采集,为系统提供设备数据基础。工业云计算服务平台则进一步提供数据的存储、转换和分析能力,为业务系统提供强有力的数据支持。同时,智能运维服务系统由装备智能运维服务平台和智能运维服务 APP 组成,分别为企业人员提供系统和移动端的服务支持。

针对企业多种应用场景,系统应用服务共分为以下六大功能模块:

1.企业驾驶舱:专为设备制造企业的管理者设计,便于全面掌握平台数据和关键业务流程指标。通过直观的界面,管理者可以轻松了解设备销售情况、企业接入信息以及平台数据的采集情况。同时,驾驶舱支持对关键业务流程进行管理,包括设备监控、报警信息展示、维修效率分析、设备故障情况以及三包任务的追踪和管理。

2.设备资源管理:旨在为每台高端成形装备建立电子档案,便于全面了解设备的历史状态、当前运行情况,并优化设备运行与未来状况预测。在查看具体设备信息时,系统主要呈现以下四个维度:当前工况健康分析维修情况历史工况

其中,当前工况为用户提供设备的基本信息、关键指标和报警情况的总览,帮助快速掌握设备的实时运行状态。

健康分析的目的是帮助用户全面掌握设备的当前状态以及健康状况随时间的变化趋势。如果设备面临故障风险,系统能够快速识别风险来源及故障模块,为用户提供精准的诊断支持。

维修情况则是为用户提供设备维修信息的全面概览,并支持对当前维修任务的流程进行实时跟踪。

历史工况是为了进行故障模块预排查。

3.维修服务管理:面向维修服务部门,提供维修任务的实时状态和历史效率分析。系统展示当前待处理任务数量,例如待接单、待派单和待回访任务,并支持查看和操作每项任务,详尽覆盖维修流程的每个环节。

维修效率分析则是对维修中的关键效率指标进行统计分析,包括近一年来的订单量的变化情况、维修响应时间变化情况、故障类型分布、维修人员任务统计等,方便维修管理人员对维修服务和效率进行管理。

4.设备健康分析:通过分析设备的历史和当前运行数据,预测设备未来可能发生的故障,并提供故障的可能性和类型评估,帮助维修部门为用户制定维保策略,提前主动联系用户,提升服务效率。

5.三包服务管理:服务于三包部门,提供当前维保活动提醒、设备维保活动记录、设备维保到期预警等功能。

6.备品备件管理:通过建立与维修保养相关的备品备件档案,用户和相关部门人员可在移动端和系统端进行备件的查询、申请和审批操作,简化流程,提高维修保养效率。此外,利用数据分析预测备品备件需求,既能满足需求,又能有效降低库存成本。

引入 TDengine 后,这六大功能模块的使用效果显著提升,不仅在数据写入和查询性能上表现优异,高效的压缩效率也进一步优化了性能与成本的平衡,实现了最佳的系统效能。

分析思路环节

架构改造升级到 TDengine 后,效果非常明显,硬件资源减少到原来的 1/5,效率有了明显的提升。我们相信,随着存储规模的不断变大,这种改善和提升效果会越来越明显。此外,在运维管理、费用支出、开发测试等方面也有了很大的改善。

  • 开发人员现在可以自己电脑上搭建一套环境,随便折腾,不用担心跑不起来,也不用担心影响别人;

  • 性能测试的时候,用配置低一些的机器也没问题,照样能做出压测效果;

  • 遇到技术难题,原来通过 Google、百度、StackOverflow 寻找答案,现在可以直接在官方渠道 https://github.com/taosdata/TDengine 提 issue,也可以在 TDengine 的技术社区进行提问,TDengine 的技术专家亲自答复,响应非常快;

  • TDengine 的体积小,上传起来非常快,有些私有化部署项目,不允许访问外网,只能手动上传,体积小的优势就非常明显;

  • 安装部署简单,配合 Docker 容器,可以在几分钟内完成安装部署;

  • 运营监控工作变简单了,只需要对 TDengine 的几个进程进行监控;

  • 占用的磁盘空间明显变小了,减少到原来的 1/5;

  • 使用的主机减少到原来的 1/5,相应的费用支出也减少了。

总结思考

此次升级改造总体较为顺利,但也遇到了一些挑战,特别是在数据建模过程中。但办法总比困难多,通过一些方法和技巧,我们成功将 TDengine 调整为 schema-free 数据库,满足了本项目的需求,最终顺利完成了系统的升级改造。

目前,TDengine 已全面支持所有物联网设备的数据上报,并为应用层提供了多种场景的支持。我们现在使用到的功能还比较简单,主要是插入、连续查询和降采样查询,但这已足够满足物联网平台的需求。像 UNIONGROUP BYJOIN 和聚合查询等高级功能虽然暂未使用,但它们在大数据分析中非常有价值,未来可在相关项目中尝试使用,甚至有望替代 Hadoop 全家桶。

在使用过程中,我们也发现了一些可以改进的地方:

  • JDBC-JNI 依赖动态库,导致安装和部署较为繁琐。虽然通过 JDBC-RESTful 解决了这个问题,但多了一层 RESTful Connector,性能略有下降。理想的解决方案是开发一个基于纯 Java 的 JDBC 驱动,直接连接后端服务。

  • 客户端以命令行形式为主,对开发者,尤其是初学者或习惯图形界面的用户并不友好。图形界面支持如语法高亮、语法检查等功能非常实用。目前已有社区开发者贡献了两个 GUI 工具,但如果能由官方提供支持,体验会更佳。

总而言之,在引入 TDengine 后,3H1 原有业务系统通过升级改造实现了显著提升,不仅大幅降低了研发和维护成本,还成功实现了横向扩展。TDengine 出色的查询性能令人惊喜,其卓越的压缩效率也显著节省了存储资源。未来,我们计划在更多应用场景中探索 TDengine 的潜力,并进一步深化与 TDengine 的合作。

TDengine 知识点

安装 TDengine

下载地址:https://docs.taosdata.com/get-started/package/

目前 TDengine 在 Windows 平台上只支持 Windows Server 2016/2019 和 Windows 10/11。这里我们先下载和安装 TDengine-server-3.0.1.7-Windows-x64.exe。安装之后的文件夹如下:

运行 TDengine

TDengine 安装完成后,我们可以在拥有管理员权限的 cmd 窗口执行 sc start taosd 或在 C:\TDengine 目录下,运行 taosd.exe 来启动 TDengine 服务进程。

执行 TDengine 命令行

为了方便检查 TDengine 的运行状态并执行各种即席(Ad Hoc)查询,TDengine 提供了命令行工具 TDengine CLI(简称 taos)。只需在终端输入 taos,即可进入命令行界面开始操作。

新建数据库(脚本文件)

在 TDengine CLI 中,我们可以使用 source 命令运行脚本文件中的多条 SQL 命令,实现批量执行操作。

# taos> source <filename>;
taos> source test.txt;

test.txt 内容如下:

CREATE DATABASE demo2;
USE demo2;
CREATE TABLE t (ts TIMESTAMP, speed INT);
INSERT INTO t VALUES ('2019-07-15 00:00:00', 10);
INSERT INTO t VALUES ('2019-07-15 01:00:00', 20);
SELECT * FROM t;

taosBenchmark 命令(体验写入速度)

你可以通过 TDengine 自带的工具 taosBenchmark 快速测试其写入速度。启动 TDengine 服务后,在终端运行 taosBenchmark(前身为 taosdemo)即可体验。

taosBenchmark --help
taosBenchmark

该命令会在数据库 test 下自动创建一个超级表 meters,其下包含 1 万张子表,表名为 d0d9999。每张表包含 1 万条记录,每条记录包含 ts(时间戳)、current(电流)、voltage(电压)、phase(相位)四个字段,时间戳范围从 2017-07-14 10:40:00.0002017-07-14 10:40:09.999。此外,每张表附带两个标签:groupId(取值 1 至 10)和 location(California.Campbell、California.Cupertino、California.LosAngeles、California.MountainView、California.PaloAlto、California.SanDiego、California.SanFrancisco、California.SanJose、California.SantaClara 或 California.Sunnyvale)。

表管理

# 创建表
use testdb;
create table t1 (ts TIMESTAMP,name1 BINARY(100)) ;# 查看表结构
describe t1;# 插入数据
insert into t1 values(‘2021-03-10 22:37:36.100’,‘test’);# 查询表
select * from t1;# 查看当前所有表
show tables;

TDengine 提供了丰富的应用程序开发接口,支持多种编程语言的连接器,帮助用户快速开发应用。官方连接器涵盖 C/C++JavaPythonGoNode.jsC#Rust,可通过原生接口(taosc)或 REST 接口(部分语言暂不支持)连接 TDengine 集群。此外,社区开发者还贡献了多种非官方连接器,如 ADO.NETLuaPHP 连接器,进一步扩展了生态支持。

taospy 是 TDengine 的官方 Python 连接器,提供了丰富的 API,使 Python 应用能够轻松集成 TDengine。它封装了 TDengine 的原生接口和 REST 接口,分别对应 taospy 包中的 taos 模块taosrest 模块。此外,taospy 提供了符合 Python 数据访问规范(PEP 249)的编程接口,使其与 SQLAlchemypandas 等第三方工具的集成更加便捷。

taos-ws-py 是另一款 Python 连接器,通过 WebSocket 方式连接 TDengine,可根据需求选择使用。

在连接方式上,使用客户端驱动的原生接口直接与服务端建立的连接称为“原生连接”;通过 taosAdapter 提供的 REST 或 WebSocket 接口与服务端建立的连接,分别称为“REST 连接”或“WebSocket 连接”。

TDengine 典型的操作流程

在第二和第三步中,taosc 启动时并不知道 mnode 的 End Point,会直接向配置的集群对外服务 End Point 发起请求。如果目标 dnode 未配置 mnode,它会在回复中提供 mnode 的 End Point 列表,随后 taosc 会重新向指定的 mnode 发送请求以获取元数据。

在第四和第五步中,如果没有缓存,taosc 无法确定虚拟节点组中的 master 节点,默认假设第一个 vnodeID 为 master 并发出请求。如果目标 vnode 并非 master,它将在回复中提供正确的 master 信息,taosc 随后向指定的 master 节点发起请求。一旦插入成功,taosc 会将 master 节点的信息缓存起来。

上述流程不仅适用于插入数据,也同样适用于查询和计算操作。这些复杂的处理均由 taosc 封装,应用无需感知或进行额外处理。

通过 taosc 的缓存机制,仅在首次操作某表时才需要访问 mnode,从而避免 mnode 成为系统瓶颈。但由于可能存在 schema 变更或 vgroup 调整(如负载均衡),taosc 会定期与 mnode 交互以自动更新缓存。

多表聚合查询

TDengine 为每个数据采集点单独建表,但在实际应用中,往往需要对多个采集点的数据进行聚合分析。为提升聚合操作的效率,TDengine 引入了 超级表(STable) 的概念。超级表代表一类特定类型的数据采集点,包含多个子表,这些子表的模式(schema)完全一致,同时具有各自的静态标签。标签可以有多个,并支持动态增删和修改。

通过设置标签过滤条件,用户可以对超级表下的全部或部分子表进行聚合或统计操作,大幅简化应用开发流程。具体流程如下图所示:

相关文章:

数据压缩比 38.65%,TDengine 重塑 3H1 的存储与性能

小T导读&#xff1a;这篇文章是“2024&#xff0c;我想和 TDengine 谈谈”征文活动的三等奖作品之一。作者通过自身实践&#xff0c;详细分享了 TDengine 在高端装备运维服务平台中的应用&#xff0c;涵盖架构改造、性能测试、功能实现等多个方面。从压缩效率到查询性能&#x…...

Linux shell脚本用于常见图片png、jpg、jpeg、tiff格式批量转webp格式后,并添加文本水印

Linux Debian12基于ImageMagick图像处理工具编写shell脚本用于常见图片png、jpg、jpeg、tiff格式批量转webp并添加文本水印 在Linux系统中&#xff0c;使用ImageMagick可以图片格式转换&#xff0c;其中最常用的是通过命令行工具进行。 ImageMagick是一个非常强大的图像处理工…...

DeepFaceLab技术浅析(六):后处理过程

DeepFaceLab 是一款流行的深度学习工具&#xff0c;用于面部替换&#xff08;DeepFake&#xff09;&#xff0c;其核心功能是将源人物的面部替换到目标视频中的目标人物身上。尽管面部替换的核心在于模型的训练&#xff0c;但后处理过程同样至关重要&#xff0c;它决定了最终生…...

怎么将pdf中的某一个提取出来?介绍几种提取PDF中页面的方法

怎么将pdf中的某一个提取出来&#xff1f;传统上&#xff0c;我们可能通过手动截取屏幕或使用PDF阅读器的复制功能来提取信息&#xff0c;但这种方法往往不够精确&#xff0c;且无法保留原文档的排版和格式。此外&#xff0c;很多时候我们需要提取的内容可能涉及多个页面、多个…...

imu相机EKF

ethzasl_sensor_fusion/Tutorials/Introductory Tutorial for Multi-Sensor Fusion Framework - ROS Wiki https://github.com/ethz-asl/ethzasl_msf/wiki...

CSDN数据大屏可视化【开源】

项目简介 本次基于版本3 开源 版本3开源地址&#xff1a;https://github.com/nangongchengfeng/CsdnBlogBoard.git 版本1开源地址&#xff1a;https://github.com/nangongchengfeng/CSDash.git 这是一个基于 Python 的 CSDN 博客数据可视化看板项目&#xff0c;通过爬虫采…...

C# 从控制台应用程序入门

总目录 前言 从创建并运行第一个控制台应用程序&#xff0c;快速入门C#。 一、新建一个控制台应用程序 控制台应用程序是C# 入门时&#xff0c;学习基础语法的最佳应用程序。 打开VS2022&#xff0c;选择【创建新项目】 搜索【控制台】&#xff0c;选择控制台应用(.NET Framew…...

什么是 DevSecOps 框架?如何提升移动应用安全性?

在如今数字化发展的时代&#xff0c;安全性已成为移动应用开发不可或缺的一部分。传统的开发模式通常将安全作为一个独立的部门&#xff0c;专门负责保护组织的整体系统&#xff0c;而 DevSecOps 框架则将安全融入到 DevOps 的每一个环节中&#xff0c;确保应用的开发、测试、发…...

数字后端项目Floorplan常见问题系列专题

今天给大家分享下数字IC后端设计实现floorplan阶段常见问题系列专题。这些问题都是来自于咱们社区IC后端训练营学员提问的问题库。目前这部分问题库已经积累了4年了&#xff0c;后面会陆续分享这方面的问题。希望对大家的数字后端学习和工作有所帮助。 数字IC后端设计实现floo…...

【C++读写.xlsx文件】OpenXLSX开源库在 Ubuntu 18.04 的编译、交叉编译与使用教程

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; ⏰发布时间⏰&#xff1a; 2024-12-17 …...

Qt设置部件的阴影效果

QT中的比如QWidget,QLabel,QPushbutton&#xff0c;QCheckBox都可以设置阴影效果&#xff0c;就像这样&#xff1a; 以QWidget为例&#xff0c;开始尝试使用样式表的形式添加阴影&#xff0c;但没有效果&#xff0c;写法如下&#xff1a; QWidget#widget1::shadow{color: rgb…...

【iOS安全】NSTaggedPointerString和__NSCFString

概述 简而言之 &#xff1a; NSTaggedPointerString和__NSCFString都是NSString类型。NSTaggedPointerString善于存短字符串&#xff0c;__NSCFString善于存一般或长字符串在iOS运行时&#xff0c;系统会根据字符串长度自动在NSTaggedPointerString和__NSCFString之间进行转换…...

docker(wsl)命令 帮助文档

WSL wsl使用教程 wsl -l -v 列出所有已安装的 Linux 发行版 wsl -t Ubuntu-22.04 --shutdown 关闭所有正在运行的WSL发行版。如果你只想关闭特定的发行版 wsl -d Ubuntu-22.04 登录到Ubuntu环境 wsl --list --running 查看正在wsl中运行的linux发行版 wsl --unregister (系统名…...

nginx模块ngx-fancyindex 隐藏标题中的 / 和遇到的坑

首先下载nginx源码&#xff0c;编译时加上 --add-module/usr/local/src/ngx-fancyindex/ 例如 &#xff1a; ./configure --prefix/usr/local/nginx --with-select_module --with-poll_module --with-threads --with-file-aio --with-http_ssl_module --with-http_v2_module…...

Edge Scdn防御网站怎么样?

酷盾安全Edge Scdn&#xff0c;即边缘式高防御内容分发网络&#xff0c;主要是通过分布在不同地理位置的多个节点&#xff0c;使用户能够更快地访问网站内容。同时&#xff0c;Edge Scdn通过先进的技术手段&#xff0c;提高了网上内容传输的安全性&#xff0c;防止各种网络攻击…...

音频接口:PDM TDM128 TDM256

一、 PDM接口 在麦克风&#xff08;Mic&#xff09;接口中&#xff0c;PDM&#xff08;Pulse Density Modulation&#xff0c;脉冲密度调制&#xff09;和I2S&#xff08;Inter-IC Sound&#xff0c;集成电路内置音频总线&#xff09;是两种常见的数字输出接口。 1、工作原理…...

半连接转内连接规则的原理与代码解析 |OceanBase查询优化

背景 在查询语句中&#xff0c;若涉及半连接&#xff08;semi join&#xff09;操作&#xff0c;由于半连接不满足交换律的规则&#xff0c;连接操作必须遵循语句中定义的顺序执行&#xff0c;从而限制了优化器根据参与连接的表的实际数据量来灵活选择优化策略的能力。为此&am…...

虚拟机VMware的安装问题ip错误,虚拟网卡

要么没有虚拟网卡、有网卡远程连不上等 一般出现在win11 家庭版 1、是否IP错误 ip addr 2、 重置虚拟网卡 3、查看是否有虚拟网卡 4、如果以上检查都解决不了问题 如果你之前有vmware 后来卸载了&#xff0c;又重新安装&#xff0c;一般都会有问题 卸载重装vmware: 第一…...

2024159读书笔记|《南山册页:齐白石果蔬册鱼虫册》节选

2024159读书笔记|《南山册页&#xff1a;齐白石果蔬册&鱼虫册》节选 1. 《南山册页&#xff1a;齐白石鱼虫册》2. 《南山册页&#xff1a;齐白石果蔬册》 1. 《南山册页&#xff1a;齐白石鱼虫册》 《南山册页&#xff1a;齐白石鱼虫册》南山书画&#xff0c;大家之作&…...

校园社交圈子系统APP开发校园社交圈子系统校园社交圈子系统平台校园社交圈子系统论坛开发校园社交圈子系统圈子APP

关于校园社交圈子系统APP及平台的开发&#xff0c;以下是从需求分析、系统设计、技术选型、功能实现等多个方面进行的详细阐述&#xff1a; 点击可获得前后端完整演示查看 一、需求分析 校园社交圈子系统的开发需求主要来源于大学生的社交需求。通过问卷调查、用户需求收集等…...

【Leetcode 热题 100】437. 路径总和 III

问题背景 给定一个二叉树的根节点 r o o t root root&#xff0c;和一个整数 t a r g e t S u m targetSum targetSum&#xff0c;求该二叉树里节点值之和等于 t a r g e t S u m targetSum targetSum 的 路径 的数目。 路径 不需要从根节点开始&#xff0c;也不需要在叶子…...

Solidity中的事件(Event)的结构与用法

Solidity中的事件&#xff08;Event&#xff09;的结构与用法 event的简单例子被索引的参数&#xff08;Indexed Parameters&#xff09;没有被索引的参数&#xff08;Non-indexed Parameters&#xff09; event扩展event 更多举例无参数的event有什么用 event的简单例子 在So…...

基于STM32的房间湿度控制系统设计与实现(论文+源码)

1.系统总体设计 根据系统的实际应用需求&#xff0c;从硬件电路以及软件程序两个方面展开房间湿度控制系统设计。如图所示为系统的整体架构图。系统采用单片机作为控制器&#xff0c;在传感器检测模块中包括DHT11温湿度检测、有害气体浓度检测&#xff0c;在系统执行模块包括加…...

docker 使用 xz save 镜像

适用场景 如果docker save -o xxx > xxx 镜像体积过大,可以使用 xz 命令压缩。 命令 例如 save busybox:1.31.1 镜像,其中 -T 是使用多核心压缩,可以加快压缩。 docker save busybox:1.31.1 |xz -T 8 > /tmp/busybox:1.31.1安装 xz Ubuntu/Debian sudo apt upda…...

Dockerfile文件编写

目录 Dockerfile文件编写 1.什么是Dockerfile 2. Dockerfile作用 3.dockerfile 的基本结构&#xff1a; 4.dockerfile指令&#xff1a; FROM 指定基础镜像&#xff0c;dockerfile构建镜像的第一个指令 LABEL 指定镜像维护人信息 ADD/COPY 复制本地文件/目录到镜像中 …...

linux高性能服务器编程读书笔记目录建议

linux高性能服务器编程读书笔记目录&&建议 文章目录 linux高性能服务器编程读书笔记目录&&建议目录第一篇 TCP/IP协议详解第二篇 深入解析高性能服务器编程第三篇 高性能服务器优化与监测 自己总结的内容linux这本书上没有但是黑马上有的东西epoll反应堆模型本…...

java全栈day20--Web后端实战(Mybatis基础2)

一、Mybatis基础 1.1辅助配置 配置 SQL 提示。 默认在 mybatis 中编写 SQL 语句是不识别的。可以做如下配置&#xff1a; 现在就有sql提示了 新的问题 产生原因&#xff1a; Idea 和数据库没有建立连接&#xff0c;不识别表信息 解决方式&#xff1a;在 Idea 中配置 MySQL 数…...

页面加载速度优化策略:提升用户体验的关键

文章目录 前言一、为什么需要优化页面加载速度&#xff1f;二、前端优化技术三、后端优化策略四、构建与部署优化五、案例研究&#xff1a;实际效果展示结语 前言 在当今快节奏的互联网环境中&#xff0c;页面加载速度不仅是用户体验的重要组成部分&#xff0c;更是影响网站性…...

多模块程序的测试策略

例1.如图“自顶向下”&#xff1a; 采用广度优先:模块M1结合模块M2&#xff0c;M3和M4&#xff0c;然后再结合下一控制层中的模块M5&#xff0c;M6和M7&#xff0c;继续下去直到所有模块结合近来。 混合策略&#xff1a; 改进的自顶向下测试方法 基本上使用自顶向下的测试方法…...

聚水潭数据无缝集成到金蝶云星空的实现方案

聚水潭数据集成到金蝶云星空&#xff1a;聚水潭调拨对接金蝶直接调拨ok 在企业信息化管理中&#xff0c;数据的高效流动和准确对接是实现业务流程顺畅运行的关键。本文将分享一个具体的系统对接集成案例——如何通过轻易云数据集成平台&#xff0c;将聚水潭的数据无缝集成到金…...

electron打包linux环境

注意:新版的electron已经不支持在win上直接打包Linux的环境了,服务会卡住,会一直生成文件占用磁盘(我发现的时候占了我100G&#xff0c;而且文件夹很深&#xff0c;找了java代码while循环&#xff0c;好不容易删除的o(╥﹏╥)o) electron有一个专门打包的docker镜像&#xff0c…...

设计模式--单例模式【创建型模式】

设计模式的分类 我们都知道有 23 种设计模式&#xff0c;这 23 种设计模式可分为如下三类&#xff1a; 创建型模式&#xff08;5 种&#xff09;&#xff1a;单例模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式。结构型模式&#xff08;7 种&#xff09;&#xff1…...

Mybatis分页插件的使用问题记录

项目中配置的分页插件依赖为 <dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>5.1.7</version></dependency>之前的项目代码编写分页的方式为&#xff0c;通过传入的条件…...

BERTective: Language Models and Contextual Information for Deception Detection

目录 概要 实验设置 数据集 实验条件 指标和基准 实验方法 神经网络基准 基于transformer的模型 基于BERT的模型 实验结果 分析 非上下文化模型 上下文化模型 欺骗语言 讨论 结论 概要 本文基于一组包含虚假陈述的意大利对话语料库&#xff0c;建立了一种新的…...

python 配置 oracle instant client

1.问题描述 想用python连接oracle数据库&#xff0c;百度得知需要cx_Oracle这个第三方库 import cx_Oracle# 设置Oracle数据源名称 dsn cx_Oracle.makedsn(host, port, service_nameservice_name)# 创建数据库连接 connection cx_Oracle.connect(userusername, passwordpas…...

【C语言】一文讲通 和*

&和*详解 前言符号 &&#xff1a;取地址符& 的用法& 用于函数参数传递 符号 *&#xff1a;解引用符* 的用法* 用于指针的初始化 结合使用 & 和 *1. * 和 & 配合使用示例 常见错误与注意事项总结 前言 在 C 语言中&#xff0c;* 和 & 是两个非常重…...

编译原理复习---基本概念+推导树

适用于电子科技大学编译原理期末考试复习。 本文只适合复习不适合预习&#xff0c;即适合上课听过一点或自己学过一点的同学。 1. 编译原理概述 编译原理是计算机科学的一个重要分支&#xff0c;它涉及将高级编程语言编写的源代码转换为机器能够理解和执行的低级代码的过程。…...

ThinkPHP 吸收了Java Spring框架一些特性

ThinkPHP 吸收了Java Spring框架一些特性&#xff0c;下面介绍如下&#xff1a; 1、controller 控制器层 存放控制器层的文件&#xff0c;用于处理请求和响应 2、model 实体类 存放实体类的文件&#xff0c;用于定义数据模型 3、dao DAO层 存放DAO&#xff08;数据访问…...

【Java基础面试题019】什么是Java中的不可变类?

回答重点 不可变类是指在创建后无法被修改的类。一旦对象被创建&#xff0c;它的所有属性都不能被更改。这种类的实例在整个生命周期内保持不变。 关键特征&#xff1a; 声明类为final&#xff0c;防止子类继承类的所有字段都是private和final&#xff0c;确保它们在初始化后…...

JAVA开发时获取用户信息失败,分析后端日志信息

从日志信息&#xff08;见文章最后&#xff09;来看&#xff0c;JWT 认证过程似乎是成功的。具体来说&#xff0c;以下几点表明认证流程正常&#xff1a; Token 解析成功: 日志显示 Parsing token: eyJhbGciOiJIUzUxMiJ9.eyJ1c2VySWQiOjEsImV4cCI6MTczNDM2MzUwMH0.jQtaj1sTBCMh…...

Docker 安装 禅道-21.2版本-外部数据库模式

Docker 安装系列 1、拉取最新版本&#xff08;zentao 21.2&#xff09; [rootTseng ~]# docker pull hub.zentao.net/app/zentao Using default tag: latest latest: Pulling from app/zentao 55ab1b300d4b: Pull complete 6b5749e5ef1d: Pull complete bdccb03403c1: Pul…...

如何写好一份技术文档?

技术文档是传递技术信息、指导用户操作的重要工具。一份高质量的技术文档不仅能帮助用户快速理解和使用技术产品&#xff0c;还能减少后续的维护和支持成本。本文将详细介绍如何撰写一份优秀的技术文档。 一、明确目标受众 在开始撰写技术文档之前&#xff0c;首先要明确目标受…...

常用es命令

常用Elasticsearch命令 es别名链接和删除 POST /_aliases {"actions": [{"add": {"index": "index","alias": "alias"}},{"remove": {"index": "index","alias": &quo…...

AI大模型进一步推动了AI在处理图片、视频、音频、文本的等数据应用

AI处理图片、视频、音频、文本等数据应用一直都存在&#xff0c;但是大模型的出现让AI处理这些数据更加便捷快速。比如在安防的框选标记物&#xff0c;以前要在图像上框&#xff0c;现在用文字描述再让大模型处理成图片框就可以完成框选了。大模型正在二次加速AI处理。 随着AI…...

【MambaSR复现】【Windows系统下Mamba环境配置】triton 、causal conv1d和mamba_ssm模块配置保姆教程

注&#xff1a;在此之前确保环境中已经安装packaging模块 pip install packaging若此模块安装过程中出现图下报错&#xff1a;这是由于环境创建时候的权限问题导致的&#xff0c;具体解决方案见我另一篇博文&#xff01; 1.Triton模块安装 注意&#xff1a;必须先安装triton&…...

前景物体提取

参考&#xff1a;精选课&#xff1a;C完整的实现双目摄像头图像采集、双目摄像头畸变矫正、前景物体提取、生成视差图、深度图、PCL点云图 前景物体提取是计算机视觉中的一个重要技术&#xff0c;可以用于视频监控、虚拟现实和计算机视觉等领域。 1.前景物体提取的原理 前景…...

【考前预习】4.计算机网络—网络层

往期推荐 【考前预习】3.计算机网络—数据链路层-CSDN博客 【考前预习】2.计算机网络—物理层-CSDN博客 【考前预习】1.计算机网络概述-CSDN博客 目录 1.网络层概述 2.网络层提供的两种服务 3.分类编址的IPV4 4.无分类编址的IPV4—CIDR 5.IPV4地址应用规划 5.1使用定长子…...

浙江省一体化数字资源系统(IRS)介绍(七个方面展开)

浙江IRS的主要做法包括“六个一”&#xff0c;即一本账管理、一站式浏览、一揽子申请、一体化生产、一平台调度、一张网管控。本期分享在2023年数字政府评估大会上&#xff0c;浙江省大数据相关老师发表的“打造一体化数字资源系统&#xff08;IRS&#xff09;&#xff0c;赋能…...

Spring实例化的基本流程和Bean处理器

目录 Spring实例化的基本流程 Bean的处理器 Bean工厂后处理器&#xff08;BeanFactoryPostProcessor&#xff09; 动态注册beanDefinition Bean后处理器&#xff08;BeanPostProcessor&#xff09; Spring实例化的基本流程 在了解处理器之前&#xff0c;要清除spring实例化…...

对分布式系统的理解以及redis的分布式实现

对分布式系统有哪些了解? 分布式系统是由多个独立的计算节点(通常是计算机或服务器)组成的系统,这些节点通过网络相互通信和协作,共同完成任务。分布式系统的设计旨在提供可扩展性、容错性和高可用性,适用于大规模的数据处理和服务场景。 1. 分布式系统的核心特点 分布…...