【KWDB创作者计划】_KWDB部署与使用详细版本

KWDB发展历程

介绍KWDB前,先介绍下KaiwuDB, KaiwuDB 是浪潮控股的数据库企业,该企业提供的KaiwuDB数据库是一款分布式多模数据库产品,主要面向工业物联网、数字能源、车联网、智慧产业等行业领域。

在2024年7月, KaiwuDB 2.0版本正式发布,KaiwuDB2.0的单节点支持 50 万测点/秒实时数据写入, 批量写入支持千万测点/秒, TSBS 基准写入速度达 200 万记录/秒, 数据压缩比最高可达 30 倍 。 单节点的这个速度还是很给力的, 在国际时序数据库性能基准测试排行榜 benchANT 最新一期榜单中,KaiwuDB 写入吞吐、查询吞吐、查询延迟、成本效益 4 项指标刷新榜单原纪录。
在这里插入图片描述

在2024年8月, KaiwuDB 宣布在 Gitee 开源,社区版命名为 KWDB ,9月25日宣布将社区版本捐赠至开放原子开源基金会。 在《2024 中国开源开发者报告》中,KWDB 社区获评 “ 最受开发者关注的开源组织 ”。 作为国内开源分布式多模数据库,KWDB 由开放原子开源基金会孵化,成功入选 “2024 全球新势力项目 OpenRank 排行榜 Top”,成 为 2024 年度榜上有名的中国项目, 如下。
在这里插入图片描述

该榜单的第一位 UV(全称 Universal Virtual ),该项目是由 Astral 团队基于 Rust 语言开发的下一代 Python 包管理工具,旨在替代传统工具链(如 pip、virtualenv、poetry 等),提供 一站式解决方案 。其核心目标是通过 极速性能 和 功能集成 ,解决 Python 开发中的依赖管理、环境隔离、多版本切换等痛点。Python作为人工智能时代友好语言,UV项目有着天然的使用者人群。

第二位的 Open WebUI 是一个开源、可扩展、功能丰富、用户友好的自托管Web界面,旨在完全离线运行,用于管理和操作各种本地和云端的大型语言模型(LLM)及其他人工智能功能。 Open WebUI 提供直观的图形化界面,无需深入了解复杂的命令行操作或后端技术,即可轻松与大型语言模型进行交互。大语言模型的出现, Open WebUI 项目也是时代的弄潮儿。

第十位的 KWDB就是本文主要介绍的技术产品, 一个集成了时序数据库与关系数据库的 国内开源分布式多模数据库。

KWDB简介

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

KWDB架构图

在这里插入图片描述

KWDB安装文档
KWDB 的官方文档如下, https://www.kaiwudb.com/kaiwudb_docs/#/oss_v2.2.0/

单击快速上手,可以看到安装KWDB的文档。

在这里插入图片描述

环境准备

针对硬件资源的要求如下:
在这里插入图片描述

操作系统要求如下:

KWDB 支持在以下服务器操作系统进行安装部署。
在这里插入图片描述

软件依赖要求如下:
在这里插入图片描述

端口要求如下:
在这里插入图片描述

安装过程:

准备云服务器:

按照要求,搭建KWDB本地版本,需要 4核8G以上的服务器。个人可以本地准备一个ubuntu22.04的环境,也可以通过云厂商购买一个对应的环境,我这里采用在腾讯云购买4核8G以上的服务器,记住如果是VCPU,最好选择8核。对于长期使用可以通过云厂商的代理购买,会优惠一些。个人可以按月份购买,或是按量购买,我这里选择按量购买。

进入腾讯云的控制台,选择全部云产品中的云服务器,
在这里插入图片描述

单击云服务器,进入云服务器的选择页面

在这里插入图片描述

单击立即选购,在弹出的页面,现在自定义配置
在这里插入图片描述

选择8核8G的配置,ubuntu22.04的镜像,选择带宽模式,设置安全组,登录方式,主机名后,然后购买即可。

在这里插入图片描述

然后设置安全组,添加8080和26257端口
在这里插入图片描述

查看访问KWDB服务器的公网地址
在这里插入图片描述

打开xshell或fineshell等工具,连接服务器。输入用户ubuntu和密码
在这里插入图片描述

到此,说明服务器配置完毕。下面进行KWDB的安装。

安装KWDB-云服务器版本:

KWDB2.2的下载页面如下: https://gitee.com/kwdb/kwdb/releases/tag/V2.2.0

在这里插入图片描述

下载地址: https://gitee.com/kwdb/kwdb/releases/download/V2.2.0/KWDB-2.2.0-ubuntu22.04-x86_64-debs.tar.gz

安装的参考过程如下: https://gitee.com/kwdb/kwdb

安装的参考过程如下: https://blog.itpub.net/69947868/viewspace-3081066

  1. 准备初始安装的cmake与go

更新源

sudo apt update

安装cmake

sudo apt install cmake -y

安装go

sudo snap install go --classic

2.升级libprotobuf-dev到最新版本

sudo apt install libprotobuf-dev

3.进入KWDB服务器中,下载并解压安装包

通过wget命令下载安装包

wget https://gitee.com/kwdb/kwdb/releases/download/V2.2.0/KWDB-2.2.0-ubuntu22.04-x86_64-debs.tar.gz

解压压缩包

tar zxvf KWDB-2.2.0-ubuntu22.04-x86_64-debs.tar.gz

解压后的目录如下
在这里插入图片描述

  1. 进入到kwdb与修改配置
cd kwdb_install/

kwdb_install目录如下
在这里插入图片描述

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

