【一文讲透(番外篇)】如何编译安装KWDB v2.0.4数据库

KaiwuDB

浪潮集团是中国领先的云计算、大数据服务商,拥有浪潮信息、浪潮软件、浪潮数字企业三家上市公司。主要业务涉及计算装备、软件、云计算服务、新一代通信、大数据及若干应用场景。已为全球一百二十多个国家和地区提供IT产品和服务。

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

alt

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 发版。发版说明如下。

新增特性

  1. 分布式架构
  • 优化数据库高可用能力,分布式集群支持多个节点非同时宕机。
  1. DDL 操作
  • 在线增删改字段:支持在线增加、删除字段,支持在线转换数据类型。
  • comment 支持:支持为时序引擎下的库、表、列添加、删除注释(comment),并支持查看、导入、导出相关注释。
  1. 数据查询
  • 定时连续查询:支持创建定时连续查询任务,按计划定时计算数据并将计算结果存储到指定的位置;支持查看、暂停、恢复、删除定时连续查询任务。
  • INSERT INTO SELECT 语句:支持通过 INSERT INTO SELECT 语句将时序数据计算结果存入关系表。
  • 时间日期函数: time_buckettime_bucket_gapfill 函数支持秒、分、小时、日、周、月、年为时间单位。
  1. 数据存储
  • 数据压缩:支持通过参数配置选择数据库系统使用的压缩算法,包括:gzip、lz4、lzma、lzo、Xz、zstd;支持通过 df 语句查看总存储空间大小及 squashfs 文件挂载个数。
  • 数据重组:支持通过定期数据重组,真正删除数据、增删改字段及乱序数据排序。
  1. 数据库运维
  • 完善数据库内帮助信息,通过 help 命令查看语法时,提供更为详细的信息。

重要变更

  1. 操作系统和环境
  • 新增对鲲鹏、龙蜥环境的支持。
  1. 使用语言及数据库连接方式
  • 支持通过 ODBC 及 Hibernate 框架协议连接数据库。
  • 允许普通用户删除用户自身的 Restful API 连接。
  • 优化 Kafka 连接数据库的写入性能。
  1. 升级说明
  • 优化升级规则,新增跳过版本检查强制升级能力。

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)版本,包含新功能、硬件支持、安全增强和性能改进等重大更新。

更多内容参考:

具体步骤如下。

  1. 安装依赖。
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
  1. 添加环境变量。
echo 'export GOPATH=/root/go' >> ~/.bashrc
echo 'export GO111MODULE=off' >> ~/.bashrc
source ~/.bashrc
  1. 检出源代码。
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'
  1. 编译源码。
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
  1. 查看二进制文件版本。
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
  1. 以单实例模式启动数据库。
./kwbase start-single-node --insecure --listen-addr=:26257 --background
  1. 检查节点状态。
[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)
  1. 通过客户端连接 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
  1. 查看帮助信息。
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 ~


🌻 往期精彩 ▼


-- / END / --

👉 这里可以找到我

如果这篇文章为你带来了灵感或启发,就请帮忙点『』or『在看』or『转发』吧,感谢!ღ( ´・ᴗ・` )~

本文由 mdnice 多平台发布

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值