工欲善其事,必先利其器。在开启 Databend 奉献之旅前,一起来配置适宜本人的开发环境吧。疾速装置
疾速装置
为不便开发者疾速建设开发环境,Databend 保护了一个简单的 shell 脚本,位于 scripts/setup/dev_setup.sh
。只需执行一条指令即可实现开发环境配置:
$ make setup -d
留神:此过程会辅助装置局部 python 环境,可能会对本地原开发环境造成影响,倡议事后执行以下命令以创立并启用专属虚拟环境。
$ python -m venv .databend$ source .databend/bin/activate
如果遇到依赖缺失问题,能够参考「分步装置 - 测试必备」这一部分的内容装置。分步装置
分步装置
这里以 Fedora 36 为例,思考到不同零碎和发行版之间的差别,你可能须要自行装置 gcc,python 和 openssl。
1.装置 Rust toolchain:
举荐应用 rustup 来治理 Rust toolchain ,参考 https://rustup.rs/ 进行装置。对于 MacOS 和 Linux 用户,执行:
$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Databend 通常应用最新公布的 nightly 工具链进行开发,相干信息记录在 rust-toolchain.toml
中。Rustup 会在应用时对工具链进行主动重载,装置时只需默认配置。
$ cargo buildinfo: syncing channel updates for 'nightly-2022-05-19-x86_64-unknown-linux-gnu'info: latest update on 2022-05-19, rust version 1.63.0-nightly (cd282d7f7 2022-05-18)
2.装置必备依赖:
以下列出了一些装置构建和测试必备依赖的关键步骤,阐明及报错信息以正文模式出现。
构建必备:
# common-hive-meta-store 须要,thrift not found$ sudo dnf install thrift# openssl-sys 须要,Can't locate FindBin.pm, File/Compare.pm in @INC$ sudo dnf install perl-FindBin perl-File-Compare# prost-build 须要,is `cmake` not installed?# The CMAKE_CXX_COMPILER: c++ is not a full path and was not found in the PATH.,装置 clang 时也会装置 gcc-c++ 和 llvm$ sudo dnf install cmake clang
测试必备:
# 功能测试和后续体验须要$ sudo dnf install mysql# 蕴含目前功能测试和 lint 须要的所有 Python 依赖$ cd tests$ pip install poetry$ poetry install$ poetry shell# sqllogic 测试须要(蕴含在下面步骤中,按需选用)(tests) $ cd logictest$ pip install -r requirements.txt# fuzz 测试须要(tests) $ cd fuzz$ pip install -r requirements.txt
Lint 必备:
# taplo fmt 须要$ cargo install taplo-cli
编辑器 - Visual Studio Code
- 拜访 https://code.visualstudio.com ,装置 Visual Studio Code 。
1.插件举荐
rust-analyzer
- 作者:The Rust Programming Language
- 为 Visual Studio Code 提供 Rust 语言反对。
crates
- 作者:Seray Uzgur
- 帮忙 Rust 开发者治理 Cargo.toml 中的依赖。仅反对起源为 crates.io 的依赖。
CodeLLDB
- 作者:Vadim Chugunov
- 由 LLDB 驱动的原生调试工具。反对调试 C++ 、Rust 和其余编译语言。
Remote - Containers
- 作者:Microsoft
- 在 Docker 容器内关上任何文件夹或 Repo ,并利用 Visual Studio Code 的全副性能。
2. 利用 Dev Containers 开发(For Linux)
装置「Remote - Containers」插件,关上 Databend 后会看到右下角弹出窗口并提醒「Reopen in Container」。
装置 Docker
依据 Docker Docs - Install 装置并启动对应你发行版的 docker 。以 Fedora 36
为例,步骤如下:
# 移除旧版本 docker$ sudo dnf remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine# 设置存储库$ sudo dnf -y install dnf-plugins-core$ sudo dnf config-manager \ --add-repo \ https://download.docker.com/linux/fedora/docker-ce.repo# 装置 Docker Engine$ sudo dnf install docker-ce docker-ce-cli containerd.io docker-compose-plugin
将以后 User 增加到 docker group 中参考 Docker Docs - PostInstall中 Manage Docker as a non-root user 一节配置,可能须要重启。
步骤如下
# 增加 docker 用户组$ sudo groupadd docker# 将用户增加到 docker 这个组中$ sudo usermod -aG docker $USER# 激活更改$ newgrp docker# 更改权限以修复 permission denied$ sudo chown "$USER":"$USER" /home/"$USER"/.docker -R$ sudo chmod g+rwx "$HOME/.docker" -R
其余步骤
启用 Docker :
$ sudo systemctl start docker
点击左下角「关上近程窗口」选中「Reopen in Container」即可体验。
其余实用工具举荐
这里列出一些可能有助于 Databend 开发的实用工具,依据理论状况按需选用。
1.starship
轻量级、反馈迅速、可有限定制的高颜值终端!
- https://github.com/starship/s...
参考 starship - installation 进行装置。
curl -sS https://starship.rs/install.sh | sh
2.hyperfine
命令行基准测试工具。
- https://github.com/sharkdp/hy...
参考 hyperfine - installation进行装置。
cargo install hyperfine
对于 Databend
Databend 是一款开源、弹性、低成本,基于对象存储也能够做实时剖析的旧式数仓。期待您的关注,一起摸索云原生数仓解决方案,打造新一代开源 Data Cloud。
- Databend 文档:https://databend.rs/
- Twitter:https://twitter.com/Datafuse_...
- Slack:https://datafusecloud.slack.com/
- Wechat:Databend
- GitHub :https://github.com/datafusela...
文章首发于公众号:Databend