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

当OT遇见IT:Apache IoTDB如何用“时序空间一体化“技术破解工业物联网数据孤岛困局?

目录

一. 什么是时序数据库?

二. 时序数据库的选型要素

 性能指标

架构能力

 数据模型与查询能力

安全与权限控制

 部署与运维能力

三· Apache IoTDB 简介及安装使用:

安装准备教程

检查 Java 版本

下载与安装

 下载 IoTDB

 解压文件

 配置环境变量

启动 IoTDB

启动服务器

使用 CLI 工具连接数据库

入门使用:

用户管理与权限控制

 数据加密与传输安全

备份与恢复

 运维安全

基本使用

创建时间序列

插入数据

查询数据

聚合查询

停止 IoTDB 服务

四.Apache IoTDB优势效果剖析:

 独立自研

 商业友好

 时序数据标准文件格式

双时序模型

千万级数据写入

 毫秒级查询响应

五.IoTDB 在国产化替代中的优势

国产数据库替代的背景与政策支持

政策

IoTDB 的国产化适配能力(麒麟、统信、龙芯等)

 与国外 TSDB 的对比:技术自主可控

政府、能源、电力、交通等行业的落地

六.总结

时序数据库选型的五大核心建议

 IoTDB 的技术优势与生态竞争力

 国产时序数据库的未来

企业如何构建自主可控的时序数据平台

 


一. 什么是时序数据库?

时序数据库(Time Series Database,TSDB)是一种专为存储、管理和查询时间序列数据而设计的数据库系统。时间序列数据具有以下特征:

  • 每条数据都带有时间戳;
  • 数据写入频率极高;
  • 数据通常不可变;
  • 查询以聚合分析为主;
  • 数据量庞大,需要高效压缩。

这类数据库广泛应用于物联网(IoT)、智能制造、智慧城市、车联网、金融风控、网络监控等领域。随着大数据时代的到来,如何高效地处理和分析海量时间序列数据,成为企业面临的重要课题。

二. 时序数据库的选型要素

在选择时序数据库时,企业通常会从以下几个维度进行评估:

 性能指标

  • 写入性能:能否支持高并发写入,每秒写入多少条数据;
  • 查询性能:聚合查询、范围查询、多维查询的速度;
  • 压缩比:数据压缩效率,节省存储空间;
  • 吞吐量:整体系统吞吐能力。

架构能力

  • 分布式支持:是否支持多节点集群部署;
  • 高可用性:是否支持故障转移、数据副本;
  • 扩展性:是否支持横向扩展,弹性扩容;
  • 云原生兼容性:是否支持 Docker、Kubernetes 等云平台。

 数据模型与查询能力

  • 数据模型:是否支持设备层级、时间序列、对齐机制;
  • SQL 支持:是否支持标准 SQL 或类 SQL 查询语言;
  • 聚合函数:是否支持 AVG、SUM、MAX、MIN 等常用聚合函数;
  • 插件机制:是否支持 UDF、自定义压缩算法、索引等扩展功能。

安全与权限控制

  • 用户管理:是否支持多用户、角色管理;
  • 权限控制:是否支持细粒度的权限控制;
  • 审计日志:是否记录操作日志用于审计;
  • 加密机制:是否支持 SSL、数据加密传输与存储。

 部署与运维能力

  • 部署模式:是否支持单机、伪集群、多节点集群;
  • 监控支持:是否提供 Prometheus、Grafana 等监控集成;
  • 日志管理:日志结构是否清晰,是否支持日志归档;
  • 备份与恢复:是否提供数据备份与恢复工具。

三· Apache IoTDB 简介及安装使用:

Apache IoTDB 是一款专为物联网(IoT)和工业互联网场景设计的高效、轻量级时序数据库。它由清华大学自主研发,并于2020年捐赠给Apache软件基金会,成为Apache顶级项目。IoTDB具备高性能写入高压缩比实时查询分布式架构等特性,广泛应用于工业监控、智能制造、智慧城市、车联网等领域。[具体可以去官网了解Apache IoTDB_国产开源时序数据库_时序数据管理服务商-天谋科技Timecho]

安装准备教程

在开始之前,请确保系统满足以下要求:

  • 操作系统:Linux、macOS 或 Windows
  • Java 环境:JDK 8 或更高版本(推荐使用 JDK 11)
  • 内存:至少 2GB RAM
  • 磁盘空间:至少 100MB 可用磁盘空间
