【KWDB 创作者计划】使用Docker实现KWDB数据库的快速部署与配置

【KWDB 创作者计划】使用Docker实现KWDB数据库的快速部署与配置

  • 前言
  • 一、KWDB介绍
    • 1.1 KWDB简介
    • 1.2 主要特点
    • 1.3 典型应用场景
  • 二、环境介绍
    • 2.1 部署环境要求
    • 2.2 本地环境规划
    • 2.3 部署模式
  • 三、部署Docker环境
    • 3.1 安装相关工具
    • 3.2 配置Docker软件源
    • 3.3 更新软件源
    • 3.4 安装Docker
    • 3..5 配置镜像加速
    • 3.6 检查Docker版本
  • 四、下载容器镜像
  • 五、非安全部署模式(可选)
    • 5.1 创建部署目录
    • 5.2 创建KWDB容器
    • 5.3 检查容器状态
    • 5.4 访问本地KWDB数据库
    • 5.5 使用普通用户访问KWDB
  • 六、安全部署模式
    • 6.1 创建证书文件
    • 6.2 创建KWDB容器
    • 6.3 查看容器状态
    • 6.4 查看容器日志
    • 6.5 访问KWDB数据库
    • 6.6 创建用户和密码
    • 6.7 使用新用户连接KWDB
  • 七、使用KaiwuDB开发者中心连接KWDB
    • 7.1 安装环境要求
    • 7.2 安装 KaiwuDB 开发者中心
    • 7.3 连接 KWDB 数据库
  • 八、KWDB数据库体验与总结

前言


随着 AIoT 技术的快速发展,对数据库的多模数据处理能力和智能化水平提出了更高要求。KaiwuDB 作为一款面向 AIoT 场景的国产分布式数据库,凭借其高效的时序数据处理能力与多模融合特性,逐渐成为行业关注的焦点。本文将通过 Docker 容器化方式,带大家快速部署并体验 KaiwuDB 数据库的强大功能与便捷管理。


一、KWDB介绍

1.1 KWDB简介

KWDB 是一款面向 AIoT 场景的分布式、多模融合数据库产品。 支持在同一个实例中建立时序库和关系库,并统一处理多种类型的数据,具备对海量时序数据的高效读写与分析能力。 产品具备高可用、安全稳定、易运维等特性,广泛应用于工业物联网、数字能源、车联网、智慧矿山等多个行业领域,为用户提供一站式数据存储、管理与分析的基础平台。

在这里插入图片描述

1.2 主要特点

  1. 高性能处理能力:支持海量时序数据高速读写,提供插值查询、数学函数等丰富的时序特色功能,提升应用效率。
  2. 低运管成本:统一存储与管理多模数据,一套系统满足跨业务、跨部门数据融合需求,降低企业IT与运维投入。
  3. 低存储成本:支持 5-30 倍数据压缩比,结合数据生命周期管理策略,灵活控制数据保留时间,显著节省存储资源。
  4. 高安全性:提供数据库审计与加密机制,保障数据在复杂业务场景下的安全稳定运行。
  5. 易用性强:提供标准 SQL 接口、高速写入、极速查询、集群部署等能力,与第三方工具无缝集成,开发运维更便捷。

1.3 典型应用场景

应用场景场景描述
工业物联网支持 SCADA/DCS 系统对接,统一存储设备实时数据与生产管理数据,助力智能化生产分析。
数字能源融合传感器与业务数据,实现调峰调频分析与实时预警,推动能源系统智能化升级。
车联网高速写入车端传感器数据,支撑车辆状态监控与上层业务分析,打造智能车联网解决方案。
智慧矿山统一处理采选冶全流程中的关系与时序数据,打通多业务系统,提升矿山数字化水平。

二、环境介绍

2.1 部署环境要求

  • KWDB数据库的硬件规格要求
项目要求
CPU 和内存单节点建议配置不低于 4 核心 CPU 和 8 GB 内存。对于数据量大、复杂的工作负载、高并发以及对性能要求较高的场景,建议增加 CPU 核心数和内存容量,以确保系统的高效运行和稳定性。
磁盘- 推荐使用 SSD 或 NVMe 存储设备,避免使用 NFS、CIFS、CEPH 等共享存储。
- 磁盘需具备至少 500 IOPS(每秒输入输出操作次数)和 30 MB/s 的处理效率,以满足数据库的读写需求。
文件系统建议使用 ext4 文件系统,以提供良好的兼容性和性能表现。
备注在实际部署过程中,用户应根据具体的业务规模和性能需求灵活规划硬件资源,确保系统能够高效稳定地运行。
  • KWDB 支持在以下已安装 Docker的操作系统中进行容器部署
