KaiwuDBKaiwuDB

KWDB 创作者计划 | 容器赋能KaiwuDB:探索浪潮数据库KWDB2.2.0 实战指南

2025-04-27

文章链接:【KWDB创作者计划】容器赋能KaiwuDB:探索浪潮数据库KWDB2.2.0 实战指南_ITPUB博客

作者:ShunWah

在运维管理领域,我拥有多年深厚的专业积累,兼具坚实的理论基础与广泛的实践经验。精通运维自动化流程,对于OceanBase、MySQL等多种数据库的部署与运维,具备从初始部署到后期维护的全链条管理能力。拥有OceanBase的OBCA和OBCP认证、OpenGauss社区认证结业证书,以及崖山DBCA、亚信AntDBCA、翰高-HDCA、GBase 8a | 8c | 8s、Galaxybase的GBCA、Neo4j的Graph Data Science Certification、NebulaGraph的NGCI & NGCP、东方通TongTech TCPE等多项权威认证。

在OceanBase & 墨天轮的技术征文大赛中,多次荣获一、二、三等奖。同时,在OpenGauss第五届、第六届、第七届技术征文大赛,TiDB社区专栏征文大赛,金仓数据库有奖征文活动,以及YashanDB「产品体验官」征文等活动中,我也屡获殊荣。此外,我还活跃于墨天轮、CSDN、ITPUB等技术平台,经常发布原创技术文章,并多次被首页推荐。

KWDB 创作者计划 | 容器赋能KaiwuDB:探索浪潮数据库KWDB2.2.0 实战指南(图1)


引言


浪潮数据库KWDB2.2.0:探索分布式多模数据库的创新之旅

在这个春暖花开的季节里,我有幸踏入了KWDB开源社区的怀抱,与一群有热情、有理想的开发者们共同探索分布式多模数据库的创新之道。作为开源数据库社区的新人,我深感荣幸能够试用 KWDB2.2.0数据库,并通过这次试用与KWDB结缘,共同构建技术与创新的桥梁。

初识KWDB:开源的力量

KWDB 是由开放原子开源基金会孵化及运营的开源项目,是一款面向 AIoT 场景的分布式多模数据库产品,支持在同一实例同时建立时序库和关系库并融合处理多模数据,具备千万级设备接入、百万级数据秒级写入、亿级数据秒级读取等时序数据高效处理能力,具有稳定安全、高可用、易运维等特点。

KWDB 为不同角色开发者提供以下支持(包括但不限于):

为开发者提供通用连接接口,具备高速写入、极速查询、SQL 支持、随需压缩、数据生命周期管理、集群部署等特性,与第三方工具无缝集成,降低开发及学习难度,提升开发使用效率。
为运维管理人员提供快速安装部署、升级、迁移、监控等能力,降低数据库运维管理。


部署准备

为了更深入地了解KWDB2.2.0,我迫不及待地从 Gitee 上查看了最新版的源码,并通过 docker 获取kwdb/kwdb:2.2.0 镜像开始了我的探索之旅。在用 docker 安装与配置 kwdb:2.2.0 的过程中,我深刻体会到了KWDB的易用性。通过简单的几步操作,我就能够成功部署一个KWDB实例,并开始进行各种数据库操作。

CPU 和内存 单节点配置建议不低于 4 核 8G。对于数据量大、复杂的工作负载、高并发和高性能场景,建议配置更高的 CPU 和内存资源以确保系统的高效运行。

本文以 x86 架构的 CentOS Linux 7.4 镜像作为环境介绍如何使用 obd 图形化界面部署 OceanBase 数据库。

[root@worker3 ob4-3]# cat /etc/redhat-release 
CentOS Linux release 7.4.1708 (Core) 
[root@worker3 ob4-3]# free -h
              total        used        free      shared  buff/cache   available
Mem:            27G        676M         18G         41M        8.6G         26G
Swap:          8.0G          0B        8.0G
[root@worker3 ob4-3]#

KWDB 创作者计划 | 容器赋能KaiwuDB:探索浪潮数据库KWDB2.2.0 实战指南(图2)


