简体中文 | English
KWDB 是由开放原子开源基金会孵化及运营的开源项目,是一款面向 AIoT 场景的分布式多模数据库产品,支持在同一实例同时建立时序库和关系库并融合处理多模数据,具备千万级设备接入、百万级数据秒级写入、亿级数据秒级读取等时序数据高效处理能力,具有稳定安全、高可用、易运维等特点。
KWDB 基于浪潮 KaiwuDB 分布式多模数据库研发开源,典型应用场景包括但不限于物联网、能源电力、交通车联网、智慧政务、IT 运维、金融证券等,旨在为各行业领域提供一站式数据存储、管理与分析的基座,助力企业数智化建设,以更低的成本挖掘更大的数据价值。
KWDB 为不同角色开发者提供以下支持(包括但不限于):
关键词:物联网(IoT)、多模数据库、分布式、时序数据处理、云边端协同
获取资源:拥有 Gitee 账户的用户登陆后可以直接访问并下载本社区的资源,资源类型包括文章、文档、源代码、二进制可执行文件。
使用资源:用户可以直接使用下载的资源。KWDB 文章和文档的引用应当注明来源;源代码的修改应当遵守 MulanPSL2 协议约束;二进制文件使用过程中遇到的问题,可通过 Issue 提报的方式反馈给社区。
KWDB 支持用户根据需求选择二进制安装包、容器和源码安装与试用 KWDB 数据库:
以下指南以 Ubuntu 22.04 操作系统为例说明如何编译源码和安装 KWDB。
KWDB 支持在 Linux 操作系统进行安装部署,下表列出了编译和运行 KWDB 所需的软件依赖。
编译依赖:
依赖 | 版本 | 说明 |
---|---|---|
ca-certificates | any | |
Go | v1.15+ | |
CMake | v3.23 | |
Autoconf | v2.68+ | |
goyacc | v0.8.0+ | |
dpkg-dev | any | 仅适用Ubuntu系统。 |
devscripts | any | 仅适用Ubuntu系统。 |
build-essential | any | |
checkinstall | any | |
libssl | v1.1.1+ | - Ubuntu系统该依赖名为libssl-dev。 - RHEL, CentOS, Kylin, UOS, AnolisOS系统该依赖名为libssl-devel。 |
libprotobuf | v3.6.1+ | - Ubuntu系统该依赖名为libprotobuf-dev。 - RHEL, CentOS, Kylin, UOS, AnolisOS系统该依赖名为libprotobuf-devel。 |
liblzma | v5.2.0+ | - Ubuntu系统该依赖名为liblzma-dev。 - RHEL, CentOS, Kylin, UOS, AnolisOS系统该依赖名为liblzma-devel。 |
libncurses | v6.2.0+ | - Ubuntu系统该依赖名为libncurses5-dev。 - RHEL, CentOS, Kylin, UOS, AnolisOS系统该依赖名为libncurses-devel。 |
libatomic | v7.3.0+ | 仅 GCC 和 G++ 7.3.0 版本需要增加此依赖。 |
libstdc++-static | v7.3.0+ | 仅 GCC 和 G++ 7.3.0 版本需要增加此依赖。 |
protobuf-compiler | any | |
git | any |
运行依赖:
依赖 | 版本 |
---|---|
openssl | v1.1.1+ |
protobuf | v3.5.0+ |
geos | v3.3.8+ |
xz-libs | v5.2.0+ |
squashfs-tools | any |
libgcc | v7.3.0+ |
mount | any |
squashfuse | any |
下载和解压 CMake 安装包。
tar -C /usr/local/ -xvf cmake-3.23.4-linux-x86_64.tar.gz
mv /usr/local/cmake-3.23.4-linux-x86_64 /usr/local/cmake
下载和解压 Go 安装包。
tar -C /usr/local -xvf go1.22.5.linux-amd64.tar.gz
创建用于存放项目代码的代码目录。
mkdir -p /home/go/src/gitee.com
设置 Go 和 CMake 的环境变量。
个人用户设置:修改~/.bashrc
文件
系统全局设置(需要 root 权限):修改/etc/profile
文件
export GOROOT=/usr/local/go
export GOPATH=/home/go #请以实际代码下载存放路径为准,在此以home/go目录为例
export PATH=$PATH:/usr/local/go/bin:/usr/local/cmake/bin
使变量设置立即生效:
个人用户设置:
source ~/.bashrc
系统全局设置:
source /etc/profile
在 KWDB 代码仓库下载代码,并将其存储到 GOPATH
声明的目录。
使用 git clone 命令:
git clone https://gitee.com/kwdb/kwdb.git /home/go/src/gitee.com/kwbasedb #请勿修改目录路径中的 src/gitee.com/kwbasedb
cd /home/go/src/gitee.com/kwbasedb
git submodule update --init #适用于首次拉取代码
git submodule update --remote
下载代码压缩包,并将其解压缩到指定目录。
在项目目录下创建并切换到构建目录。
cd /home/go/src/gitee.com/kwbasedb
mkdir build && cd build
运行 CMake 配置。
cmake .. -DCMAKE_BUILD_TYPE= [Release | Debug]
参数说明:
CMAKE_BUILD_TYPE
:指定构建类型,默认为 Debug
。可选值为 Debug
或 Release
,首字母需大写。
禁用Go模块功能。
设置环境变量
个人用户设置:修改~/.bashrc
文件
系统全局设置(需要 root 权限):修改/etc/profile
文件
export GO111MODULE=off
使变量设置立即生效:
个人用户设置:
source ~/.bashrc
系统全局设置:
source /etc/profile
编译和安装项目。
提示: 如果编译时出现遗留的 protobuf 自动生成的文件导致报错,可使用
make clean
清理编译目录。
make
make install
编译和安装成功后的文件清单如下:
/home/go/src/gitee.com/kwbasedb
├── install
│ ├── bin
│ │ ├── err_inject.sh
│ │ ├── query_kwbase_status.sh
│ │ ├── query_status.sh
│ │ ├── setup_cert_file.sh
│ │ ├── utils.sh
│ │ └── kwbase
│ └── lib
│ ├── libcommon.so
│ └── libkwdbts2.so
(可选)进入 kwbase 脚本所在目录,查看数据库版本,验证是否安装成功。
./kwbase version
KaiwuDB Version: V2.0.3.2_RC3-3-gfe5eeb853e-dirty
Build Time: 2024/07/19 06:24:00
Distribution:
Platform: linux amd64 (x86_64-linux-gnu)
Go Version: go1.22.5
C Compiler: gcc 11.4.0
Build SHA-1: fe5eeb853e0884a963fd43b380a0b0057f88fb19
进入 kwbase
脚本所在目录。
cd /home/go/src/gitee.com/kwbasedb/install/bin
设置共享库的搜索路径。
export LD_LIBRARY_PATH=../lib
启动数据库。
./kwbase start-single-node --insecure --listen-addr=:26257 --background
数据库启动后即可通过 kwbase CLI 工具、KaiwuDB 开发者中心或 JDBC 等连接器连接和使用 KWDB,具体连接和使用内容见使用 kwbase CLI 工具连接 KWDB、使用 KaiwuDB 开发者中心连接 KWDB 和使用 JDBC 连接 KWDB。
欢迎各位开发者加入我们的社区组织,详情请参阅我们的社区组织架构。
欢迎大家参与贡献,详情请参阅我们的社区贡献。
KWDB 典型应用场景包括但不限于物联网、能源电力、交通车联网、智慧政务、IT 运维、金融证券等,更多信息请参见应用案例。
请参见发版说明。
如果你想和更多 KWDB 的用户互动交流,请扫下方二维码(备注:Gitee),KWDB 官方小助手将协助你加入官方技术交流群。
扫码关注公众号:KaiwuDB
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。