操作系统版本架构
Anolis7.9ARM_64、x86_64
Anolis8.6ARM_64、x86_64
CentOS7x86_64
CentOS8x86_64
DebianV11ARM_64
KylinOSV10 SP3 2403ARM_64、x86_64
KylinOSV10 SP3 2303ARM_64、x86_64
openEuler22.03x86_64
UbuntuV18.04x86_64
UbuntuV20.04ARM_64、x86_64
UbuntuV22.04ARM_64、x86_64
UbuntuV24.04ARM_64、x86_64
UOS1050ex86_64
UOS1060eARM_64、x86_64
UOS1070ex86_64

2.2 本地环境规划

本次实践为个人测试环境,操作系统版本为Ubuntu 22.04.1。

hostnameIP地址操作系统版本Docker版本部署项目
jeven01192.168.3.88Ubuntu 22.04.1 LTS28.1.1KWDB数据库

2.3 部署模式

  • 使用容器镜像部署KaiwuDB的部署模式说明:
部署方式描述支持的部署模式备注
Docker Compose 和 YAML配置文件基于Docker Compose及YAML配置文件进行部署,简化了多容器应用的管理和配置。非安全部署模式使用YAML文件部署KaiwuDB
docker run命令行通过执行docker run命令直接启动容器,提供了更高的灵活性和控制力。安全和非安全部署模式执行Docker Run命令部署KaiwuDB

三、部署Docker环境

3.1 安装相关工具

安装docker之前,我们先安装 HTTPS传输工具及必要组件。

 apt  install -y apt-transport-https ca-certificates curl gnupg lsb-release software-properties-common

在这里插入图片描述

3.2 配置Docker软件源

  • 添加阿里云 GPG 密钥
mkdir -p /etc/apt/keyrings
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker-archive-keyring.gpg
  • 执行以下命令,开始配置阿里云 Docker 软件源。
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

3.3 更新软件源

使用apt-get update命令,更新软件源。

root@jeven01:~# apt update
Hit:1 https://mirrors.aliyun.com/ubuntu jammy InRelease
Hit:2 https://mirrors.aliyun.com/ubuntu jammy-security InRelease
Hit:3 https://mirrors.aliyun.com/ubuntu jammy-updates InRelease
Hit:4 https://mirrors.aliyun.com/ubuntu jammy-backports InRelease
Hit:5 https://mirrors.aliyun.com/docker-ce/linux/ubuntu jammy InRelease
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
194 packages can be upgraded. Run 'apt list --upgradable' to see them.

3.4 安装Docker

执行以下命令,安装Docker核心组件。

apt  install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

在这里插入图片描述

3…5 配置镜像加速

执行以下命令,快速配置Docker镜像加速。可以自行添加多个Docker镜像加速源,确保后续可以成功拉取Docker镜像。

mkdir -p /etc/docker
sudo  tee /etc/docker/daemon.json > /dev/null <<EOF
{"registry-mirrors": ["https://80c84f5330e14908928ca78944e61dc4.mirror.swr.myhuaweicloud.com"]
}
EOF

执行以下命令,配置Docker开机自启。

systemctl daemon-reload
systemctl restart docker

3.6 检查Docker版本

检查Docker版本,可以看到当前安装的版本为28.1.1

root@jeven01:~# docker -v
Docker version 28.1.1, build 4eba377

检查Docker compose版本,当前安装版本为2.35.1

root@jeven01:~# docker compose version
Docker Compose version v2.35.1

四、下载容器镜像

执行以下命令,拉取KWDB容器镜像。本次实践所使用的KWDB镜像为kwdb/kwdb:2.2.0

root@jeven01:/data/kwdb# docker pull kwdb/kwdb:2.2.0
2.2.0: Pulling from kwdb/kwdb
Digest: sha256:9dda946922a69557e20be9f1d99c504c467fba6351bb8af0a34fe42711cde73f
Status: Image is up to date for kwdb/kwdb:2.2.0
docker.io/kwdb/kwdb:2.2.0