一、单节点容器部署

本文介绍如何使用 YAML 文件或 KaiwuDB 容器安装包在单个节点上部署 KaiwuDB。使用 YAML(.yml)文件进行部署时,仅支持非安全模式,登录 KaiwuDB 数据库时需使用非安全连接模式。容器安装包部署支持安全模式和非安全模式。

如果目标机器尚未安装 Docker,请提前安装适合您操作系统的 Docker 容器。更多信息,参见 Docker 安装文档。

1.准备容器环境

1.1 检查docker
[root@worker3 ~]# docker version
Client: Docker Engine - Community
 Version:           19.03.8
 API version:       1.40
 Go version:        go1.12.17
 Git commit:        afacb8b7f0
 Built:             Wed Mar 11 01:22:56 2020
 OS/Arch:           linux/amd64
 Experimental:      false
Server: Docker Engine - Community
 Engine:
  Version:          19.03.8
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.12.17
  Git commit:       afacb8b7f0
  Built:            Wed Mar 11 01:30:32 2020
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          v1.2.13
  GitCommit:        7ad184331fa3e55e52b890ea95e65ba581ae3429
 runc:
  Version:          1.0.0-rc10
  GitCommit:        dc9208a3303feef5b3839f4323d9beb36df0a9dd
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683
[root@worker3 ~]#

KWDB 创作者计划 | 容器赋能KaiwuDB:探索浪潮数据库KWDB2.2.0 实战指南(图3)

如果目标机器无法联网且未安装 Docker-compose,请采用二进制包安装 Docker-compose 。更多信息,参见 Docker-compose 安装文档和安装后说明。

1.2 检查docker-compose
[root@worker3 soft]# docker-compose version
docker-compose version 1.28.6, build 5db8d86f
docker-py version: 4.4.4
CPython version: 3.7.10
OpenSSL version: OpenSSL 1.1.0l  10 Sep 2019
[root@worker3 soft]#

KWDB 创作者计划 | 容器赋能KaiwuDB:探索浪潮数据库KWDB2.2.0 实战指南(图4)

2. 获取容器镜像

KWDB 支持通过以下方式获取容器镜像:
Docker 命令:执行 docker pull kwdb/kwdb:2.2.0 获取镜像。

2.1 docker pull 下载失败
[root@worker3 soft]# docker pull kwdb/kwdb:2.2.0
Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

KWDB 创作者计划 | 容器赋能KaiwuDB:探索浪潮数据库KWDB2.2.0 实战指南(图5)

2.2 配置 Docker/DockerHub 国内镜像源/加速
[root@worker3 soft]# vim /etc/docker/daemon.json
[root@worker3 soft]# 
{
    "registry-mirrors": [
        "https://docker.1ms.run",
        "https://docker.xuanyuan.me"
    ]
}
2.3 重启docker
[root@worker3 soft]# systemctl daemon-reload
[root@worker3 soft]# systemctl restart docker
[root@worker3 soft]#

KWDB 创作者计划 | 容器赋能KaiwuDB:探索浪潮数据库KWDB2.2.0 实战指南(图6)

2.4 docker pull 再次拉取kwDB镜像
[root@worker3 soft]# docker pull kwdb/kwdb:2.2.0
2.2.0: Pulling from kwdb/kwdb
9b857f539cb1: Pull complete 
24fd278016bd: Pull complete 
e915a1b38e6a: Pull complete 
Digest: sha256:9dda946922a69557e20be9f1d99c504c467fba6351bb8af0a34fe42711cde73f
Status: Downloaded newer image for kwdb/kwdb:2.2.0
docker.io/kwdb/kwdb:2.2.0
[root@worker3 soft]#

KWDB 创作者计划 | 容器赋能KaiwuDB:探索浪潮数据库KWDB2.2.0 实战指南(图7)

3. 拉取成功后,查看镜像

