一、初识KaiwuDB:为什么选择它?

        在物联网与工业互联网飞速发展的今天,传统数据库面对海量时序数据处理时显得力不从心。KaiwuDB作为浪潮集团推出的分布式多模数据库,凭借以下优势吸引了我的注意:

多模融合:同时支持时序数据与关系数据

高并发处理:千万级设备接入能力

高性能写入:百万级数据秒级写入

稳定可靠:企业级安全与易运维特性

二、安装前准备:三步搞定环境

1. 硬件要求检查

        根据官方文档,单节点最低配置为4核CPU、8GB内存。我的测试环境是一台Ubuntu 22.04.5服务器,配置为8核16GB,完全满足要求。

2. 软件依赖确认

KaiwuDB对依赖包有明确要求,主要包括:

apt-get install libgflags*

使用以下命令快速检查:

3. 端口准备

确保26257(数据库服务端口)和8080(Web服务端口)未被占用:

4. 获取安装包

获取系统环境对应的 DEB 或 RPM 安装包,将安装包复制到待安装 KWDB 的目标机器上,然后解压缩安装包。

https://gitee.com/kwdb/kwdb/releases

将下载后的安装包上传服务器并解压:

三、修改配置文件及参数文件说明

1. 修改参数文件

修改deploy.cfg文件:

本次部署体验为单机部署,因此红框内的集群配置进行注释掉,然后CPU限制注释掉,便于后续测试。

2. 参数说明


•    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。
•    brpc_port:KWDB 时序引擎间的 brpc 通信端口,用于节点间通信。单节点部署时系统会自动忽略该设置。
•    data_root:数据目录,默认为 /var/lib/kaiwudb。
•    cpu:可选参数,用于指定 KWDB 服务占用当前节点服务器 CPU 资源的比例,默认无限制。取值范围为 [0,1],最大精度为小数点后两位。注意:如果部署环境为 Ubuntu 18.04 版本,部署集群后,需要将 kaiwudb.service 文件中的 CPUQuota 修改为整型值,例如,将 180.0% 修改为 180%,以确保设置生效。具体操作步骤,参见配置 CPU 资源占用率。
•    local:本地节点配置
•    node_addr:本地节点对外提供服务的 IP 地址,监听地址为 0.0.0.0,端口为 KWDB 服务端口。

四、执行单机部署安装命令

1. 安装kaiwudb

./deploy.sh install –single

2.创建安全模式证书

如需采用安全模式,执行以下步骤创建证书
mkdir -p /data/kaiwudb/certs
# 创建数据库证书颁发机构及密钥
kwbase cert create-ca --certs-dir=/data/kaiwudb/certs --ca-key=/data/kaiwudb/certs/ca.key

# 创建 root 用户或安装数据库用户的客户端证书及密钥
kwbase cert create-client root --certs-dir=/data/kaiwudb/certs --ca-key=/data/kaiwudb/certs/ca.key
kwbase cert create-client shanjia   --certs-dir=/data/kaiwudb/certs   --ca-key=/data/kaiwudb/certs/ca.key
# 创建节点服务器证书及密钥
kwbase cert create-node 127.0.0.1 localhost 0.0.0.0 --certs-dir=/data/kaiwudb/certs --ca-key=/data/kaiwudb/certs/ca.key

3.更新证书位置

五、安装完成-启动数据库及设置开机自启

1. 设置开机自启

systemctl enable kaiwudb

2. 启动kaiwudb

六、创建数据库用户

kwbase sql --host=127.0.0.1:26257 --certs-dir=/data/kaiwudb/certs

CREATE USER shanjia WITH PASSWORD 'shanjia';
GRANT admin TO shanjia WITH ADMIN OPTION;

kwbase sql --host=127.0.0.1:26257 --certs-dir=/data/kaiwudb/certs -u shanjia

1. 设置alias

alias kwsqlroot='kwbase sql --host=127.0.0.1:26257 --certs-dir=/data/kaiwudb/certs'

alias kwsqlshanjia='kwbase sql --host=127.0.0.1:26257 --certs-dir=/data/kaiwudb/certs -u shanjia'

2.验证

七、建库建表初步尝鲜使用

1.创建时序数据库及时序表,数据保留60天,每3天一个分区

CREATE TS DATABASE shanjia_ts_db RETENTIONS 60d PARTITION INTERVAL 3d;

USE shanjia_ts_db;

CREATE TABLE shanjia_test1 (
    ts TIMESTAMPTZ NOT NULL,
    temperature FLOAT8,
    humidity FLOAT8
) TAGS(
    sensor_id INT NOT NULL,
    location VARCHAR(50)
) PRIMARY TAGS(sensor_id);


2. 创建关系数据库及表

CREATE DATABASE shanjiabus;

USE shanjiabus;


CREATE TABLE users (
    id INT PRIMARY KEY,
    name VARCHAR(50),
    created_at TIMESTAMP DEFAULT NOW()
);


3. 性能初体验:写入与查询测试


3.1 批量写入测试
### 插入1000万条时序数据(模拟性能)
INSERT INTO shanjia_test1
SELECT
    NOW() - (n * INTERVAL '1 second'),
    random() * 100,
    random() * 100,
    1,
    'Room_A'
FROM generate_series(1, 10000000) AS n;

在我的测试环境中,写入速度达到17万条/秒,表现令人满意。

八、总结与体会

通过本次KaiwuDB的安装与初步体验,我有以下几点收获:

        部署简单:通过deploy.sh脚本即可完成单机部署,配置清晰

        多模特性实用:同时支持时序与关系数据,减少技术栈复杂度

        性能优异:17万条/秒的写入速度满足物联网场景需求

        生态完善:提供Web服务端口(8080)和命令行工具,管理便捷

下一步计划探索KaiwuDB的分布式集群部署、数据订阅、与Grafana集成等高级特性,进一步挖掘其在工业物联网场景的应用价值。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