在这里插入图片描述

五、非安全部署模式(可选)

5.1 创建部署目录

  • 创建kwdb数据库目录
mkdir -p /data/kwdb   &&  cd /data/kwdb/

5.2 创建KWDB容器

使用docker run命令方式部署,可参考以下:

docker run -d --privileged --name kaiwudb \--ulimit memlock=-1 \--ulimit nofile=65535 \-p 26257:26257 \-p 8080:8080 \-v /var/lib/kaiwudb:/kaiwudb/deploy/kaiwudb-container \--ipc shareable \-w /kaiwudb/bin \kwdb/kwdb:2.2.0 \./kwbase start-single-node \--insecure \--listen-addr=0.0.0.0:26257 \--http-addr=0.0.0.0:8080 \--store=/kaiwudb/deploy/kaiwudb-container

使用 Docker Compose和YAML配置文件部署,目前只支持非安全部署模式,

version: '3.3'
services:kaiwudb-container:image: "kwdb/kwdb:2.2.0"container_name: kaiwudb-experiencehostname: kaiwudb-experienceports:- 8080:8080- 26257:26257ulimits:memlock: -1volumes:- /dev:/devnetworks:- defaultrestart: on-failureipc: shareableprivileged: trueenvironment:- LD_LIBRARY_PATH=/kaiwudb/libtty: trueworking_dir: /kaiwudb/bincommand:- /bin/bash- -c- |/kaiwudb/bin/kwbase start-single-node --insecure --listen-addr=0.0.0.0:26257 --advertise-addr=127.0.0.1:26257 --http-addr=0.0.0.0:8080 --store=/kaiwudb/deploy/kaiwudb
  • 部署文件相关参数解释
参数/选项描述
image: "kwdb/kwdb:2.2.0"指定使用的容器镜像及其标签,这里是 kwdb/kwdb:2.2.0。
container_name: kaiwudb-experience容器的名称。
hostname: kaiwudb-experience容器的主机名。
ports:端口映射列表,将宿主机端口映射到容器内部端口。
- 8080:8080将宿主机的 8080 端口映射到容器内的 8080 端口(HTTP 服务)。
- 26257:26257将宿主机的 26257 端口映射到容器内的 26257 端口(数据库主端口)。
ulimits:设置容器的资源限制。
memlock: -1取消内存锁定限制。
volumes:定义卷挂载,用于数据持久化或共享配置文件等。
- /dev:/dev将宿主机的 /dev 目录挂载到容器内相同位置。
networks:定义网络设置,默认使用 default 网络。
restart: on-failure当容器由于错误退出时自动重启。
ipc: shareable允许其他容器共享此容器的IPC命名空间。
privileged: true赋予容器扩展权限。
environment:设置环境变量。
- LD_LIBRARY_PATH=/kaiwudb/lib设置库路径环境变量。
tty: true分配一个伪TTY,保持容器运行。
working_dir: /kaiwudb/bin设置容器内的工作目录。
command:覆盖默认的容器启动命令。
- /bin/bash -c "/kaiwudb/bin/kwbase start-single-node --insecure ..."启动 KaiwuDB 的具体命令及参数(非安全模式)。
  • 启动命令参数说明:
参数描述
--insecure(仅非安全模式)指定以非安全模式运行。
--listen-addr=0.0.0.0:26257指定数据库监听的地址和端口。
--advertise-addr=127.0.0.1:26257指定对外广播的地址和端口。
--http-addr=0.0.0.0:8080指定 HTTP 接口监听的地址和端口。
--store=/kaiwudb/deploy/kaiwudb指定数据存储位置。

执行docker compose up -d 命令,运行KWDB容器

root@jeven01:/data/kwdb# docker compose up -d
[+] Running 2/2✔ Network kwdb_default          Created                                                                                                          0.1s✔ Container kaiwudb-experience  Started                                                                                                          0.2s

在这里插入图片描述

5.3 检查容器状态

  • 检查KWDB容器状态,确保容器正常启动。
