KaiwuDB
浪潮集团是中国领先的云计算、大数据服务商,拥有浪潮信息、浪潮软件、浪潮数字企业三家上市公司。主要业务涉及计算装备、软件、云计算服务、新一代通信、大数据及若干应用场景。已为全球一百二十多个国家和地区提供IT产品和服务。
KaiwuDB 是浪潮控股的数据库企业,面向工业物联网、数字能源、车联网、智慧产业等行业领域,提供稳定安全、高性能、易运维的创新数据软件与服务。
8 月 23 日,KaiwuDB 2.0 开源,社区版本名字叫 KWDB,让更多用户企业和开发者有机会以低成本享受前沿数据库架构技术对业务系统的赋能,让产品在更广泛的应用场景中打磨优化,合力共建高性能、高可用、高兼容、高扩展的智能物联数字基座。
KWDB 是一款面向 AIoT 场景的分布式多模数据库产品,支持在同一实例同时建立时序库和关系库并融合处理多模数据,具备千万级设备接入、百万级数据秒级写入、亿级数据秒级读取等时序数据高效处理能力,具有稳定安全、高可用、易运维等特点,一站式满足 AIoT 等场景下数据管理需求及关键行业核心系统的自主可控需求。
9 月 25 日,开源项目 KWDB 捐赠给开放原子开源基金会。
开务数据库系统V2.0 已通过GB 18030-2022认证及测试,详情参阅:新一批通过GB 18030-2022认证及测试产品发布!
KWDB 2.0.4
9 月 30 日,KWDB 2.0.4 发版。发版说明如下。
新增特性
-
分布式架构
-
优化数据库高可用能力,分布式集群支持多个节点非同时宕机。
-
DDL 操作
-
在线增删改字段:支持在线增加、删除字段,支持在线转换数据类型。 -
comment 支持:支持为时序引擎下的库、表、列添加、删除注释(comment),并支持查看、导入、导出相关注释。
-
数据查询
-
定时连续查询:支持创建定时连续查询任务,按计划定时计算数据并将计算结果存储到指定的位置;支持查看、暂停、恢复、删除定时连续查询任务。 -
INSERT INTO SELECT
语句:支持通过INSERT INTO SELECT
语句将时序数据计算结果存入关系表。 -
时间日期函数: time_bucket
和time_bucket_gapfill
函数支持秒、分、小时、日、周、月、年为时间单位。
-
数据存储
-
数据压缩:支持通过参数配置选择数据库系统使用的压缩算法,包括:gzip、lz4、lzma、lzo、Xz、zstd;支持通过 df
语句查看总存储空间大小及 squashfs 文件挂载个数。 -
数据重组:支持通过定期数据重组,真正删除数据、增删改字段及乱序数据排序。
-
数据库运维
-
完善数据库内帮助信息,通过 help
命令查看语法时,提供更为详细的信息。
重要变更
-
操作系统和环境
-
新增对鲲鹏、龙蜥环境的支持。
-
使用语言及数据库连接方式
-
支持通过 ODBC 及 Hibernate 框架协议连接数据库。 -
允许普通用户删除用户自身的 Restful API 连接。 -
优化 Kafka 连接数据库的写入性能。
-
升级说明
-
优化升级规则,新增跳过版本检查强制升级能力。
KWDB 编译安装
本节将介绍如何在 Rocky Linux 9.4 操作系统编译安装 KWDB v2.0.4 数据库。
系统版本信息如下:
[shawnyan@rl9 ~]$ hostnamectl
Static hostname: rl9.shawnyan.cn
Operating System: Rocky Linux 9.4 (Blue Onyx)
Kernel: Linux 5.14.0-427.37.1.el9_4.x86_64
Architecture: x86-64
笔者尝试在云峦 KeyarchOS 5.8 和 OpenCloudOS 9.2 上安装,结果都遇到问题,期待官方尽快支持。
云峦 KeyarchOS 是浪潮信息基于 Linux Kernel、龙蜥 OpenAnolis 等开源技术自主研发的一款服务器操作系统,支持 x86、ARM 等主流架构处理器,性能和稳定性居于行业领先地位,具备成熟的 CentOS 迁移和替换能力,可满足云计算、大数据、分布式存储、人工智能、边缘计算等应用场景需求。[^1]
1: https://www.ieisystem.com/keyarchos/product.html
OpenCloudOS 9 是 OpenCloudOS 社区联合伙伴共同研发的全链路服务器操作系统社区版本。通过内核,用户态软件的全面优化和打磨,为用户和业务提供更先进、更高性能的基础环境和服务能力,解决 CentOS 断供的问题。OpenCloudOS 9.2 内置 Linux Kernel 6.6,是迄今为止最新的长期支持(LTS)版本,包含新功能、硬件支持、安全增强和性能改进等重大更新。
更多内容参考:
具体步骤如下。
-
安装依赖。
dnf install protobuf protobuf-devel openssl openssl-devel xz-libs squashfs-tools libgcc glibc ncurses-devel
dnf install ca-certificates go cmake autoconf libatomic libstdc++-static git
# 需配置 epel 源
dnf install rust-lzma-sys-devel golang-x-tools-goyacc geos
-
添加环境变量。
echo 'export GOPATH=/root/go' >> ~/.bashrc
echo 'export GO111MODULE=off' >> ~/.bashrc
source ~/.bashrc
-
检出源代码。
mkdir -p /root/go/src/gitee.com
git clone https://gitee.com/kwdb/kwdb.git --depth=1 /root/go/src/gitee.com/kwbasedb
cd /root/go/src/gitee.com/kwbasedb
git submodule update --init
git submodule update --remote
输出。
Submodule 'kwbase/c-deps' (https://gitee.com/kwdb/kw-cdeps.git) registered for path 'kwbase/c-deps'
Submodule 'kwbase/vendor' (https://gitee.com/kwdb/kw-vendor.git) registered for path 'kwbase/vendor'
Submodule 'kwdbts2/third_party' (https://gitee.com/kwdb/kw-third_party.git) registered for path 'kwdbts2/third_party'
Cloning into '/root/go/src/gitee.com/kwbasedb/kwbase/c-deps'...
Cloning into '/root/go/src/gitee.com/kwbasedb/kwbase/vendor'...
Cloning into '/root/go/src/gitee.com/kwbasedb/kwdbts2/third_party'...
Submodule path 'kwbase/c-deps': checked out 'b9daa4eff6186a9bb89a5a2a42430588b99ecca1'
Submodule path 'kwbase/vendor': checked out '850e84d4aefb051877d495daab1415f96f7ed316'
Submodule path 'kwdbts2/third_party': checked out 'a13ee97fda57b5da2f9c2af9432b56107606601e'
-
编译源码。
mkdir build && cd build/
cmake ..
make
make install
输出。
[ 81%] Built target kwdbts2
[ 97%] Built target common
[ 98%] compile kwbase
Running make with -j4
GOPATH set to /root/go
gitee.com/kwbasedb/kwbase/pkg/cmd/kwbase
[ 98%] Built target kwbase
[100%] Built target gtest
Install the project...
-- Install configuration: "Debug"
-- Installing: /root/go/src/gitee.com/kwbasedb/install/bin/df.sh
-- Installing: /root/go/src/gitee.com/kwbasedb/install/bin/err_inject.sh
-- Installing: /root/go/src/gitee.com/kwbasedb/install/bin/query_kwbase_status.sh
-- Installing: /root/go/src/gitee.com/kwbasedb/install/bin/query_status.sh
-- Installing: /root/go/src/gitee.com/kwbasedb/install/bin/setup_cert_file.sh
-- Installing: /root/go/src/gitee.com/kwbasedb/install/bin/utils.sh
-- Installing: /root/go/src/gitee.com/kwbasedb/install/bin/kwbase
-- Installing: /root/go/src/gitee.com/kwbasedb/install/lib/libcommon.so
-- Installing: /root/go/src/gitee.com/kwbasedb/install/lib/libkwdbts2.so
-
查看二进制文件版本。
cd /root/go/src/gitee.com/kwbasedb/install/bin
export LD_LIBRARY_PATH=../lib
./kwbase version
输出。
KaiwuDB Version: V2.0.4
Build Time: 2024/10/01 09:51:54
Distribution:
Platform: linux amd64 (x86_64-redhat-linux)
Go Version: go1.21.13 (Red Hat 1.21.13-3.el9_4)
C Compiler: gcc 11.4.1 20231218 (Red Hat 11.4.1-3)
Build SHA-1: d8f2a8c6281b17a635acb9977cea42eabb37b113
-
以单实例模式启动数据库。
./kwbase start-single-node --insecure --listen-addr=:26257 --background
-
检查节点状态。
[root@rl9 bin]# ./kwbase node status --insecure --host=:26257
id | address | sql_address | build | started_at | updated_at | locality | start_mode | is_available | is_live
-----+-----------------------+-----------------------+--------+----------------------------------+----------------------------------+----------+-------------------+--------------+----------
1 | rl9.shawnyan.cn:26257 | rl9.shawnyan.cn:26257 | V2.0.4 | 2024-10-01 10:05:03.341852+00:00 | 2024-10-01 10:05:21.514418+00:00 | | start-single-node | true | true
(1 row)
-
通过客户端连接 KWDB,并查看版本号。
[root@rl9 bin]# ./kwbase sql --insecure
#
# Welcome to the KWDB SQL shell.
# All statements must be terminated by a semicolon.
# To exit, type: \q.
#
# Server version: KaiwuDB V2.0.4 (x86_64-redhat-linux, built 2024/10/01 09:51:54, go1.21.13 (Red Hat 1.21.13-3.el9_4), gcc 11.4.1 20231218 (Red Hat 11.4.1-3)) (same version as client)
# Cluster ID: bd710239-3925-4ca7-aacd-284e9d3ae3ed
#
# Enter \? for a brief introduction.
#
root@:26257/defaultdb> select version();
version
------------------------------------------------------------------------------------------------------------------------------------------------
KaiwuDB V2.0.4 (x86_64-redhat-linux, built 2024/10/01 09:51:54, go1.21.13 (Red Hat 1.21.13-3.el9_4), gcc 11.4.1 20231218 (Red Hat 11.4.1-3))
(1 row)
Time: 606.042µs
-
查看帮助信息。
root@:26257/defaultdb> help
You are using 'kwbase sql', KwDB's lightweight SQL client.
Type:
\? or "help" print this help.
\q, quit, exit exit the shell (Ctrl+C/Ctrl+D also supported).
\! CMD run an external command and print its results on standard output.
\| CMD run an external command and run its output as SQL statements.
\set [NAME] set a client-side flag or (without argument) print the current settings.
\unset NAME unset a flag.
\show during a multi-line statement or transaction, show the SQL entered so far.
\h [NAME] help on syntax of SQL commands.
\hf [NAME] help on SQL built-in functions.
\l list all databases in the KwDB cluster.
\dt show the tables of the current schema in the current database.
\du list the users for all databases.
\d [TABLE] show details about columns in the specified table, or alias for '\dt' if no table is specified.
参考资料
-
https://gitee.com/kwdb/kwdb/releases/tag/V2.0.4 -
https://www.kaiwudb.com/kaiwudb_docs/#/oss_v2.0.4/release-notes/release-notes.html
Have a nice day ~
🌻 往期精彩 ▼
-
国产分布式数据库开启新篇章!详解安全可靠测评结果公告(2024年第2号) -
「合集」MySQL 8.x 系列文章汇总 -
「合集」三年50篇,TiDB干货全收录 -
国产基础软件“出海”标杆炼成记 -
几张图带你了解 TiDB 架构演进 -
Oracle 数据库全面升级为 23ai -
MySQL 9.0 的 VECTOR 文档更新 -
星辰资讯:TiDB v8.1.0 发版!稳! -
敢于公布BUG的国产数据库才是好数据库 -
一文带你了解 GB 18030-2022 字符集 -
MySQL 9.0.0 新鲜出炉!支持向量类型 -
即将告别PG 12,建议升级到PG 16.3版本 -
一文带你了解 KING BASE 金仓数据库 -
人大金仓 更名为 电科金仓 -
如何选择适合的 MySQL Connector/J 版本 -
python-oracledb 已率先支持 Oracle 23ai -
后 EL 7 时代,PG 16 如何在 CentOS 7 上运行 -
一文带你了解 Oracle 23ai 新特性 Vector 的基础用法
-- / END / --
👉 这里可以找到我
如果这篇文章为你带来了灵感或启发,就请帮忙点『赞』or『在看』or『转发』吧,感谢!ღ( ´・ᴗ・` )~
本文由 mdnice 多平台发布