作者:江湖有缘
原文链接:https://blog.csdn.net/jks212454/article/details/147656934
前言
随着 AIoT 技术的快速发展,对数据库的多模数据处理能力和智能化水平提出了更高要求。KaiwuDB 作为一款面向 AIoT 场景的国产分布式数据库,凭借其高效的时序数据处理能力与多模融合特性,逐渐成为行业关注的焦点。本文将通过 Docker 容器化方式,带大家快速部署并体验 KaiwuDB 数据库的强大功能与便捷管理。
一、KWDB 介绍
1.1 KWDB 简介
KWDB 是一款面向 AIoT 场景的分布式、多模融合数据库产品。 支持在同一个实例中建立时序库和关系库,并统一处理多种类型的数据,具备对海量时序数据的高效读写与分析能力。 产品具备高可用、安全稳定、易运维等特性,广泛应用于工业物联网、数字能源、车联网、智慧矿山等多个行业领域,为用户提供一站式数据存储、管理与分析的基础平台。
1.2 主要特点
高性能处理能力:支持海量时序数据高速读写,提供插值查询、数学函数等丰富的时序特色功能,提升应用效率。
低运管成本:统一存储与管理多模数据,一套系统满足跨业务、跨部门数据融合需求,降低企业 IT 与运维投入。
低存储成本:支持 5-30 倍数据压缩比,结合数据生命周期管理策略,灵活控制数据保留时间,显著节省存储资源。
高安全性:提供数据库审计与加密机制,保障数据在复杂业务场景下的安全稳定运行。
易用性强:提供标准 SQL 接口、高速写入、极速查询、集群部署等能力,与第三方工具无缝集成,开发运维更便捷。
1.3 典型应用场景
二、环境介绍
2.1 部署环境要求
2.2 本地环境规划
本次实践为个人测试环境,操作系统版本为 Ubuntu 22.04.1。
2.3 部署模式
三、部署 Docker 环境
3.1 安装相关工具
安装 docker 之前,我们先安装 HTTPS 传输工具及必要组件。
apt install -y apt-transport-https ca-certificates curl gnupg lsb-release software-properties-common
复制代码
3.2 配置 Docker 软件源
mkdir -p /etc/apt/keyringscurl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker-archive-keyring.gpg
复制代码
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 更新软件源
root@jeven01:~# apt updateHit:1 https://mirrors.aliyun.com/ubuntu jammy InReleaseHit:2 https://mirrors.aliyun.com/ubuntu jammy-security InReleaseHit:3 https://mirrors.aliyun.com/ubuntu jammy-updates InReleaseHit:4 https://mirrors.aliyun.com/ubuntu jammy-backports InReleaseHit:5 https://mirrors.aliyun.com/docker-ce/linux/ubuntu jammy InReleaseReading package lists... DoneBuilding dependency tree... DoneReading state information... Done194 packages can be upgraded. Run 'apt list --upgradable' to see them.
复制代码
3.4 安装 Docker
apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
复制代码
3.5 配置镜像加速
sudo tee /etc/docker/daemon.json > /dev/null <<EOF{ "registry-mirrors": ["https://80c84f5330e14908928ca78944e61dc4.mirror.swr.myhuaweicloud.com"]}EOF
复制代码
执行以下命令,配置 Docker 开机自启。
systemctl daemon-reloadsystemctl restart dockersystemctl enable docker
复制代码
3.6 检查 Docker 版本
检查 Docker 版本,可以看到当前安装的版本为 28.1.1。
root@jeven01:~# docker -vDocker version 28.1.1, build 4eba377
复制代码
检查 Docker compose 版本,当前安装版本为 2.35.1。
root@jeven01:~# docker compose versionDocker Compose version v2.35.1
复制代码
四、下载容器镜像
执行以下命令,拉取 KWDB 容器镜像。本次实践所使用的 KWDB 镜像为 kwdb/kwdb:2.2.0。
root@jeven01:/data/kwdb# docker pull kwdb/kwdb:2.2.02.2.0: Pulling from kwdb/kwdbDigest: sha256:9dda946922a69557e20be9f1d99c504c467fba6351bb8af0a34fe42711cde73fStatus: Image is up to date for kwdb/kwdb:2.2.0docker.io/kwdb/kwdb:2.2.0
复制代码
五、非安全部署模式(可选)
5.1 创建部署目录
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-experience hostname: kaiwudb-experience ports: - 8080:8080 - 26257:26257 ulimits: memlock: -1 volumes: - /dev:/dev networks: - default restart: on-failure ipc: shareable privileged: true environment: - LD_LIBRARY_PATH=/kaiwudb/lib tty: true working_dir: /kaiwudb/bin command: - /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
复制代码
执行 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 检查容器状态
root@jeven01:/data/kwdb# docker compose psNAME IMAGE COMMAND SERVICE CREATED STATUS PORTSkaiwudb-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,如下所示:
执行以下命令,查询刚新建的 zhangsan 用户。
我们使用刚创建的 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 psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES3fd88edd6fce 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.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;
复制代码
方法一:
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 安装环境要求
支持的操作系统
硬件环境
软件环境
7.2 安装 KaiwuDB 开发者中心
下载地址:https://gitee.com/kwdb/kwdb/releases/tag/V2.2.0
下载后解压软件包,直接双击 KaiwuDB Developer Center.exe,即可运行 KaiwuDB 开发者中心应用程序。
7.3 连接 KWDB 数据库
在创建新连接窗口中,选择 KaiwuDB 驱动,然后单击 下一步 按钮以继续。
连接设置:
连接成功,进入 KWDB 数据库,如下所示:
我们在 SQL 编辑器中输入并执行用户的查询语句后,即可查看用户列表信息。
八、KWDB 数据库体验与总结
通过本次实践,我深刻体会到 KWDB 数据库作为一款国产分布式数据库的强大能力与优秀设计。尽管是首次接触,但借助 Docker 的快速部署方式,整个安装配置过程简洁高效,即使是技术小白也能轻松上手。无论是非安全模式还是安全部署模式,KWDB 都提供了清晰的操作流程和良好的系统支持。其内置的多模数据处理能力和对 AI 能力的融合,让我看到了它在工业物联网、车联网等复杂场景中的巨大潜力。KWDB 不仅性能稳定、功能丰富,而且具备高度的可操作性和前瞻性,是一款值得深入学习与广泛应用的国产数据库产品。
评论