root@jeven01:/data/kwdb# docker compose ps
NAME                 IMAGE               COMMAND                  SERVICE             CREATED             STATUS              PORTS
kaiwudb-experience   kwdb/kwdb:2.2.0     "/bin/bash -c '/kaiw…"   kaiwudb-container   5 minutes ago       Up 5 minutes        0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 0.0.0.0:26257->26257/tcp, :::26257->26257/tcp

5.4 访问本地KWDB数据库

我们使用 KaiwuDB 提供的内置命令行工具 kwbase 连接数据库。该工具支持以安全模式(适用于生产环境)或非安全模式(适用于测试环境)进行连接,便于用户执行数据库操作与维护。在非安全模式部署时,KaiwuDB 允许任意用户无需密码即可连接,通常用于本地开发和测试场景。

docker exec -it kaiwudb-experience ./kwbase sql --insecure  --host=127.0.0.1

在这里插入图片描述

5.5 使用普通用户访问KWDB

进入KWDB数据库后,我们创建新用户zhangsan,如下所示:

CREATE USER zhangsan;

执行以下命令,查询刚新建的zhangsan用户。

show users;

在这里插入图片描述

我们使用刚创建的zhangsan普通用户,在非安全模式下免密登录KWDB数据库。

docker exec -it kaiwudb-experience ./kwbase sql --insecure  --host=127.0.0.1 -u zhangsan

在这里插入图片描述

六、安全部署模式

6.1 创建证书文件

在以 TLS 安全模式部署 KaiwuDB 时,需先通过一系列命令创建数据库的证书颁发机构(CA)、root 用户的客户端证书以及节点服务器证书。这些证书为系统提供身份验证和加密通信能力,是实现安全部署的基础步骤。创建节点证书时,请确保将本地IP地址(例如192.168.3.88)包含在内,以生成正确的服务器证书。

docker run --rm --privileged \-v /data/kwdb/certs:/kaiwudb/certs \-w /kaiwudb/bin \kwdb/kwdb:2.2.0  \bash -c './kwbase cert create-ca --certs-dir=/kaiwudb/certs --ca-key=/kaiwudb/certs/ca.key && \./kwbase cert create-client root --certs-dir=/kaiwudb/certs --ca-key=/kaiwudb/certs/ca.key && \./kwbase cert create-node 127.0.0.1 localhost 0.0.0.0  192.168.3.88 --certs-dir=/kaiwudb/certs --ca-key=/kaiwudb/certs/ca.key'

在这里插入图片描述

查看在certs目录下的证书相关文件,如下所示:

root@jeven01:/data/kwdb# ls certs/
ca.crt  ca.key  client.root.crt  client.root.key  node.crt  node.key

6.2 创建KWDB容器

以TLS安全模式,创建KWDB容器,如下所示:

docker run -d --privileged --name kwdb \
--ulimit memlock=-1 \
--ulimit nofile=65535 \
-p 26257:26257 \
-p 8080:8080 \
-v /data/kwdb/certs:/kaiwudb/certs \
-v /data/kwdb/db:/kaiwudb/deploy/kaiwudb-container \
--ipc shareable \
-w /kaiwudb/bin \kwdb/kwdb:2.2.0  \
./kwbase start-single-node \--certs-dir=/kaiwudb/certs \--listen-addr=0.0.0.0:26257 \--http-addr=0.0.0.0:8080 \--store=/kaiwudb/deploy/kaiwudb-container

在这里插入图片描述

6.3 查看容器状态

我们查询KWDB容器状态,确保KWDB容器创建成功。

root@jeven01:/data/kwdb# docker ps
CONTAINER ID   IMAGE             COMMAND                  CREATED          STATUS          PORTS                               NAMES
3fd88edd6fce   kwdb/kwdb:2.2.0   "./kwbase start-sing…"   53 seconds ago   Up 52 seconds   0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 0.0.0.0:26257->26257/tcp, :::26257->26257/tcp   kwdb

6.4 查看容器日志

查询KWDB容器日志,确保KWDB数据库正常运行。

