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

ops/2024/10/10 17:15:15/

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

更多内容参考:

  • 初探 OpenCloudOS 操作系统

具体步骤如下。

  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 ~


🌻 往期精彩 ▼

  • 国产分布式数据库开启新篇章!详解安全可靠测评结果公告(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 / --

👉 这里可以找到我

  • 微信公众号: 少安事务所
  • ITPUB: 少安事务所
  • TiDB 专栏: @ShawnYan
  • PGFans: 严少安
  • 墨天轮: 严少安

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

本文由 mdnice 多平台发布


http://www.ppmy.cn/ops/123583.html

相关文章

【自动化测试】任务1:商品品牌

需要软件测试备赛资料或者远程培训可联系博主,详细了解 1、任务知识储备 Python/Java:掌握使用Python/Java语言,能够进行自动化测试脚本编写;Pycharm/IDEA:掌握Pycharm/IDEA编辑器的使用,能够进行代码编写…

Java 对比两个list 找出重复的 和不重复的

使用场景&#xff1a; list 可以对比两个list 那些是重复的 那些是不重复的&#xff0c;直接把 500 个船名放到list 里面 然后再把 指挥系统查出来的400个船名放到新的list 里面 然后掉一个方法能对比出来两个list 交际 差集 并集 public static List<String> findNonI…

网络基础知识笔记(一)

什么是计算机网络 1.计算机网络发展的第一个阶段&#xff1a;(60年代) 标志性事件&#xff1a;ARPANET 关键技术&#xff1a;分组交换 计算机网络发展的第二个阶段&#xff1a;(70-80年代) 标志性事件&#xff1a;NSFNET 关键技术:TCP/IP 计算机网络发展的第三个阶段&#xff…

SafeLine - 雷池 - 不让黑客越过半步

&#x1f44b; 项目介绍 SafeLine&#xff0c;中文名 “雷池”&#xff0c;是一款简单好用, 效果突出的 Web 应用防火墙(WAF)&#xff0c;可以保护 Web 服务不受黑客攻击。 雷池通过过滤和监控 Web 应用与互联网之间的 HTTP 流量来保护 Web 服务。可以保护 Web 服务免受 SQL …

代码随想录day24:贪心part2

121. 买卖股票的最佳时机 class Solution {public int maxProfit(int[] prices) {int ans 0;int minPrice prices[0];for(int p : prices){ans Math.max(ans, p - minPrice);minPrice Math.min(p, minPrice);}return ans;} } 运用前缀和思想&#xff0c; 从左到右枚举卖…

Pikachu-Sql Inject-宽字节注入

基本概念 宽字节是相对于ascII这样单字节而言的&#xff1b;像 GB2312、GBK、GB18030、BIG5、Shift_JIS 等这些都是常说的宽字节&#xff0c;实际上只有两字节 GBK 是一种多字符的编码&#xff0c;通常来说&#xff0c;一个 gbk 编码汉字&#xff0c;占用2个字节。一个…

【微服务】链路追踪 - Micrometer(day9)

概述 引入 在微服务架构下&#xff0c;客户端一个请求不再仅仅通过一个后端服务和数据库服务就能返回响应&#xff0c;而是通过多个服务节点的协同调用才会产生最终的响应。因此&#xff0c;一个简单的请求就可能会形成一个复杂的分布式服务调用链路&#xff0c;链路中的任何…

云原生(四十七) | PHP软件安装部署

文章目录 PHP软件安装部署 一、PHP软件部署步骤 二、安装与配置PHP PHP软件安装部署 一、PHP软件部署步骤 第一步&#xff1a;安装 EPEL 仓库 与 Remi仓库 第二步&#xff1a;启用 Remi 仓库 第三步&#xff1a;安装 PHP、PHP-FPM 第四步&#xff1a;启动并开机启用 PH…