【KWDB 2025 创作者计划】_从部署开始了解KWDB

news2025/5/23 6:56:00

一、概述

KaiwuDB 是一款面向 AIoT 场景的分布式、多模融合、支持原生 AI 的数据库产品,支持同一实例同时建立时序库和关系库并融合处理多模数据,具备时序数据高效处理能力,具有稳定安全、高可用、易运维等特点。面向工业物联网、数字能源、车联网、智慧产业等领域,KaiwuDB 提供一站式数据存储、管理与分析的基座。

我们先了解下什么是时序数据库?
时序数据库(Time Series Database, TSDB)是专门针对时间序列数据(按时间顺序记录的数据点)进行存储和管理的数据库。这类数据通常包含时间戳(Timestamp)和对应的数值,例如传感器读数、服务器监控指标、金融交易记录等。时序数据库的核心特点是高效处理时间范围内的聚合查询、高频数据写入和时间窗口分析。

KWDB优势‌

  1. ‌数据整合与统一性‌:KWDB能够将来自不同来源的数据进行整合,构建一个统一的知识库,提高数据的一致性和完整性。
  2. ‌知识图谱建模‌:KWDB支持知识图谱的建模和查询,帮助用户深入理解知识之间的关联和联系。
  3. ‌复杂查询与推理‌:KWDB提供强大的查询和推理功能,用户可以通过灵活的查询语言和规则来进行复杂的数据分析和推理操作。
  4. ‌可视化展示‌:KWDB支持数据的可视化展示,帮助用户更直观地理解和使用知识库中的信息。

KWDB的架构

相比传统的数据库,KWDB 提供多模数据管理能力,支持不同数据模型的统一存储,助力企业跨部门、跨业务统一管理数据,实现多业务数据融合,支撑多样化的应用服务。

二、安装要求

硬件要求

项目

要求
CPU 和内存单节点配置建议不低于 4 核 8G。对于数据量大、复杂的工作负载、高并发和高性能场景,建议配置更高的 CPU 和内存资源以确保系统的高效运行。
磁盘- 推荐使用 SSD 或者 NVMe 设备,尽量避免使用 NFS、CIFS、CEPH 等共享存储。
- 磁盘必须能够实现 500 IOPS 和 30 MB/s 处理效率。
文件系统建议使用 ext4 文件系统。

操作系统支持

操作系统暂时支持四大类,Anolis、KylinOS、Ubuntu和UOS,每个系统都有对应arm和x86的版本

操作系统版本架构
Anolis8.6ARM_64
8.6x86_64
KylinOSV10 SP3 2403ARM_64open in new window
V10 SP3 2303ARM_64
V10 SP3 2403x86_64open in new window
V10 SP3 2303x86_64
UbuntuV18.04x86_64
V20.04ARM_64
V20.04x86_64open in new window
V22.04ARM_64
V22.04x86_64open in new window
V24.04ARM_64
V24.04x86_64
UOS1060ex86_64
1060eARM_64

其他软件依赖

OpenSSL遇到的问题比较多,可以先检查下openssl的版本并检查protobuf是否安装

[root@localhost ~]# rpm -qa openssl
openssl-1.1.1f-31.p23.ky10.x86_64

[root@localhost kwdb_install]# rpm -qa protobuf
protobuf-3.14.0-7.ky10.x86_64

依赖版本说明
OpenSSLv1.1.1+N/A
libprotobufv3.6.1+注意:Ubuntu 18.04 默认的 libprotobuf 版b本不满足要求,用户需要提前安装所需版本(推荐 3.6.1 和 3.12.4)。
GEOSv3.3.8+可选依赖
xz-libsv5.2.0+N/A
squashfs-toolsanyN/A
libgccv7.3.0+N/A
mountanyN/A
squashfuseany可选依赖

更多详细可参考官方文档:https://www.kaiwudb.com/kaiwudb_docs/#/oss_v2.2.0/quickstart/install-kaiwudb/quickstart-bare-metal.html

三、环境介绍及安装准备