[root@worker3 soft]# docker images
REPOSITORY                                                 TAG                 IMAGE ID            CREATED             SIZE
kwdb/kwdb                                                  2.2.0               54712e6a5f83        11 days ago         259MB
cym1102/nginxwebui                                         latest              84ed89f8ea1b        8 months ago        163MB
oceanbase/oceanbase-ce                                     latest              21865b1446f4        11 months ago       662MB
mysql                                                      8.0.36              f5f171121fa3        12 months ago       603MB
registry.cn-hangzhou.aliyuncs.com/cym19871102/nginxwebui   latest              5b57dac52b1a        22 months ago       146MB
oceanbase/oceanbase-ce                                     <none>              13aacde96f5b        2 years ago         505MB
jc21/nginx-proxy-manager                                   latest              1d0ce4696d69        3 years ago         868MB
redis                                                      latest              7614ae9453d1        3 years ago         113MB
portainer/portainer-ce                                     latest              0df02179156a        3 years ago         273MB
mongo                                                      5.0.2               0bcbeb494bed        3 years ago         684MB
progrium/consul                                            latest              09ea64205e55        9 years ago         69.4MB
[root@worker3 soft]#

KWDB 创作者计划 | 容器赋能KaiwuDB:探索浪潮数据库KWDB2.2.0 实战指南(图8)

4. docker-compose 部署 KWDB

部署 KWDB 时,系统将对配置文件、运行环境、硬件配置和软件依赖进行检查。如果相应硬件未能满足要求,系统将继续安装,并提示硬件规格不满足要求。如果软件依赖未能满足要求,系统将中止安装,并提供相应的提示信息。

在部署过程中,系统会自动生成相关日志。如果部署时出现错误,用户可以通过查看终端输出或 KWDB 安装目录中 log 目录里的日志文件,获取详细的错误信息。

4.1 使用 YAML 文件部署 KWDB

创建 docker-compose.yml 配置文件。

[root@worker3 data]# mkdir kaiwudb[root@worker3 data]# cd kaiwudb/[root@worker3 kaiwudb]# vim docker-compose.yml[root@worker3 kaiwudb]#

KWDB 创作者计划 | 容器赋能KaiwuDB:探索浪潮数据库KWDB2.2.0 实战指南(图9)

image 参数的取值必须是导入 KaiwuDB.tar 文件后获取的镜像名或拉取的镜像名。

配置文件示例:

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

KWDB 创作者计划 | 容器赋能KaiwuDB:探索浪潮数据库KWDB2.2.0 实战指南(图10)

4.2 启动KWDB

初次docker-compose up带日志启动

[root@worker3 kaiwudb]# docker-compose up 
Creating network "kaiwudb_default" with the default driver
Creating kaiwudb-experience ... done
Attaching to kaiwudb-experience
kaiwudb-experience   | *
kaiwudb-experience   | * WARNING: RUNNING IN INSECURE MODE!
kaiwudb-experience   | * 
kaiwudb-experience   | * - Your cluster is open for any client that can access 0.0.0.0.
kaiwudb-experience   | * - Any user, even root, can log in without providing a password.
kaiwudb-experience   | * - Any user, connecting as root, can read or write any data in your cluster.
kaiwudb-experience   | * - There is no network encryption nor authentication, and thus no confidentiality.
kaiwudb-experience   | * 
kaiwudb-experience   | * Check out how to secure your cluster on KWDB website
kaiwudb-experience   | *
kaiwudb-experience   | *
kaiwudb-experience   | * INFO: Replication was disabled for this cluster.
kaiwudb-experience   | * When/if adding nodes in the future, update zone configurations to increase the replication factor.
kaiwudb-experience   | *
kaiwudb-experience   | KWDB node starting at 2025-04-11 08:25:30.345632043 +0000 UTC (took 0.3s)
kaiwudb-experience   | build:                2.2.0 @ 2025/03/31 07:20:02 (go1.16.15)
kaiwudb-experience   | sql:                 postgresql://root@127.0.0.1:26257?sslmode=disable
kaiwudb-experience   | RPC client flags:    /kaiwudb/bin/kwbase <client cmd> --host=127.0.0.1:26257 --insecure
kaiwudb-experience   | logs:                /kaiwudb/deploy/kaiwudb/logs
kaiwudb-experience   | temp dir:            /kaiwudb/deploy/kaiwudb/kwbase-temp064723318
kaiwudb-experience   | external I/O path:   /kaiwudb/deploy/kaiwudb/extern
kaiwudb-experience   | store[0]:            path=/kaiwudb/deploy/kaiwudb
kaiwudb-experience   | storage engine:      rocksdb
kaiwudb-experience   | status:              initialized new cluster
kaiwudb-experience   | clusterID:           b565096e-c243-4399-8aa0-6ec3ea6b77a5
kaiwudb-experience   | nodeID:              1