说明
默认情况下, deploy.cfg 配置文件中包含集群配置参数。请删除或注释 [cluster] 集群配置项。
这里只对单机进行安装,填写一下ip地址即可、将node_addr中的127.0.0.1更换成你的服务器IP地址

sudo vi deploy.cfg

编辑如下:注意[cluster]也需要用#注释掉
在这里插入图片描述

5.修改~/.bashrc 与 /etc/profile 禁用Go模块功能,并生效设置。

个人用户设置:修改 ~/.bashrc 文件

sudo vi ~/.bashrc

添加

export GO111MODULE=off

立即生效

source ~/.bashrc

修改系统设置 /etc/profile 文件

sudo vi /etc/profile

添加

export GO111MODULE=off

立即生效

source ~/.bashrc

6.安装kwdb·要输入密码

./deploy.sh install --single

我的密码为123456
在这里插入图片描述

  1. 重新加载系统服务的配置文件
systemctl daemon-reload

输出如下:

8.启动kwdb

systemctl start kaiwudb.service

输出如下:
在这里插入图片描述

查看状态:

systemctl status kaiwudb.service

输出如下
在这里插入图片描述

9.登录到命令行的kwdb

执行 add_user.sh 脚本创建数据库用户。如果跳过该步骤,系统将默认使用 root 用户,且无需密码访问数据库。

sudo /usr/local/kaiwudb/bin/kwbase sql --host=114.132.214.246:26257 --certs-dir=/etc/kaiwudb/certs

输出如下:
在这里插入图片描述

给kwdb创建用户
在这里插入图片描述

执行 add_user.sh 脚本创建数据库用户

./add_user.sh

输出如下:
在这里插入图片描述

测试使用:

创建数据库

以下示例创建一个名为 ts_db 的数据库。

CREATE TS DATABASE ts_db;

创建数据表

创建 t1 时序表并写入数据。

CREATE TABLE ts_db.t1(ts timestamp not null,a int, b int) tags(tag1 int not null, tag2 int) primary tags(tag1);

输出如下:
在这里插入图片描述

向表中写入数据。

INSERT INTO ts_db.t1 VALUES(now(),11,11,33,44);
INSERT INTO ts_db.t1 VALUES(now(),22,22,33,44);
INSERT INTO ts_db.t1 VALUES(now(),11,33,33,44);
INSERT INTO ts_db.t1 VALUES(now(),22,44,33,44);
INSERT INTO ts_db.t1 VALUES(now(),33,55,44,44);
INSERT INTO ts_db.t1 VALUES(now(),22,44,44,44);
INSERT INTO ts_db.t1 VALUES(now(),33,44,55,44);
INSERT INTO ts_db.t1 VALUES(now(),null,null,66,66);
INSERT INTO ts_db.t1 VALUES(now(),null,null,66,77);

输出如下:
在这里插入图片描述

查看表的内容。

SELECT * FROM ts_db.t1;

输出如下:
在这里插入图片描述

以上提供了KWDB的发展,安装与测试使用过程,撒花完结

最后附上KWDB相关参考链接
KWDB参考地址如下:
下载地址: https://gitee.com/kwdb/kwdb/releases/tag/V2.2.0

安装部署文档: https://www.kaiwudb.com/kaiwudb_docs/#/oss_v2.2.0/quickstart/overview.html

视频参考B站地址: https://space.bilibili.com/1533338997

### 如何在Spring Boot中集成KWDB 目前,在已有的引用资料中并未提及关于KWDB的具体配置指南。然而,可以基于常见的数据库连接方式以及Spring Boot对外部数据源的支持机制来推测可能的实现方法。 #### 1. 数据库驱动依赖 为了能够成功连接到KWDB,首先需要引入对应的JDBC驱动程序。如果KWDB提供了官方的JDBC驱动,则可以在`pom.xml`文件中添加相应的Maven依赖项[^3]: ```xml <dependency> <groupId>com.kwdb</groupId> <artifactId>kwdbsql-jdbc-driver</artifactId> <version>1.0.0</version> </dependency> ``` 注意:上述示例中的`groupId`, `artifactId` 和 `version` 需要替换为实际可用的内容。 #### 2. 数据源配置 接下来是在项目的资源配置文件(如`application.properties` 或者 `application.yml`)中定义KWDB的数据源参数。以下是典型的属性设置[^4]: ```yaml spring: datasource: url: jdbc:kwdb://your-kwdb-host:port/database_name username: your_username password: your_password driver-class-name: com.kwdb.jdbc.Driver ``` 这些字段分别指定了数据库URL、用户名、密码以及所使用的JDBC驱动类名。 #### 3. 使用Spring Data JPA简化操作 假如希望进一步提升开发效率并减少样板代码量,还可以考虑采用Spring Data JPA框架来进行持久层的设计编码工作。这通常涉及创建实体类和Repository接口两部分[^1]。 ##### 实体类示例: ```java import javax.persistence.Entity; import javax.persistence.Id; @Entity public class ExampleEntity { @Id private Long id; private String dataField; // Getters & Setters omitted for brevity. } ``` ##### Repository接口示例: ```java import org.springframework.data.jpa.repository.JpaRepository; public interface ExampleRepository extends JpaRepository<ExampleEntity, Long> { } ``` 通过这种方式即可轻松完成针对KWDB表记录的基础CRUD功能封装。 #### 4. Bean管理注入 最后值得一提的是,在整个过程中可能会涉及到各种类型的Spring Beans实例化及其生命周期控制等问题。此时可借助于BeanFactory容器所提供的基础DI能力加以解决[^5]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT从业者张某某

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值