root@jeven01:/data/kwdb# docker logs kwdb
KWDB node starting at 2025-05-02 12:48:38.138252587 +0000 UTC (took 0.6s)
build:                2.2.0 @ 2025/03/31 07:20:02 (go1.16.15)
sql:                 postgresql://root@0.0.0.0:26257?sslcert=%2Fkaiwudb%2Fcerts%2Fclient.root.crt&sslkey=%2Fkaiwudb%2Fcerts%2Fclient.root.key&sslmode=verify-full&sslrootcert=%2Fkaiwudb%2Fcerts%2Fca.crt
RPC client flags:    ./kwbase <client cmd> --host=0.0.0.0:26257 --certs-dir=/kaiwudb/certs
logs:                /kaiwudb/deploy/kaiwudb-container/logs
temp dir:            /kaiwudb/deploy/kaiwudb-container/kwbase-temp995376563
external I/O path:   /kaiwudb/deploy/kaiwudb-container/extern
store[0]:            path=/kaiwudb/deploy/kaiwudb-container
storage engine:      rocksdb
status:              restarted pre-existing node
clusterID:           99227f6f-9dca-4105-b498-1c243f0f703c
nodeID:              1

6.5 访问KWDB数据库

使用 kwbase CLI 工具连接 KaiwuDB 时,请确保以部署数据库时所创建的用户进行登录。这种方式保证了操作的安全性和权限管理的准确性。

docker exec -it kwdb ./kwbase sql --certs-dir=/kaiwudb/certs  --host=192.168.3.88

在这里插入图片描述

6.6 创建用户和密码

  • 创建用户 jeven,设置密码为 jeven1234,并赋予管理员权限(角色为 admin)
CREATE USER jeven WITH PASSWORD 'jeven1234';
GRANT admin TO jeven;

在这里插入图片描述

  • 查询新建jeven用户,如下所示:

方法一:

SELECT * FROM  system.users;

在这里插入图片描述

方法二:

root@192.168.3.88:26257/defaultdb> SHOW USERS;username |  options   | member_of
-----------+------------+------------admin    | CREATEROLE | {}jeven    |            | {admin}root     | CREATEROLE | {admin}
(3 rows)Time: 10.348748ms

6.7 使用新用户连接KWDB

退出当前的 KWDB 数据库会话,然后使用新生成的 jeven 用户重新连接 KWDB 数据库。

docker exec -it  kwdb ./kwbase sql --certs-dir=/kaiwudb/certs  --host=192.168.3.88    --host=192.168.3.88 -u jeven

在这里插入图片描述

七、使用KaiwuDB开发者中心连接KWDB

7.1 安装环境要求

支持的操作系统

  • Windows: Windows 7 及以上 64 位系统
  • Linux: 内核 2.6 及以上系统
  • macOS: Mac 操作系统

硬件环境

项目要求
内存1G 及以上
硬盘10G 及以上

软件环境

项目要求
KaiwuDB 版本2.0 及以上版本
OpenJRE8 及以上版本

7.2 安装 KaiwuDB 开发者中心

下载地址:https://gitee.com/kwdb/kwdb/releases/tag/V2.2.0

在这里插入图片描述

下载后解压软件包,直接双击KaiwuDB Developer Center.exe,即可运行 KaiwuDB 开发者中心应用程序。

在这里插入图片描述

在这里插入图片描述

7.3 连接 KWDB 数据库

在创建新连接窗口中,选择 KaiwuDB 驱动,然后单击 下一步 按钮以继续。

在这里插入图片描述

连接设置:

  • 主机名称:192.168.3.88(本机IP),端口默认26257;
  • 数据库:defaultdb;
  • 用户:新创建的用户jeven;
  • 密码:自己设置的密码;
  • 确认连接:填写完毕后,点击“完成”确认即可。
  • 备注:确认连接前,可单击测试链接,检查连接是否成功。

在这里插入图片描述

连接成功,进入KWDB数据库,如下所示:

在这里插入图片描述

我们在 SQL 编辑器中输入并执行用户的查询语句后,即可查看用户列表信息。

在这里插入图片描述

八、KWDB数据库体验与总结

通过本次实践,我深刻体会到 KWDB 数据库作为一款国产分布式数据库的强大能力与优秀设计。尽管是首次接触,但借助 Docker 的快速部署方式,整个安装配置过程简洁高效,即使是技术小白也能轻松上手。无论是非安全模式还是安全部署模式,KWDB 都提供了清晰的操作流程和良好的系统支持。其内置的多模数据处理能力和对 AI 能力的融合,让我看到了它在工业物联网、车联网等复杂场景中的巨大潜力。KWDB 不仅性能稳定、功能丰富,而且具备高度的可操作性和前瞻性,是一款值得深入学习与广泛应用的国产数据库产品。


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

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