安装方面可以选择以下任意一种方式部署 KWDB 数据库:
单节点裸机部署
单节点容器部署
源码编译

本次安装使用单节点裸机部署,源码编译比较耗时,单节点容器部署相对比较不安全,出问题后排查比较繁琐,后面再进行体验安装

环境信息:
操作系统cpu内存存储
Kylin-Server-V104C8G100G

附上操作系统地址:https://iso.kylinos.cn/web_pungi/download/cdn/9D2GPNhvxfsF3BpmRbJjlKu0dowkAc4i/Kylin-Server-V10-SP3-2403-Release-20240426-x86_64.iso

端口信息
端口号说明
8080数据库 Web 服务端口
26257数据库服务端口、节点监听端口和对外连接端口
安装依赖

安装依赖包,官网没有找到需要哪些包,处理报错后再Kylin-Server-V10安装如下包即可

yum install -y gcc-c++ protobuf

安装包下载

安装包下载链接:https://gitee.com/kwdb/kwdb/releases/download/V2.2.0/KWDB-2.2.0-kylinV10_2403-x86_64-rpms.tar.gz

如服务器可以联网可直接下载:

wget  https://gitee.com/kwdb/kwdb/releases/download/V2.2.0/KWDB-2.2.0-kylinV10_2403-x86_64-rpms.tar.gz

更多安装包下载

Gitee 社区下载地址:kwdb 发行版 - Gitee.com

安装包解压

tar -zxvf KWDB-2.2.0-kylinV10_2403-x86_64-rpms.tar.gz 

[root@localhost ~]# cd kwdb_install/
[root@localhost kwdb_install]# tree
.
├── add_user.sh
├── deploy.cfg
├── deploy.sh
├── packages
│   ├── kwdb-libcommon-2.2.0-kylin.ky10.x86_64.rpm
│   └── kwdb-server-2.2.0-kylin.ky10.x86_64.rpm
└── utils
├── container_shell.sh
├── kaiwudb_cluster.sh
├── kaiwudb_common.sh
├── kaiwudb_hardware.sh
├── kaiwudb_install.sh
├── kaiwudb_log.sh
├── kaiwudb_operate.sh
├── kaiwudb_uninstall.sh
├── kaiwudb_upgrade.sh
├── process_bar.sh
└── utils.sh

解压后的文件介绍

文件说明
add_user.sh安装、启动 KWDB 后,为 KWDB 数据库创建用户。
deploy.cfg安装部署配置文件,用于配置部署节点的 IP 地址、端口等配置信息。
deploy.sh安装部署脚本,用于安装、卸载、启动、状态获取、关停和重启等操作。
packages 目录存放 DEB、RPM 和镜像包。
utils 目录存放工具类脚本

四、环境部署

1、编辑deploy.cfg配置文件

编辑安装包目录下的 deploy.cfg 配置文件,设置安全模式、管理用户、服务端口等信息。

先备份一份deploy.cfg文件,以备修改错误恢复

cp deploy.cfg deploy.cfg_bak

如果是测试环境,对这些信息不敏感可以只修改node_addr剩余保持默认直接安装即可,单实例需要注释掉cluster内容

vi deploy.cfg

[global]
# Whether to turn on secure mode
secure_mode=tls
# Management KaiwuDB user
management_user=kaiwudb
# KaiwuDB cluster http port
rest_port=8080
# KaiwuDB service port
kaiwudb_port=26257
# KaiwuDB data directory
data_root=/var/lib/kaiwudb
# CPU usage[0-1]
# cpu=1
[local]
# local node configuration
node_addr=192.168.150.135
# section cluster is optional
[cluster]
# remote node addr,split by ','
#node_addr=127.0.0.2,127.0.0.3
# ssh info
#ssh_port=22
#ssh_user=admin