检查 Java 版本

打开终端或命令提示符,输入以下命令检查 Java 版本:

java -version

如果未安装 Java 或版本不符合要求,请先安装合适的 JDK 版本。

下载与安装
 下载 IoTDB

访问 发行版本 | IoTDB Website,选择适合你操作系统的最新稳定版进行下载。

对于 Linux 和 macOS 用户,可以使用 wget 命令直接下载:

wget https://downloads.apache.org/iotdb/2.5.0/apache-iotdb-2.5.0-all-bin.zip
 解压文件

下载完成后,解压文件到指定目录。例如,在 Linux 或 macOS 上可以使用以下命令:

unzip apache-iotdb-2.5.0-all-bin.zip -d /opt/iotdb

Windows 用户可以通过右键点击 .zip 文件并选择“解压到当前文件夹”来解压缩。

 配置环境变量

为了方便使用,你可以将 IoTDB 的 bin 目录添加到系统的 PATH 环境变量中。编辑 ~/.bashrc~/.zshrc 文件(根据你的 shell),添加以下内容:

export IOTDB_HOME=/opt/iotdb/apache-iotdb-2.5.0-all-bin
export PATH=$PATH:$IOTDB_HOME/sbin:$IOTDB_HOME/bin

然后执行以下命令使配置生效:

source ~/.bashrc
启动 IoTDB
启动服务器

进入 IoTDB 安装目录下的 sbin 文件夹,启动 IoTDB 服务:

cd /opt/iotdb/apache-iotdb-2.5.0-all-bin/sbin
./start-server.sh

默认情况下,IoTDB 将监听 6667 端口。如果你需要更改端口号或其他配置项,可以编辑 conf/iotdb-engine.properties 文件。

使用 CLI 工具连接数据库

启动成功后,可以使用 IoTDB 提供的命令行工具(CLI)连接数据库:

cd /opt/iotdb/apache-iotdb-2.5.0-all-bin/sbin
./start-cli.sh -h 127.0.0.1 -p 6667 -u root -pw root

这将打开一个交互式的 CLI 界面,允许你执行 SQL 查询和管理任务。

入门使用:

用户管理与权限控制

创建用户

默认情况下,IoTDB 提供了一个 root 用户,但为了安全起见,建议创建新的用户并限制其权限。

-- 使用 root 用户登录
./sbin/start-cli.sh -h 127.0.0.1 -p 6667 -u root -pw root-- 创建新用户
CREATE USER 'newuser' 'newpassword';-- 查看所有用户
SHOW USERS;

授予权限

你可以为不同的用户分配不同的权限,以控制他们对数据库的操作范围。

-- 授予读取权限
GRANT READ ON root.ln.wf01 TO 'newuser';-- 授予写入权限
GRANT WRITE ON root.ln.wf01 TO 'newuser';-- 授予管理员权限
GRANT ADMIN TO 'newuser';

修改密码

定期修改密码是保持系统安全的重要步骤。

-- 修改密码
ALTER USER 'newuser' SET PASSWORD 'newpassword';

 删除用户

如果某个用户不再需要访问数据库,可以将其删除。

-- 删除用户
DROP USER 'newuser';
 数据加密与传输安全

启用 SSL/TLS 加密

为了确保数据在网络传输过程中的安全性,可以启用 SSL/TLS 加密。

生成证书

首先,你需要生成一个自签名证书或使用现有的证书。

# 生成私钥
openssl genrsa -out server.key 2048# 生成证书签名请求 (CSR)
openssl req -new -key server.key -out server.csr# 生成自签名证书
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

配置 IoTDB 使用 SSL

编辑 iotdb-engine.properties 文件,添加以下配置:

# 启用 SSL
enable_ssl=true# 指定证书和私钥路径
ssl_key_file=/path/to/server.key
ssl_cert_file=/path/to/server.crt

测试连接

使用命令行工具测试是否能够通过 SSL 连接。

./sbin/start-cli.sh -h 127.0.0.1 -p 6667 -u root -pw root --use-ssl

数据库审计日志

IoTDB 支持记录操作日志,便于后续审计和故障排查。

 开启审计日志

编辑 iotdb-engine.properties 文件,添加以下配置:

# 开启审计日志
enable_audit_log=true# 设置审计日志文件路径
audit_log_dir=/path/to/audit/logs

 查看审计日志

审计日志会记录每个用户的操作,包括查询、插入、删除等操作:

