如何设置 Databend 开发环境

杨志
• 阅读 648

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

如何设置 Databend 开发环境

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

轻量级、反应迅速、可无限定制的高颜值终端!

如何设置 Databend 开发环境
参考 starship - installation 进行安装。

curl -sS https://starship.rs/install.sh | sh

2.hyperfine

命令行基准测试工具。

如何设置 Databend 开发环境

参考 hyperfine - installation进行安装。

cargo install hyperfine

关于 Databend

Databend 是一款开源、弹性、低成本,基于对象存储也可以做实时分析的新式数仓。期待您的关注,一起探索云原生数仓解决方案,打造新一代开源 Data Cloud。

如何设置 Databend 开发环境

文章首发于公众号:Databend

点赞
收藏
评论区
推荐文章
雷厉风行 雷厉风行
2年前
Mac程序员开发必备-MAMP PRO for Mac 自带激活版-PHP+Mysql 开发集成环境,本地站点
MAMPPROforMac是一款集成了PHP和MYSQL的开发环境,可以帮助Mac程序员快速搭建本地站点,进行开发和测试,并且自带激活版,非常方便。它提供了一个稳定的环境,方便程序员进行代码开发和调试,同时还支持多种应用程序和框架,满足不同程序员的开发需求。
雷厉风行 雷厉风行
2年前
简单易用的Mac Go开发工具:JetBrains GoLand 2023,永久版下载
JetBrainsGoLand是一款面向Go语言开发者的集成开发环境,可以帮助开发者快速创建、维护和调试高质量、高效的Go语言项目。该软件提供了许多强大的工具和功能,包括代码自动补全、代码重构、静态分析、Debugging和运行测试等,从而提高了Go语言开发者的编码速度和工作效率。
Easter79 Easter79
3年前
springboot中切换配置(多个配置文件
问题描述:在springboot项目中可能有测试环境、开发环境、生产环境,在这些环境中我们可能要使用不同的配置,如果每次切换环境的时候都要重新写一份配置文件就很麻烦了,所以下面提供一种方法可以快速且简便的切换不同环境下的配置。解决方案:1、首先在resources目录下创建完整的配置文件(包括测试、开发、生产环境下的相关配置文件
Wesley13 Wesley13
3年前
Java运行环境
Java开发环境配置在本章节中我们将为大家介绍如何搭建Java开发环境。Windows上安装开发环境Linux上安装开发环境安装Eclipse运行JavaCloudStudio在线运行Javawindow系统安装java下载
Stella981 Stella981
3年前
Centos7手动编译安装apache
!(https://img2018.cnblogs.com/blog/1267816/201903/1267816201903021700240251433102194.png)现在很多人搭建web环境选择了一键脚本或可视化管理面板,因此我认为在使用一键脚本之前,一定要自己搭建一次,生产环境的话,炸了都不知道怎么快速解决可就太难受了,另外就是安
Wesley13 Wesley13
3年前
Java开发环境配置及解读
  学习java开发,先要配置好java的开发环境。这一章我们主要介绍JDK的下载、安装、环境变量配置、以及jdk的详细介绍、最后编写一个HelloWorld程序开启我们学习之旅!  一、JDK下载  下载地址:https://www.oracle.com/technetwork/java/javase/downloads/in
Stella981 Stella981
3年前
Spring Boot devtool的使用
SpringBootdevtool的使用SpringBoot为我们提供了一个便捷的开发SpringBoot应用程序的环境,同时为了方便我们的开发SpringBoot应用程序,SpringBoot推出了SpringBootdevtool的工具来方便我们更加快速的开发和测试SpringBoot应用程序。我们将会从下面几个方面来详细讲解
Wesley13 Wesley13
3年前
vivo Y71的USB调试模式在哪里,开启vivo Y71USB调试模式的流程
就在我们使用安卓手机通过数据线连接到电脑的时候,如果手机没有开启usb开发者调试模式,电脑则没能成功识别我们的手机,部分工具也没能正常使用,此情况我们需要找解决方法将手机的usb开发者调试模式打开,以下内容我们讲解vivoY71如何开启usb开发者调试模式的方法。首先,在vivoY71应用程序界面点中“设置”ICON,进入vivoY71系统“设置”
Stella981 Stella981
3年前
EthBox
EthBox是汇智网为了方便以太坊开发学习者快速安装本地开发环境而制作的开发套件,可以一键安装以下必备开发工具:nodejs:8.11.2git:2.17.1.2geth:1.8.10ganachecli:6.1.0truffle:4.1.11EthBox即支持采用仿真器进行快速开发验证,也
SpringBoot自动配置原理解析 | 京东物流技术团队
1:什么是SpringBoot自动配置首先介绍一下什么是SpringBoot,SpringBoost是基于Spring框架开发出来的功能更强大的Java程序开发框架,其最主要的特点是:能使程序开发者快速搭建一套开发环境。SpringBoot能将主流的开发框
taskbuilder taskbuilder
7个月前
文件同步工具
在进行软件开发时,开发者一般会在自己电脑上搭建一个开发环境,先在自己电脑上进行开发和测试,没有问题后,再通过远程桌面、ftp或其他工具把代码发布到正式服务器上。为了方便开发者同步本地开发环境和正式服务器上的文件,TaskBuilder提供了一个文件同步工具