参数说明:

  • global:全局配置
    • secure_mode:是否开启安全模式,支持以下两种取值:
      • insecure:使用非安全模式。
      • tls:(默认选项)开启 TLS 安全模式。开启安全模式后,KWDB 生成 TLS 证书,作为客户端或应用程序连接数据库的凭证。生成的客户端相关证书存放在 /etc/kaiwudb/certs 目录。
    • management_user:KWDB 的管理用户,默认为 kaiwudb。安装部署后,KWDB 创建相应的管理用户以及和管理用户同名的用户组。
    • rest_port:KWDB Web 服务端口,默认为 8080
    • kaiwudb_port:KWDB 服务端口,默认为 26257
    • data_root:数据目录,默认为 /var/lib/kaiwudb
    • cpu: 可选参数,用于指定 KWDB 服务占用当前节点服务器 CPU 资源的比例,默认无限制。取值范围为 [0,1],最大精度为小数点后两位。注意:如果部署环境为 Ubuntu 18.04 版本,部署集群后,需要将 kaiwudb.service 文件中的 CPUQuota 修改为整型值,例如,将 180.0% 修改为 180%,以确保设置生效。
  • local:本地节点配置
    • node_addr:本地节点对外提供服务的 IP 地址,监听地址为 0.0.0.0,端口为 KWDB 服务端口。

2、授权及安装

#对deploy.sh授予可执行权限chmod +x ./deploy.sh#执行安装./deploy.sh install --single

安装成功返回如下:

[root@localhost kwdb_install]# ./deploy.sh install --single
[WARN] 2025-05-20 13:49:51 The number of CPU cores does not meet the requirement. KaiwuDB may running failed.
Please input kaiwudb's password: [INSTALL COMPLETED]:KaiwuDB has been installed successfully! To start KaiwuDB, please execute the command 'systemctl daemon-reload'.

3、重新加载 systemd 守护进程的配置文件及启动数据库

#重新加载守护进程配置文件

systemctl daemon-reload

#启动数据库

./deploy.sh start

启动成功如下:

[root@localhost kwdb_install]# systemctl daemon-reload
[root@localhost kwdb_install]# ./deploy.sh start
[START COMPLETED]:KaiwuDB start successfully.

4、kwdb状态查看

安装完成后,安装脚本会把KaiwuDB封装成系统服务kaiwudb,可以是用系统命令进行启停

#可以使用

./deploy.sh status

也可以使用

systemctl status kaiwudb

[root@localhost kwdb_install]# ./deploy.sh status
[STATUS COMPLETED]:KaiwuDB is runnning now.
[root@localhost kwdb_install]# systemctl status kaiwudb
● kaiwudb.service - KaiwuDB Service
Loaded: loaded (/etc/systemd/system/kaiwudb.service; disabled; vendor preset: disabled)
Active: active (running) since Tue 2025-05-20 13:59:31 CST; 2min 34s ago
Process: 39267 ExecStartPre=/usr/bin/sudo /usr/sbin/sysctl -w vm.max_map_count=10000000 (code=exited, status=0/SUCCESS)
Main PID: 39279 (kwbase)
Tasks: 39
Memory: 452.3M
CGroup: /system.slice/kaiwudb.service
└─39279 /usr/local/kaiwudb/bin/kwbase start-single-node --certs-dir=/etc/kaiwudb/certs --listen-addr=0.0.0.0:26257 --adv>

5月 20 13:59:32 localhost.localdomain kwbase[39279]: sql: postgresql://root@192.168.150.135:26257?sslcert=%2Fetc%2F>
5月 20 13:59:32 localhost.localdomain kwbase[39279]: RPC client flags: /usr/local/kaiwudb/bin/kwbase <client cmd> --host=192.168>
5月 20 13:59:32 localhost.localdomain kwbase[39279]: logs: /var/lib/kaiwudb/logs
5月 20 13:59:32 localhost.localdomain kwbase[39279]: temp dir: /var/lib/kaiwudb/kwbase-temp052302502
5月 20 13:59:32 localhost.localdomain kwbase[39279]: external I/O path: /var/lib/kaiwudb/extern
5月 20 13:59:32 localhost.localdomain kwbase[39279]: store[0]: path=/var/lib/kaiwudb
5月 20 13:59:32 localhost.localdomain kwbase[39279]: storage engine: rocksdb
5月 20 13:59:32 localhost.localdomain kwbase[39279]: status: initialized new cluster
5月 20 13:59:32 localhost.localdomain kwbase[39279]: clusterID: 4df52272-fdea-4e45-8429-b1e704fe84fd
5月 20 13:59:32 localhost.localdomain kwbase[39279]: nodeID: 1