cat /path/to/audit/logs/audit.log
备份与恢复

数据备份

定期备份数据是保障数据安全的重要手段。IoTDB 提供了简单的备份命令。

# 备份当前数据库
./sbin/backup.sh -d /path/to/backup/dir

数据恢复

当发生数据丢失或损坏时,可以通过备份文件进行恢复。

# 恢复数据库
./sbin/restore.sh -d /path/to/backup/dir
 运维安全

定期更新

确保你使用的 IoTDB 版本是最新的,及时应用安全补丁和更新。

# 检查当前版本
./sbin/start-cli.sh -h 127.0.0.1 -p 6667 -u root -pw root -e "SHOW VERSION;"# 下载最新版本
wget https://iotdb.apache.org/zh/Download/

监控与告警

设置监控和告警机制,以便在出现异常情况时及时响应。

# 使用 Prometheus 和 Grafana 监控 IoTDB
# 配置 Prometheus 抓取 IoTDB 指标
scrape_configs:- job_name: 'iotdb'static_configs:- targets: ['localhost:6667']

访问控制

限制对 IoTDB 的访问,仅允许可信的 IP 地址或网络段访问数据库。

# 在 iotdb-engine.properties 中配置白名单
whitelist=192.168.1.0/24,127.0.0.1

基本使用

创建时间序列

首先创建一个新的时间序列:

CREATE TIMESERIES root.ln.wf01.wt01.status WITH DATATYPE=BOOLEAN, ENCODING=PLAIN;
CREATE TIMESERIES root.ln.wf01.wt01.temperature WITH DATATYPE=FLOAT, ENCODING=RLE;
插入数据

插入一些示例数据:

INSERT INTO root.ln.wf01.wt01(timestamp,status,temperature) values(1,true,25.96);
INSERT INTO root.ln.wf01.wt01(timestamp,status,temperature) values(2,false,24.3);
INSERT INTO root.ln.wf01.wt01(timestamp,status,temperature) values(3,true,26.1);
查询数据

查询已插入的数据:

SELECT * FROM root.ln.wf01.wt01 WHERE time >= 1 AND time <= 3;

输出结果类似于:

+-----------------------------+------------------------+-------------------------+
|                         Time|root.ln.wf01.wt01.status|root.ln.wf01.wt01.temperature|
+-----------------------------+------------------------+-------------------------+
|1970-01-01T08:00:00.001+08:00|                    true|                     25.96|
|1970-01-01T08:00:00.002+08:00|                   false|                      24.3|
|1970-01-01T08:00:00.003+08:00|                    true|                      26.1|
+-----------------------------+------------------------+-------------------------+
聚合查询

执行聚合查询,如计算平均温度:

SELECT AVG(temperature) FROM root.ln.wf01.wt01 WHERE time >= 1 AND time <= 3;

输出结果类似于:

+-----------------------------+-------------------------+
|                         Time|AVG(root.ln.wf01.wt01.temperature)|
+-----------------------------+-------------------------+
|                         null|                     25.453333333333334|
+-----------------------------+-------------------------+

停止 IoTDB 服务

当你不再需要运行 IoTDB 时,可以通过以下命令停止服务:

cd /opt/iotdb/apache-iotdb-2.5.0-all-bin/sbin
./stop-server.sh

四.Apache IoTDB优势效果剖析:

独立自研

优势分析

特性描述
完全自主可控从底层数据文件到分布式架构均不依赖第三方系统,确保系统的安全性和稳定性。
持续创新作为 Apache 基金会唯一的时序数据库 Top-Level 项目,IoTDB 可以持续进行技术创新和功能迭代。