KWDB 创作者计划 | 容器赋能KaiwuDB:探索浪潮数据库KWDB2.2.0 实战指南(图11)

运行以下命令,快速启动 KWDB 不带日志启动。
docker-compose up -d

4.3 查看容器
[root@worker3 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                                                            NAMES
40305e626095        kwdb/kwdb:2.2.0     "/bin/bash -c '/kaiw…"   3 minutes ago       Up 3 minutes        0.0.0.0:8080->8080/tcp, 0.0.0.0:26257->26257/tcp                                 kaiwudb-experience
596eb2a88f53        progrium/consul     "/bin/start -server …"   21 months ago       Up 14 minutes       53/tcp, 53/udp, 8300-8302/tcp, 8400/tcp, 8301-8302/udp, 0.0.0.0:8500->8500/tcp   consul
[root@worker3 ~]#

KWDB 创作者计划 | 容器赋能KaiwuDB:探索浪潮数据库KWDB2.2.0 实战指南(图12)

4.4 进入容器
[root@worker3 ~]# docker exec -it kaiwudb-experience bash
root@kaiwudb-experience:/kaiwudb/bin# ls
df.sh  err_inject.sh  kwbase  query_kwbase_status.sh  query_status.sh  setup_cert_file.sh  utils.sh
root@kaiwudb-experience:/kaiwudb/bin#

KWDB 创作者计划 | 容器赋能KaiwuDB:探索浪潮数据库KWDB2.2.0 实战指南(图13)



二、使用 kwbase CLI 工具连接 KaiwuDB

kwbase 是 KaiwuDB 提供的内置命令行工具。用户可以通过 kwbase 以安全模式(适用于生产环境)或非安全模式(适用于测试)连接 KaiwuDB,进行数据库操作和维护。

1. root 用户连接 KaiwuDB。

root@kaiwudb-experience:/kaiwudb/bin# ./kwbase sql --insecure --host=127.0.0.1
#
# 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:02, go1.16.15, gcc 11.4.0) (same version as client)
# Cluster ID: b565096e-c243-4399-8aa0-6ec3ea6b77a5
#
# Enter \? for a brief introduction.
#
root@127.0.0.1:26257/defaultdb>

KWDB 创作者计划 | 容器赋能KaiwuDB:探索浪潮数据库KWDB2.2.0 实战指南(图14)

2. 创建普通用户。

root@127.0.0.1:26257/defaultdb> CREATE USER user1;
CREATE USER
Time: 9.914786ms
root@127.0.0.1:26257/defaultdb>

KWDB 创作者计划 | 容器赋能KaiwuDB:探索浪潮数据库KWDB2.2.0 实战指南(图15)

root 用户退出登录。

3. 新用户连接 KaiwuDB。

./kwbase sql --insecure --host=127.0.0.1 -u user1

root@127.0.0.1:26257/defaultdb> exit
root@kaiwudb-experience:/kaiwudb/bin# ./kwbase sql --insecure --host=127.0.0.1 -u user1
#
# 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:02, go1.16.15, gcc 11.4.0) (same version as client)
# Cluster ID: b565096e-c243-4399-8aa0-6ec3ea6b77a5
#
# Enter \? for a brief introduction.
#
user1@127.0.0.1:26257/defaultdb>

KWDB 创作者计划 | 容器赋能KaiwuDB:探索浪潮数据库KWDB2.2.0 实战指南(图16)


三、时序数据库管理

在实操过程中,我尝试了各种数据库操作命令,包括创建数据库、表、索引,插入数据、查询数据等。其中,让我印象深刻的是KWDB对时序数据的处理能力。通过以下几个命令,我能够轻松地实现时序数据的存储与查询:

1. 创建数据库

root@127.0.0.1:26257/defaultdb> CREATE DATABASE my_tsdb;
CREATE DATABASE
Time: 8.038233ms
root@127.0.0.1:26257/defaultdb>

KWDB 创作者计划 | 容器赋能KaiwuDB:探索浪潮数据库KWDB2.2.0 实战指南(图17)

2. 查看数据库

root@127.0.0.1:26257/defaultdb> SHOW DATABASES;
  database_name | engine_type
----------------+--------------
  defaultdb     | RELATIONAL
  my_tsdb       | RELATIONAL
  postgres      | RELATIONAL
  system        | RELATIONAL
(4 rows)
Time: 2.146362ms
root@127.0.0.1:26257/defaultdb>

KWDB 创作者计划 | 容器赋能KaiwuDB:探索浪潮数据库KWDB2.2.0 实战指南(图18)

3. 切换到目标数据库

root@127.0.0.1:26257/defaultdb> USE my_tsdb;
SET
Time: 635.856µs
root@127.0.0.1:26257/my_tsdb>

KWDB 创作者计划 | 容器赋能KaiwuDB:探索浪潮数据库KWDB2.2.0 实战指南(图19)

4. 创建普通表

root@127.0.0.1:26257/my_tsdb> CREATE TABLE my_ts_table (
    time TIMESTAMPTZ NOT NULL,
    value DOUBLE PRECISION NOT NULL
);
                           ->     time TIMESTAMPTZ NOT NULL,
                           ->     value DOUBLE PRECISION NOT NULL
                           -> );