相关文章

JWT深度解析:现代Web身份验证的通行证-优雅草卓伊凡

# JWT深度解析&#xff1a;现代Web身份验证的通行证 ## 一、JWT的本质与构成 ### 1.1 JWT的定义解析 JWT&#xff08;JSON Web Token&#xff09;是一种**开放标准&#xff08;RFC 7519&#xff09;**&#xff0c;用于在各方之间安全地传输信息作为JSON对象。这种信息可以被…

前端缓存踩坑指南:如何优雅地解决浏览器缓存问题?

浏览器缓存&#xff0c;配置得当&#xff0c;它能让页面飞起来&#xff1b;配置错了&#xff0c;一次小小的上线&#xff0c;就能把你扔进线上 bug 的坑里。你可能遇到过这些情况&#xff1a; 部署上线了&#xff0c;结果用户还在加载旧的 JS&#xff1b;接口数据改了&#xf…

2022年8月,​韩先超对中移信息进行微服务架构原理(Docker+k8s+DevOps+Go等)培训

2022年8月&#xff0c;​韩先超对中移信息进行微服务架构原理&#xff08;Dockerk8sDevOpsGo等&#xff09;培训 2022年8月&#xff0c;在企业数字化转型和云原生架构加速演进的背景下&#xff0c; 中移信息技术有限公司特别邀请云原生与DevOps领域专家 韩先超老师&#xff0c…

ComfyUI 学习笔记,案例 6 :FLUX 模型文生图

背景 刚开始了解 Comfy UI 的时候&#xff0c;随便找了一个资料&#xff0c;对着这篇 《Flux在ComfyUI里的下载与安装》 进行操作的&#xff0c;下载了这里面的模型到本机。 玩了几天&#xff0c;大概对 ComfyUI 有了一点了解&#xff0c;知道了 Flux 这是一个模型&#xff0…

Docker + Watchtower 实现容器自动更新:高效运维的终极方案

文章目录 前言一、Watchtower 简介二、Watchtower 安装与基本使用1. 快速安装 Watchtower2. 监控特定容器 三、Watchtower 高级配置1. 设置检查间隔2. 配置更新策略3. 清理旧镜像4. 通知设置 四、生产环境最佳实践1. 使用标签控制更新2. 更新前执行健康检查3. 结合CI/CD流水线 …

从易发性分析到灾后规划,AI大模型如何颠覆传统地质灾害防治?

地质灾害是指全球地壳自然地质演化过程中&#xff0c;由于地球内动力、外动力或者人为地质动力作用下导致的自然地质和人类的自然灾害突发事件。在降水、地震等自然诱因的作用下&#xff0c;地质灾害在全球范围内频繁发生。我国不仅常见滑坡灾害&#xff0c;还包括崩塌、泥石流…

第37次CCF第三题--模板展开--stringstream读取字符串

1 a hello 1 b world 2 c $a $b 1 d good $c 1 a hi 1 e good $c1 a hello 1 b world 2 c $a $b 3 c 1 a hi 3 c将会输出&#xff1a;10 和 7&#xff0c;对应的变量的值为&#xff1a; helloworld hiworld 需要注意的是&#xff0c;在使用间接赋值语句时&#xff0c;在变量的…

深度学习:智能车牌识别系统(python)

这是一个基于opencv的智能车牌识别系统,有GUI界面。程序能自动识别图片中的车牌号码,并支持中文和英文字符识别,支持选择本地图片文件,支持多种图片格式(jpg、jpeg、png、bmp、gif)。 下面,我将按模块功能对代码进行分段说明: 1. 导入模块部分 import tkinter as tk…

Missashe考研日记-day35

Missashe考研日记-day35 1 专业课408 学习时间&#xff1a;3h学习内容&#xff1a; 完结撒花&#xff01;&#xff01;今天把OS最后一节的内容学完了&#xff0c;操作系统也算是告一段落了&#xff0c;接下来是计网时间&#xff01;不过计网我是上学期才学过的&#xff0c;当…