示例:创建时间序列并插入数据

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;public class IoTDBExample {public static void main(String[] args) throws Exception {// 建立连接Connection connection = DriverManager.getConnection("jdbc:iotdb://127.0.0.1:6667/", "root", "root");Statement statement = connection.createStatement();// 创建时间序列statement.execute("CREATE TIMESERIES root.ln.wf01.wt01.temperature WITH DATATYPE=FLOAT, ENCODING=RLE");// 插入数据statement.execute("INSERT INTO root.ln.wf01.wt01(timestamp, temperature) VALUES (now(), 25.3)");// 关闭连接connection.close();}
}

商业友好

优势分析

特性描述
开源协议稳定遵循 Apache 2.0 协议,允许企业修改、使用项目代码用于商业化应用,无需担心变更。
社区支持拥有活跃的开源社区,提供丰富的文档和资源支持。

示例:批量插入数据

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;public class IoTDBBatchInsertExample {public static void main(String[] args) throws Exception {// 建立连接Connection connection = DriverManager.getConnection("jdbc:iotdb://127.0.0.1:6667/", "root", "root");PreparedStatement preparedStatement = connection.prepareStatement("INSERT INTO root.ln.wf01.wt01(timestamp, temperature) VALUES (?, ?)");// 批量插入数据for (int i = 0; i < 1000000; i++) {preparedStatement.setLong(1, System.currentTimeMillis());preparedStatement.setFloat(2, 25.3f + i * 0.1f);preparedStatement.addBatch();}// 执行批处理preparedStatement.executeBatch();// 关闭连接connection.close();}
}

时序数据标准文件格式

优势分析

特性描述
高效存储采用 TsFile 格式,相比通用文件格式,写入/查询吞吐、压缩比可提升 3-15 倍。
降低成本显著降低存储成本,并实现在线、离线数据高效流转。

示例:查询数据

-- 查询数据
SELECT * FROM root.ln.wf01.wt01 WHERE time >= 1 AND time <= 3;

TsFile 数据流转过程

双时序模型

优势分析

特性描述
灵活架构树、表双模型支持,适配工业监控场景与设备管理场景。
高效分析架构灵活性与分析效率双保障,方便用户根据需求选择合适的模型。

示例:创建树模型与表模型时间序列

-- 创建树模型时间序列
CREATE TIMESERIES root.device.sensor1.temperature WITH DATATYPE=FLOAT, ENCODING=RLE;-- 创建表模型时间序列
CREATE TABLE root.device.sensor1 (time TIMESTAMP, temperature FLOAT);

双时序模型对比

模型特点
树模型适合复杂层级结构的数据存储,便于多维度查询。
表模型适合扁平化数据存储,便于高效批量操作。

千万级数据写入

优势分析

特性描述
高频数据接入采用列式写入模式,实现高频数据毫秒级接入。
乱序数据处理首创乱序分离存储引擎,轻松应对海量数据高并发写入需求。

示例:批量插入数据

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;public class IoTDBHighFrequencyInsertExample {public static void main(String[] args) throws Exception {// 建立连接Connection connection = DriverManager.getConnection("jdbc:iotdb://127.0.0.1:6667/", "root", "root");PreparedStatement preparedStatement = connection.prepareStatement("INSERT INTO root.ln.wf01.wt01(timestamp, temperature) VALUES (?, ?)");// 批量插入数据for (int i = 0; i < 1000000; i++) {preparedStatement.setLong(1, System.currentTimeMillis());preparedStatement.setFloat(2, 25.3f + i * 0.1f);preparedStatement.addBatch();}// 执行批处理preparedStatement.executeBatch();// 关闭连接connection.close();}
}

毫秒级查询响应

优势分析

特性描述
高效索引机制通过高效的索引机制和查询优化,大幅提升数据查询效率。
内置 UDF 函数支持降采样查询、时序分段查询、数据补齐与修复等操作,内置超 70 种 UDF 函数帮助分析。

示例:使用 UDF 函数进行数据分析

-- 使用 UDF 函数进行数据分析
SELECT AVG(temperature), MIN(temperature), MAX(temperature) 
FROM root.ln.wf01.wt01 
WHERE time >= '2023-01-01T00:00:00' AND time <= '2023-01-01T23:59:59';

UDF 函数分类

类别描述
降采样将高频率数据降为低频率,便于展示和分析。
分段查询按时间段分割数据,便于特定时间段内的分析。
数据补齐自动填补缺失数据,保证数据完整性。
数据修复对异常数据进行修复,提高数据质量。

综上,Apache IoTDB 在以下方面具有显著优势:

  1. 独立自研:完全自主可控,持续创新。
  2. 商业友好:遵循 Apache 2.0 协议,拥有活跃的开源社区。
  3. 时序数据标准文件格式:采用 TsFile 格式,提升写入/查询性能,降低成本。
  4. 双时序模型:灵活架构,适配多种应用场景。
  5. 千万级数据写入:支持高频数据接入和乱序数据处理。
  6. 毫秒级查询响应:高效索引机制和内置 UDF 函数,大幅提升查询效率。

这些特性使 IoTDB 能够满足物联网和工业互联网场景下的高性能、高可靠性和高扩展性需求。

五.IoTDB 在国产化替代中的优势

国产数据库替代的背景与政策支持

随着国家对信息技术自主可控的要求日益提高,推动了国内企业向使用国产软件和硬件解决方案转变的趋势。政府出台了一系列政策鼓励和支持国产化替代,尤其是在关键基础设施领域如能源、电力、交通等行业。这些政策不仅促进了技术的自主创新,还提高了信息安全水平,减少了对外部供应商的依赖。

政策

  • 信创战略:中国信息创新(信创)战略旨在促进信息技术领域的自主创新,减少对国外技术和产品的依赖。
  • 数据安全法:《中华人民共和国数据安全法》强调了数据安全的重要性,并要求重要数据处理者采取措施确保数据的安全性和保密性。

IoTDB 的国产化适配能力(麒麟、统信、龙芯等)

Apache IoTDB 作为一款由清华大学自主研发的时序数据库,已经实现了广泛的国产化适配,包括但不限于:

  • 操作系统:兼容麒麟、统信等国产操作系统。
  • 芯片架构:支持龙芯、鲲鹏等多种国产处理器架构。
  • 中间件:能够与众多国产中间件无缝集成,满足不同场景下的需求。

通过这些适配工作,IoTDB 不仅在性能上达到了国际先进水平,而且在安全性、稳定性方面也表现卓越,为用户提供了一个可靠的选择。

 与国外 TSDB 的对比:技术自主可控

相较于国外同类产品,IoTDB 具有以下显著优势:

  • 完全自主可控:从底层文件格式到分布式架构均由国内团队研发,避免了因外部制裁或技术支持中断带来的风险。
  • 快速响应本地需求:由于团队位于国内,可以更迅速地响应客户需求并提供定制化服务。
  • 社区活跃度高:拥有一个活跃的开源社区,用户可以通过 GitHub、邮件列表等方式获取帮助和支持。

政府、能源、电力、交通等行业的落地

IoTDB 已经在多个行业得到了成功应用,如:

  • 政府:某市政府利用 IoTDB 构建智慧城市平台,实现了城市运行状态的实时监测与分析。
  • 能源:中国核电集团采用 IoTDB 管理核电厂设备的健康状况,提升了运维效率。
  • 电力:南方电网部署 IoTDB 用于智能电表数据管理,降低了运营成本。
  • 交通:北京地铁公司借助 IoTDB 实现列车状态监控及故障预警系统,增强了行车安全。

六.总结

时序数据库选型的五大核心建议

  1. 性能考量:关注写入速度、查询延迟及压缩率等指标。
  2. 扩展性与灵活性:选择支持分布式架构的产品,以适应未来增长。
  3. 安全性保障:确保所选产品具备强大的安全防护机制。
  4. 易用性与维护成本:考虑学习曲线、文档质量及社区活跃程度。
  5. 生态兼容性:检查是否能与其他主流框架和技术栈良好集成。

 IoTDB 的技术优势与生态竞争力

IoTDB 凭借其高性能写入、高压缩比、分布式架构、丰富的插件体系以及强大的社区支持,在国内外市场上展现了强劲的竞争实力。特别是在大数据处理、物联网等领域,IoTDB 能够提供一站式解决方案,帮助企业高效管理海量时序数据。

IoTDB 的核心优势

优势描述
高性能写入支持高并发写入,适合物联网场景
高压缩比支持多种编码压缩算法,压缩率高达90%以上
分布式架构支持多节点部署,适合大规模数据
丰富插件体系支持Grafana、Flink、Spark 等生态
国产适配强完美兼容麒麟、统信、龙芯、鲲鹏等国产软硬件

IoTDB 示例

1. 添加 Maven 依赖(Java 客户端)

<dependency><groupId>org.apache.iotdb</groupId><artifactId>iotdb-session</artifactId><version>1.3.0</version>
</dependency>

2. Java 连接并操作 IoTDB

import org.apache.iotdb.session.Session;
import org.apache.iotdb.tsfile.file.metadata.enums.CompressionType;
import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding;
import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;import java.util.ArrayList;
import java.util.List;public class IoTDBExample {public static void main(String[] args) throws Exception {// 建立连接Session session = new Session("127.0.0.1", 6667, "root", "root");session.open();// 创建数据库session.executeNonQueryStatement("CREATE DATABASE IF NOT EXISTS root.vehicle");// 创建时间序列List<MeasurementSchema> schemaList = new ArrayList<>();schemaList.add(new MeasurementSchema("speed", TSDataType.INT32, TSEncoding.RLE, CompressionType.SNAPPY));schemaList.add(new MeasurementSchema("temperature", TSDataType.FLOAT, TSEncoding.PLAIN, CompressionType.SNAPPY));session.createTimeseries("root.vehicle.car01", schemaList);// 插入数据session.insertRecord("root.vehicle.car01", 1717027200000L, new Object[]{120, 25.5f});session.insertRecord("root.vehicle.car01", 1717027260000L, new Object[]{130, 26.0f});// 查询数据String sql = "SELECT * FROM root.vehicle.car01";var dataset = session.executeQueryStatement(sql);while (dataset.hasNext()) {System.out.println(dataset.next());}// 关闭连接session.close();}
}

3. 查询结果示例

1717027200000, root.vehicle.car01.speed=120
1717027200000, root.vehicle.car01.temperature=25.5
1717027260000, root.vehicle.car01.speed=130
1717027260000, root.vehicle.car01.temperature=26.0

IoTDB 与国产软硬件适配

类别适配情况
操作系统麒麟、统信 UOS
芯片架构龙芯、鲲鹏、飞腾
中间件达梦、东方通、金蝶中间件
云平台阿里云、华为云、腾讯云

 国产时序数据库的未来

随着国家对自主可控技术的重视以及市场需求的增长,预计未来几年内,国产时序数据库将迎来快速发展期。一方面,技术创新将持续提升产品的性能和可靠性;另一方面,通过加强国际合作,将进一步扩大市场影响力。

企业如何构建自主可控的时序数据平台

为了构建一个自主可控的时序数据平台,企业应遵循以下原则:

  • 选用国产化软件:优先考虑经过充分验证的国产软件产品。
  • 注重数据安全:建立健全的数据保护制度,定期开展安全审计。
  • 强化人员培训:培养一支熟悉国产技术的专业团队,增强内部技术支持能力。

如需要了解 IoTDB更多请自行查看

  • 官方网站:Apache IoTDB_国产开源时序数据库_时序数据管理服务商-天谋科技Timecho
  • 下载页面:发行版本 | IoTDB Website

在国产化替代与大数据架构升级的双重驱动下,Apache IoTDB 凭借其高性能、易用性、分布式能力与活跃的社区生态,正在成为越来越多企业时序数据库选型的首选。

http://www.xdnf.cn/news/15632.html

相关文章:

  • iOS 文件深度调试实战 查看用户文件 App 沙盒 系统文件与日志全指南
  • iOS WebView 调试实战 全流程排查接口异常 请求丢失与跨域问题
  • 深入理解进程地址空间:虚拟内存与进程独立性
  • 首个直播流扩散(LSD)AI模型:MirageLSD,它可以实时把任意视频流转换成你的自定义服装风格——虚拟换装新体验
  • LVS(Linux Virtual Server)详细笔记(实战篇)
  • 基于ROS2进行相机标定,并通过测试相机到棋盘格之间的距离进行验证
  • SpringSecurity-spring security单点登录
  • 【数据结构初阶】--双向链表(一)
  • VUE目录结构详解
  • 1 初识C++
  • ElasticSearch Doc Values和Fielddata详解
  • 数学积分方程显式求解
  • Android性能优化之电量优化
  • http与https的主要区别是什么?
  • http性能测试命令ab
  • sqli-labs靶场通关笔记:第29-31关 HTTP参数污染
  • 【前端】输入框输入内容时,根据文本长度自动分割,中间用横杠分割
  • 模版匹配的曲线好看与否有影响吗?
  • Git 中如何比较不同版本之间的差异?常用命令有哪些?
  • 金属伪影校正的双域联合深度学习框架复现
  • Prometheus错误率监控与告警实战:如何自定义规则精准预警服务器异常
  • Spring Boot 应用优雅停机与资源清理:深入理解关闭钩子
  • SQLite 数据库字段类型-详细说明,数据类型详细说明。
  • ES v.s Milvus v.s PG
  • kafka 单机部署指南(KRaft 版本)
  • 代码训练营DAY35 第九章 动态规划part03
  • cocosCreator2.4 Android 输入法遮挡
  • 车载监控录像系统:智能安全驾驶的守护者
  • AI编程工具 Cursor 和 Kiro 哪个的Claude更好用!
  • 如何使用Python将HTML格式的文本转换为Markdown格式?