5、add_user.sh 脚本创建数据库用户

kwdb封装了一个创建用户的脚本,一键创建用户,初始化用户很方便,大大的赞

[root@localhost kwdb_install]# ./add_user.sh
Please enter the username:banjin
Please enter the password:

[ADD USER COMPLETED]:User creation completed.

6、配置开机启动

因为kwdb已经自动封装为操作系统服务kaiwudb,可以直接一条命令配置开机启动,测试环境也建议打开每次启动服务器数据库自动启动

systemctl enable kaiwudb

7、数据库连接

#非安全模式,参照deploy.cfg修改时设置的secure_mode参数

#使用部署时的操作系统用户登录

kwbase sql --insecure --host=<your-host-ip>

#使用自定义的用户登录,如使用add_user.sh脚本创建的用户

kwbase sql --insecure --host=<your-host-ip> -u <user-name>

#tls安全模式,参照deploy.cfg修改时设置的secure_mode参数

#使用部署时的操作系统用户登录

kwbase sql --certs-dir=etc/kwdb/certs --host=<your-host-ip>

#使用自定义的用户登录,如使用add_user.sh脚本创建的用户

kwbase sql --certs-dir=etc/kwdb/certs --host=<your-host-ip> -u <user-name>

#参数介绍

--certs-dir 数据库客户端相关证书存放目录

--host  数据库地址

-u 用户

-d 数据库,不指定默认为defaultdb

登录使用

[root@localhost kaiwudb]# kwbase sql --certs-dir=/etc/kaiwudb/certs --host=192.168.150.135
#
# Welcome to the KWDB SQL shell.
# All statements must be terminated by a semicolon.
# To exit, type: \q.
#
# Server version: KaiwuDB 2.2.0 (x86_64-linux-gnu, built 2025/03/31 07:20:16, go1.16.15, gcc 7.3.0) (same version as client)
# Cluster ID: 4df52272-fdea-4e45-8429-b1e704fe84fd
#
# Enter \? for a brief introduction.
#
root@192.168.150.135:26257/defaultdb> \l
database_name | engine_type
----------------+--------------
defaultdb | RELATIONAL
postgres | RELATIONAL
system | RELATIONAL
(3 rows)

Time: 1.512288ms

root@192.168.150.135:26257/defaultdb> \du
username | options | member_of
-----------+------------+------------
admin | CREATEROLE | {}
banjin | | {admin}
root | CREATEROLE | {admin}
(3 rows)

Time: 3.842555ms

五、模板数据库sampleDB使用

SampleDB 是一个用于展示示例数据与场景的项目。其核心目标是助力用户快速掌握 KWDB 数据库的使用方法,为用户提供便捷的测试与学习环境,SampleDB数据库模型是一个智能电表项目,包含关系库rdb和时序库tsdb

下载地址:登录 - Gitee.com

下载后上传服务器解压

mkdir cd /var/lib/kaiwudb/extern

#上传rdb.tar.gz,tsdb.tar.gz到此目录

cd /var/lib/kaiwudb/extern

tar xvf rdb.tar.gz
tar xvf tsdb.tar.gz

导入关系库 rdb 数据

import database csv data ("nodelocal://1/rdb");

#登录

 kwbase sql --certs-dir=/etc/kaiwudb/certs --host=192.168.150.135

#导入

import database csv data ("nodelocal://1/rdb");

root@192.168.150.135:26257/defaultdb> import database csv data ("nodelocal://1/rdb");