【Bootstrap V4系列】学习入门教程之 组件-下拉菜单(Dropdowns)

Bootstrap V4系列 学习入门教程之 组件-下拉菜单&#xff08;Dropdowns&#xff09; 下拉菜单&#xff08;Dropdowns&#xff09;一、Overview 概述二、Accessibility 可访问性三、Examples3.1 Single button 单按钮3.2 Split button 分割按钮 四、Sizing 尺寸 下拉菜单&#x…

红外遥控与NEC编码协议详解

在我们日常生活中&#xff0c;电视遥控器、空调遥控器、风扇遥控器&#xff0c;几乎都离不开“红外遥控”这项技术。虽然我们每天都在用&#xff0c;但你知道里面是怎么通信的吗&#xff1f;本篇文章将带你了解红外遥控的工作原理&#xff0c;重点解析目前应用最广泛的红外编码…

深入剖析 I/O 复用之 select 机制

深入剖析 I/O 复用之 select 机制 在网络编程中&#xff0c;I/O 复用是一项关键技术&#xff0c;它允许程序同时监控多个文件描述符的状态变化&#xff0c;从而高效地处理多个 I/O 操作。select 作为 I/O 复用的经典实现方式&#xff0c;在众多网络应用中扮演着重要角色。本文…

【Linux系列】目录大小查看

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

《AI大模型应知应会100篇》第48篇:构建企业级大模型应用的架构设计

第48篇&#xff1a;构建企业级大模型应用的架构设计 摘要&#xff1a;本文将提供企业级大模型应用的端到端架构设计方案&#xff0c;从系统设计原则到技术栈选择&#xff0c;从高可用保障到安全合规&#xff0c;全面覆盖构建稳健、可扩展、安全的大模型应用所需的工程实践。适合…

人协同的自动化需求分析

多人协同的自动化需求分析是指通过技术工具和协作流程&#xff0c;让多个参与者&#xff08;如产品经理、开发人员、测试人员等&#xff09;在需求分析阶段高效协作&#xff0c;并借助自动化手段提升需求收集、整理、验证和管理的效率与质量。以下是其核心要点&#xff1a; 1. …

【战略合作】开封大学_阀门产业学院+智橙PLM

12月20日&#xff0c;在核电厂阀门系列团体标准启动会上&#xff0c;开封大学阀门产业学院与橙色云互联网设计有限公司达成战略合作。 以平台赋能行业&#xff0c;让阀门教育“有的放矢” 会议与会者包括&#xff1a; 开封大学副校长 李治 中国国际科技促进会标准化工作委员…

element-ui日期时间选择器禁止输入日期

需求解释&#xff1a;时间日期选择器&#xff0c;下方日期有禁止选择范围&#xff0c;所以上面的日期输入框要求禁止输入&#xff0c;但时间输入框可以输入&#xff0c;也就是下图效果&#xff0c;其中日历中的禁止选择可以通过【picker-options】这个属性实现&#xff0c;此属…

计算机网络:深入分析三层交换机硬件转发表生成过程

三层交换机的MAC地址转发表生成过程结合了二层交换和三层路由的特性,具体可分为以下步骤: 一、二层MAC地址表学习(基础转发层) 初始状态 交换机启动时,MAC地址表为空,处于学习阶段。 数据帧接收与源MAC学习 当主机A发送数据帧到主机B时,交换机会检查数据帧的源MAC地址。…

【开源解析】基于Python的智能文件备份工具开发实战:从定时备份到托盘监控

&#x1f4c1;【开源解析】基于Python的智能文件备份工具开发实战&#xff1a;从定时备份到托盘监控 &#x1f308; 个人主页&#xff1a;创客白泽 - CSDN博客 &#x1f525; 系列专栏&#xff1a;&#x1f40d;《Python开源项目实战》 &#x1f4a1; 热爱不止于代码&#xff0…

Windows 环境变量完全指南:系统变量、用户变量与 PATH 详解

1. 什么是环境变量&#xff1f; 环境变量&#xff08;Environment Variables&#xff09;是 Windows 系统中用于存储配置信息的键值对&#xff0c;它们可以影响系统和应用程序的行为。例如&#xff1a; PATH&#xff1a;告诉系统在哪里查找可执行文件&#xff08;如 python、j…