CREATE TABLE
Time: 6.631034ms
root@127.0.0.1:26257/my_tsdb>

KWDB 创作者计划 | 容器赋能KaiwuDB:探索浪潮数据库KWDB2.2.0 实战指南(图20)

5. 为时间列创建索引

root@127.0.0.1:26257/my_tsdb> CREATE INDEX idx_my_ts_table_time ON my_ts_table (time);
CREATE INDEX
Time: 181.039591ms
root@127.0.0.1:26257/my_tsdb>

KWDB 创作者计划 | 容器赋能KaiwuDB:探索浪潮数据库KWDB2.2.0 实战指南(图21)

6. 插入数据

INSERT INTO my_ts_table (time, value) VALUES
(‘2025-04-01 00:00:00+00’, 10.5),
(‘2025-04-01 01:00:00+00’, 11.2),
(‘2025-04-01 02:00:00+00’, 12.8),
(‘2025-04-02 00:00:00+00’, 13.4),
(‘2025-04-02 01:00:00+00’, 14.1);

root@127.0.0.1:26257/my_tsdb> INSERT INTO my_ts_table (time, value) VALUES
('2025-04-02 00:00:00+00', 13.4),
('2025-04-02 01:00:00+00', 14.1);
                           -> ('2025-04-01 00:00:00+00', 10.5),
                           -> ('2025-04-01 01:00:00+00', 11.2),
                           -> ('2025-04-01 02:00:00+00', 12.8),
                           -> ('2025-04-02 00:00:00+00', 13.4),
                           -> ('2025-04-02 01:00:00+00', 14.1);
INSERT 5
Time: 3.357929ms
root@127.0.0.1:26257/my_tsdb>

KWDB 创作者计划 | 容器赋能KaiwuDB:探索浪潮数据库KWDB2.2.0 实战指南(图22)

7. 查询特定时间范围的数据

SELECT * FROM my_ts_table
WHERE time >= ‘2025-04-01 00:00:00+00’ AND time < ‘2025-04-02 00:00:00+00’
ORDER BY time;

root@127.0.0.1:26257/my_tsdb> 
root@127.0.0.1:26257/my_tsdb> SELECT * FROM my_ts_table
ORDER BY time;
                           -> WHERE time >= '2025-04-01 00:00:00+00' AND time < '2025-04-02 00:00:00+00'
                           -> ORDER BY time;
            time            | value