job_id | status | fraction_completed | rows | abandon_rows | reject_rows | note
----------------------+-----------+--------------------+------+--------------+-------------+-------
1073655494850838529 | succeeded | 1 | 305 | 0 | 0 | None
(1 row)

Time: 157.913643ms

#验证 --切换rdb数据库登录

root@192.168.150.135:26257/defaultdb> use rdb;
SET

Time: 403.717µs

root@192.168.150.135:26257/rdb> show tables;
table_name | table_type
--------------+-------------
alarm_rules | BASE TABLE
area_info | BASE TABLE
meter_info | BASE TABLE
user_info | BASE TABLE
(4 rows)

导入时序库 tsdb 数据

import database csv data ("nodelocal://1/tsdb");

#导入

root@192.168.150.135:26257/rdb> import database csv data ("nodelocal://1/tsdb");
job_id | status | fraction_completed | rows | abandon_rows | reject_rows | note
---------+-----------+--------------------+-------+--------------+-------------+-------
- | succeeded | 1 | 10100 | 0 | 0 | None
(1 row)

Time: 526.048817ms

root@192.168.150.135:26257/rdb> \q

#切换tsdb数据库

root@192.168.150.135:26257/defaultdb> use rdb;
SET

Time: 403.717µs

root@192.168.150.135:26257/tsdb> show tables;
table_name | table_type
-------------+--------------------
meter_data | TIME SERIES TABLE
(1 row)

Time: 1.576363ms

场景实例

故障电表信息

SELECT 
  mi.meter_id,
  u.user_name,
  u.contact,
  a.area_name
FROM rdb.meter_info mi
JOIN rdb.user_info u ON mi.user_id = u.user_id
JOIN rdb.area_info a ON mi.area_id = a.area_id
WHERE mi.status = 'Fault';

root@192.168.150.135:26257/tsdb> SELECT
-> mi.meter_id,
-> u.user_name,
-> u.contact,
-> a.area_name
-> FROM rdb.meter_info mi
-> JOIN rdb.user_info u ON mi.user_id = u.user_id
-> JOIN rdb.area_info a ON mi.area_id = a.area_id
-> WHERE mi.status = 'Fault';
meter_id | user_name | contact | area_name
-----------+-----------+-------------+------------
M100 | User 1 | 13800138001 | Area 1
M20 | User 21 | 13800138021 | Area 21
M40 | User 41 | 13800138041 | Area 41
M60 | User 61 | 13800138061 | Area 61
M80 | User 81 | 13800138081 | Area 81
(5 rows)

Time: 2.224859ms

区域用电量top10

SELECT 
  a.area_name,
  SUM(md.energy) AS total_energy
FROM tsdb.meter_data md
JOIN rdb.meter_info mi ON md.meter_id = mi.meter_id
JOIN rdb.area_info a ON mi.area_id = a.area_id
GROUP BY a.area_name
ORDER BY total_energy DESC
LIMIT 10;

root@192.168.150.135:26257/tsdb> SELECT
-> a.area_name,
-> SUM(md.energy) AS total_energy
-> FROM tsdb.meter_data md
-> JOIN rdb.meter_info mi ON md.meter_id = mi.meter_id
-> JOIN rdb.area_info a ON mi.area_id = a.area_id
-> GROUP BY a.area_name
-> ORDER BY total_energy DESC
-> LIMIT 10;
area_name | total_energy
------------+---------------
Area 2 | 5.556e+06
Area 1 | 5.55499e+06
Area 100 | 5.55398e+06
Area 99 | 5.55297e+06
Area 98 | 5.55196e+06
Area 97 | 5.55095e+06
Area 96 | 5.54994e+06
Area 95 | 5.54893e+06
Area 94 | 5.54792e+06
Area 93 | 5.54691e+06
(10 rows)

Time: 21.137013ms

至此kwdb的部署及关系库和时序库安装体验完成,安装相对比较简单,整个体验对用户比较友好,特别是贴心的准备了add_user.sh用户创建脚本,简化了用户创建操作,特地准备了模板数据库sampledb,列举了很多实例场景,可以更好的体验kwdb

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

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

