乐趣区

关于开发环境:如何设置-Databend-开发环境

工欲善其事,必先利其器。在开启 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 build
info: 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

退出移动版