----------------------------+--------
  2025-04-01 00:00:00+00:00 |  10.5
  2025-04-01 01:00:00+00:00 |  11.2
  2025-04-01 02:00:00+00:00 |  12.8
(3 rows)
Time: 2.196569ms
root@127.0.0.1:26257/my_tsdb>

KWDB 创作者计划 | 容器赋能KaiwuDB:探索浪潮数据库KWDB2.2.0 实战指南(图23)

8. 查询时序数据

– 查询所有数据
SELECT * FROM my_ts_table ORDER BY time;

root@127.0.0.1:26257/my_tsdb> SELECT * FROM my_ts_table ORDER BY time;
            time            | value
----------------------------+--------
  2025-04-01 00:00:00+00:00 |  10.5
  2025-04-01 01:00:00+00:00 |  11.2
  2025-04-01 02:00:00+00:00 |  12.8
  2025-04-02 00:00:00+00:00 |  13.4
  2025-04-02 01:00:00+00:00 |  14.1
(5 rows)
Time: 1.21612ms
root@127.0.0.1:26257/my_tsdb>

KWDB 创作者计划 | 容器赋能KaiwuDB:探索浪潮数据库KWDB2.2.0 实战指南(图24)

9. 查询特定时间范围的数据(例如 2025-04-01 的数据)

root@127.0.0.1:26257/my_tsdb> SELECT * FROM my_ts_table
ORDER BY time;
                           -> WHERE time >= '2025-04-01 00:00:00+00' AND time < '2025-04-02 00:00:00+00'
                           -> ORDER BY time;
            time            | value
----------------------------+--------
  2025-04-01 00:00:00+00:00 |  10.5
  2025-04-01 01:00:00+00:00 |  11.2
  2025-04-01 02:00:00+00:00 |  12.8
(3 rows)
Time: 2.196569ms

KWDB 创作者计划 | 容器赋能KaiwuDB:探索浪潮数据库KWDB2.2.0 实战指南(图25)



四、 关系型数据管理

KWDB2.2.0作为分布式多模数据库,支持多种数据模型。为体验这一特性,我创建了一个包含关系型数据的数据库实例。

1. 创建数据库

以下示例创建一个名为  db1 的关系数据库:

root@127.0.0.1:26257/my_tsdb> CREATE DATABASE db1;CREATE DATABASETime: 4.982239ms
root@127.0.0.1:26257/my_tsdb>

KWDB 创作者计划 | 容器赋能KaiwuDB:探索浪潮数据库KWDB2.2.0 实战指南(图26)

2. 查看数据库

时序数据库和关系数据库的  engine_type 分别为  TIME SERIES 和  RELATIONAL。使用以下命令查看所有数据库:

root@127.0.0.1:26257/my_tsdb> SHOW DATABASES;
  database_name | engine_type----------------+--------------
  db1           | RELATIONAL
  defaultdb     | RELATIONAL
  my_tsdb       | RELATIONAL
  postgres      | RELATIONAL
  system        | RELATIONAL
(5 rows)
Time: 2.59214ms
root@127.0.0.1:26257/my_tsdb>

KWDB 创作者计划 | 容器赋能KaiwuDB:探索浪潮数据库KWDB2.2.0 实战指南(图27)

3. 查看数据库的建库语句

SHOW CREATE DATABASE 语句用于查看创建数据库的 SQL 语句。目前,关系数据库只支持查看创建数据库时使用的数据库名称。

3.1 创建数据库  reldb1
root@127.0.0.1:26257/my_tsdb> CREATE DATABASE reldb1 WITH ENCODING = 'UTF8';CREATE DATABASETime: 5.796565ms
root@127.0.0.1:26257/my_tsdb>

KWDB 创作者计划 | 容器赋能KaiwuDB:探索浪潮数据库KWDB2.2.0 实战指南(图28)

3.2 查看已创建的  reldb1 数据库:
  root@127.0.0.1:26257/my_tsdb> SHOW CREATE DATABASE reldb1;
  database_name |    create_statement----------------+-------------------------
  reldb1        | CREATE DATABASE reldb1