相关文章

高等数学-微分

一、一元函数&#xff1a; 在实际应用中&#xff0c;经常需要近似计算函数yf(x)的增量Δyf(x)-f(x0)f(x0Δx)-f(x0),其中一种近似称为函数的微分。 定义&#xff1a;若函数yf(x)在点x0处的增量Δy可表达为自变量增量Δx的线性函数AΔx和Δx的高阶无穷小量之和&#xff0c;即Δ…

有没有开源的企业网盘,是否适合企业使用?

开源选项丰富、灵活定制能力强、需要额外运维投入、适合特定场景但不一定适合所有企业&#xff0c;是开源企业网盘的主要特征。从表面看&#xff0c;开源网盘往往具有免费或低成本优势&#xff0c;但企业要投入一定的人力与技术资源来完成安装、维护与升级&#xff0c;从而保障…

基于系统整合的WordPress个性化配置方法深度解析:从需求分析到实现过程

文章目录 引言一、理解WordPress页面与文章的区别二、主题与模板层级&#xff1a;自定义的基础三、自定义页面模板&#xff1a;打造专属页面风格四、自定义文章模板&#xff1a;打造个性化文章呈现五、使用自定义字段和元数据&#xff1a;增强内容灵活性六、利用WordPress钩子&…

使用pm2 部署react+nextjs项目到服务器

记录一下 next.config.js中&#xff1a; output: standalone,package.json配置&#xff1a; "scripts": {"dev": "cross-env NODE_OPTIONS--inspect next dev","build": "next build","start": "cp -r .nex…

JVM常量池(class文件常量池,运行时常量池,字符串常量池)

文章目录 问题JVM运行时数据区JVM中的常量池Class文件常量池运行时常量池字符串常量池创建了几个对象String的定义intern()问题 超过1W字深度剖析JVM常量池&#xff08;全网最详细最有深度&#xff09; - 跟着Mic学架构 - 博客园 问题 jdk1.8之后 元空间是独立存在的&#xf…

我爱学算法之—— 二分查找(中)

一、搜索插入位置 题目解析 这道题&#xff0c;给定一个数组nums和一个目标值target&#xff0c;让我们在数组nums中找到目标值&#xff1b;如果目标值存在就返回它的下标&#xff0c;如果不存在就返回数target被顺序插入的位置下标。 算法思路 这道题&#xff0c;我们可以使…

军事目标系列之迷彩作战人员检测数据集VOC+YOLO格式2755张1类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;2755 标注数量(xml文件个数)&#xff1a;2755 标注数量(txt文件个数)&#xff1a;2755 …

node12.22.12在nvm中安装

1、安装nvm 官网&#xff1a;https://nvm.uihtm.com/ 下载&#xff0c;安装 nvm -v 1.2.22、通过 nvm install 12.22.12 安装报错&#xff0c;找不到此版本 通过下载 https://nodejs.org/zh-cn/downloadzip文件 解压 3、查看nvm 安装路径 nvm root4、在目录下新建文件夹 v…

【生态信息】开源软件全方位解析

开源软件(0pen Source Software&#xff0c;0ss)是指其源代码可以公开发布、查看、使用和修改的软件。这一概念的核心在于开放性和共享性&#xff0c;允许开发者自由地使用、修改、分发以及改进软件。开源软件通常遵循特定的开源许可证&#xff0c;这些许可证确保了软件的自由使…

FastAPI在 Nginx 和 Docker 环境中的部署

目录 实现示例1. 项目结构2. FastAPI 应用 (app/main.py)3. 依赖文件 (app/requirements.txt)4. Dockerfile5. Nginx 配置 (nginx/nginx.conf)6. Docker Compose 配置 (docker-compose.yml) 使用方法修改代码后更新 实现示例 接下来创建一个简单的示例项目&#xff0c;展示如何…

计算机网络相关面试题

一、HTTP1.1和HTTP2的区别 HTTP/1&#xff08;主要指 HTTP/1.1&#xff09;和 HTTP/2 是 Web 协议发展中的两个重要版本&#xff0c;二者在性能、协议机制和功能特性上有显著差异。以下从多个维度对比分析&#xff0c;并结合具体案例说明&#xff1a; 一、连接与请求处理方式 1…

根据当前日期计算并选取上一个月和上一个季度的日期范围,用于日期控件的快捷选取功能

1.选择月份范围 代码如下&#xff1a; <el-date-picker v-model"value" type"monthrange" align"right" unlink-panels range-separator"至"start-placeholder"开始月份" end-placeholder"结束月份" :picker-…

【C++】set、map 容器的使用

文章目录 1. set 和 multiset 的使用1.1 set类的介绍1.2 set的构造和迭代器1.3 set 的增删查1.4 insert和迭代器调用示例1.5 find和erase使用示例1.6 multiset和set的差异 2. map 和 multimap 的使用2.1 map 类的介绍2.2 pair 类型介绍2.3 map 的构造和迭代器2.4 map 的增删查2…

【MySQL】第1节|全面理解MySQL架构

快速安装MySQL 使用Docker快速安装mysql8 docker run -d \ --name mysql8 \ --privilegedtrue \ --restartalways \ -p 13306:3306 \ -v /home/mysql8/data:/var/lib/mysql \ -v /home/mysql8/config:/etc/mysql/conf.d \ -v /home/mysql8/logs:/logs \ -e MYSQL_ROOT_PAS…

YOLOv8模型剪枝笔记(DepGraph和Network Slimming网络瘦身)

文章目录 一、DepGraph剪枝&#xff08;1&#xff09;项目准备1&#xff09;剪枝基础知识2&#xff09;DepGraph剪枝论文解读12&#xff09;DepGraph剪枝论文解读23&#xff09;YOLO目标检测系列发展史4&#xff09;YOLO网络架构 &#xff08;2&#xff09;项目实战&#xff08…

App Builder技术选型指南:从AI编程到小程序容器,外卖App开发实战

在2025年快速迭代的技术生态中&#xff0c;开发者构建App的路径愈发多样化。本文以开发一个同城外卖App为例&#xff0c;对比当前主流的AI编程工具&#xff08;如Cursor、GitHub Copilot、Trae&#xff09;与小程序容器技术&#xff08;如FinClip&#xff09;的优劣势、难易度及…

TDengine 高可用——三副本

概述 TDengine 的三副本方案采用 RAFT 算法来实现数据的一致性&#xff0c;包括元数据和时序数据。一个虚拟节点组&#xff08;VGroup&#xff09;构成了一个 RAFT 组&#xff1b;VGroup 中的虚拟节点&#xff08;Vnode&#xff09;&#xff0c;便是该 RAFT 组的成员节点&…

el-table高度自适应、数据查询后高度展示错误问题

在很多场景中我们需要实现表格的高度自适应&#xff0c;即不同屏幕大小下需要使用不同的高度来设置表格&#xff0c;那么我们应该如何实现呢&#xff1f; 1.el-table实现高度自适应 通过以下代码可以实现表格根据屏幕进行自适应 设置表格的高度 <el-table ref"tableD…

Java接口设计:ECharts热力图的绘制

引言 热力图是一种强大的数据可视化工具&#xff0c;通过颜色的深浅变化来直观展示数据密度和分布情况。在现代Web应用中&#xff0c;ECharts作为一款流行的开源数据可视化库&#xff0c;提供了丰富的图表类型&#xff0c;其中热力图因其直观的视觉效果而被广泛使用。本教程将…

深入理解 MongoDB 的 _id 和 ObjectId:从原理到实践

在 MongoDB 的世界中&#xff0c;_id 字段和 ObjectId 是每个开发者都必须理解的核心概念。作为 MongoDB 文档的唯一标识符&#xff0c;它们不仅影响着数据库的设计&#xff0c;也直接关系到应用的性能和扩展性。本文将全面剖析 _id 和 ObjectId 的工作原理、实际应用场景以及最…