(1 row)Time: 2.150319ms
root@127.0.0.1:26257/my_tsdb>

KWDB 创作者计划 | 容器赋能KaiwuDB:探索浪潮数据库KWDB2.2.0 实战指南(图29)

4. 切换数据库

以下示例将  db1 数据库设置为当前数据库:

root@127.0.0.1:26257/my_tsdb> USE db1;SETTime: 1.272966ms
root@127.0.0.1:26257/db1>

KWDB 创作者计划 | 容器赋能KaiwuDB:探索浪潮数据库KWDB2.2.0 实战指南(图30)

5.修改数据库

KaiwuDB 支持修改数据库名称以及修改数据库区域配置。
修改数据库名称:
以下示例将  
reldb1 数据库重命名为  relationaldb

5.1 查看所有数据库:
root@127.0.0.1:26257/db1> SHOW DATABASES;
  database_name | engine_type----------------+--------------
  db1           | RELATIONAL
  defaultdb     | RELATIONAL
  my_tsdb       | RELATIONAL
  postgres      | RELATIONAL
  reldb1        | RELATIONAL
  system        | RELATIONAL
(6 rows)
Time: 2.37597ms
root@127.0.0.1:26257/db1>

KWDB 创作者计划 | 容器赋能KaiwuDB:探索浪潮数据库KWDB2.2.0 实战指南(图31)

5.2 重命名数据库:
root@127.0.0.1:26257/db1> ALTER DATABASE reldb1 RENAME TO relationaldb;RENAME DATABASETime: 5.403811ms
root@127.0.0.1:26257/db1>

KWDB 创作者计划 | 容器赋能KaiwuDB:探索浪潮数据库KWDB2.2.0 实战指南(图32)

5.3 再次查看所有数据库:
root@127.0.0.1:26257/db1> SHOW DATABASES;
  database_name | engine_type----------------+--------------
  db1           | RELATIONAL
  defaultdb     | RELATIONAL
  my_tsdb       | RELATIONAL
  postgres      | RELATIONAL
  relationaldb  | RELATIONAL
  system        | RELATIONAL
(6 rows)
Time: 2.712377ms
root@127.0.0.1:26257/db1>

KWDB 创作者计划 | 容器赋能KaiwuDB:探索浪潮数据库KWDB2.2.0 实战指南(图33)


6.修改数据库区域配置

以下示例将  my_tsdb 数据库副本数改为 5,并将数据在垃圾回收前保留的时间改为 100000 秒:

6.1 修改数据库区域配置:
root@127.0.0.1:26257/db1> ALTER DATABASE my_tsdb CONFIGURE ZONE USING num_replicas = 5, gc.ttlseconds = 100000;
CONFIGURE ZONE 1
Time: 7.818099ms
root@127.0.0.1:26257/db1>

KWDB 创作者计划 | 容器赋能KaiwuDB:探索浪潮数据库KWDB2.2.0 实战指南(图34)

6.2 查看数据库区域配置:
root@127.0.0.1:26257/db1> SHOW ZONE CONFIGURATION FOR DATABASE my_tsdb;
       target      |               raw_config_sql-------------------+----------------------------------------------
  DATABASE my_tsdb | ALTER DATABASE my_tsdb CONFIGURE ZONE USING
                   |     range_min_bytes = 134217728,
                   |     range_max_bytes = 536870912,
                   |     gc.ttlseconds = 100000,
                   |     num_replicas = 5,
                   |     constraints = '[]',
                   |     lease_preferences = '[]'(1 row)Time: 1.896908ms
root@127.0.0.1:26257/db1>

KWDB 创作者计划 | 容器赋能KaiwuDB:探索浪潮数据库KWDB2.2.0 实战指南(图35)

7.删除数据库

DROP DATABASE 语句用于从 KaiwuDB 中删除数据库及其所有对象。删除成功后,所有用户针对目标数据库及其下全部模式及对象的所有权限均被删除。

示例:

7.1 查看  relationaldb 数据库中的关系表:
root@127.0.0.1:26257/db1> SHOW TABLES FROM my_tsdb;
  table_name  | table_type--------------+-------------
  my_ts_table | BASE TABLE
  users       | BASE TABLE
(2 rows)
Time: 4.263235ms
root@127.0.0.1:26257/db1>

KWDB 创作者计划 | 容器赋能KaiwuDB:探索浪潮数据库KWDB2.2.0 实战指南(图36)

7.2 删除  my_tsdb 数据库及其级联对象:
root@127.0.0.1:26257/db1> DROP DATABASE my_tsdb CASCADE;DROP DATABASETime: 63.143052ms
root@127.0.0.1:26257/db1>

KWDB 创作者计划 | 容器赋能KaiwuDB:探索浪潮数据库KWDB2.2.0 实战指南(图37)

7.3 再次尝试查看  my_tsdb 数据库中的关系表:
root@127.0.0.1:26257/db1> SHOW TABLES FROM my_tsdb;
ERROR: target database or schema does not exist
SQLSTATE: 3F000
root@127.0.0.1:26257/db1>

KWDB 创作者计划 | 容器赋能KaiwuDB:探索浪潮数据库KWDB2.2.0 实战指南(图38)

输出错误信息:

ERROR: target database or schema does not exist

8. 使用  RESTRICT 关键字阻止删除非空数据库:

以下示例使用  RESTRICT 关键字阻止删除非空数据库  db1

8.1 创建测试表
root@127.0.0.1:26257/db1> CREATE TABLE test_table (     id INT PRIMARY KEY,     name TEXT );
CREATE TABLE
Time: 6.237899ms
root@127.0.0.1:26257/db1>

KWDB 创作者计划 | 容器赋能KaiwuDB:探索浪潮数据库KWDB2.2.0 实战指南(图39)

8.2 插入测试数据
root@127.0.0.1:26257/db1> INSERT INTO test_table (id, name) VALUES (1, 'test');
INSERT 1
Time: 7.91633ms
root@127.0.0.1:26257/db1>

KWDB 创作者计划 | 容器赋能KaiwuDB:探索浪潮数据库KWDB2.2.0 实战指南(图40)

8.3 查看  db1 数据库中的关系表:
root@127.0.0.1:26257/db1> SHOW TABLES FROM db1;
  table_name | table_type-------------+-------------
  test_table | BASE TABLE
(1 row)
Time: 4.053667ms
root@127.0.0.1:26257/db1>

KWDB 创作者计划 | 容器赋能KaiwuDB:探索浪潮数据库KWDB2.2.0 实战指南(图41)

8.4 尝试删除  db1 数据库:
root@127.0.0.1:26257/db1> DROP DATABASE db1 RESTRICT;
ERROR: database "db1" is not empty and RESTRICT was specified
SQLSTATE: 2BP01
root@127.0.0.1:26257/db1>

输出错误信息:

ERROR:  database "db1" is not empty and RESTRICT was specified

KWDB 创作者计划 | 容器赋能KaiwuDB:探索浪潮数据库KWDB2.2.0 实战指南(图42)


总结

本文详细介绍了如何在 KaiwuDB 中管理多模数据库,包括创建、查看、切换、修改和删除数据库的操作。通过这些功能,用户可以高效地管理数据库资源并满足不同场景下的需求。需要注意的是,在操作数据库时应谨慎处理,尤其是在删除非空数据库时,避免误删导致数据丢失。建议结合实际业务需求,合理规划数据库的设计与维护工作。



—— 仅供参考。如果有更多具体的问题或需要进一步的帮助,请随时告知。


体验全新的分布式多模数据库解决方案

企业版 社区版

KaiwuDB 是浪潮控股的数据库企业,面向工业物联网、数字能源、车联网、智慧产业等行业领域,提供稳定安全、高性能、易运维的创新数据软件与服务。

关注官方微信

友情链接:浪潮  

© 上海沄熹科技有限公司 Shanghai Yunxi Technology Co., Ltd.    沪ICP备2023002175号-1    网站服务协议   |   隐私政策
400-624-5688-7
服务与支持
marketing@kaiwudb.org.cn