博客
构建并运行 Databend
PsiACE1月 6, 2023
今天 Databend 合并了一个重大重构,expression 正式合并到
分支,为 Databend 装载了全新的静态类型系统和表达式计算框架。接下来一到两周内会进行全面测试,这个期间 nightly release 停发。如果大家对这套 New Expression 系统感兴趣,不妨参考这篇文章,亲自动手体验一下。main
如何构建 Databend
Make
采用
make
scripts/build
只开启默认特性,并且一次性构建
databend-query
databend-meta
databend-metactl
open-sharing
参考之前文章《如何设置 Databend 开发环境》,设置好开发环境。
- 可轻松构建 debug 版本。
make build
- 则会构建 release 版本,并会采用 objcopy 减少二进制体积。
make build-release
- 构建针对本机 CPU 优化的版本。
make build-native
Cargo
使用
cargo
常用的命令格式如:
RUSTFLAGS="--cfg tokio_unstable" cargo build --bin=databend-query --features=tokio-console
即可构建启用
tokio-console
databend-query
RUSTFLAGS="--cfg tokio_unstable"
tokio
tracing
Databend features 速览
这里只介绍几个比较常用的特性,具体支持的特性可以查看
Cargo.toml
features
- :默认开启的特性,启用 arrow2 的 SIMD 支持(meta & query)。
simd = ["common-arrow/simd"]
- :用于监控和调试异步调用程序(meta & query)。
tokio-console = ["common-tracing/console", "common-base/tracing"]
- :用于内存分析(meta & query)。
memory-profiling = ["common-base/memory-profiling", "tempfile"]
- :用于提供 hive 支持(query)。
hive = ["common-hive-meta-store", "thrift", "storage-hdfs"]
跨平台构建
Databend 提供 Docker
build-tool
示例选用
x86_64-unknown-linux-gnu
IMAGE='databendlabs/build-tool:x86_64-unknown-linux-gnu' RUSTFLAGS='-C link-arg=-Wl,--compress-debug-sections=zlib-gnu' ./scripts/setup/run_build_tool.sh cargo build --target x86_64-unknown-linux-gnu
如何运行 Databend
一旦构建完成后,就可以在 target 目录下找到对应的二进制程序。对于 Databend 的运行,同样有多种可供选择的方式。
Make
Databend 同样预置了一些方便开发人员快速运行的
make
make run-debug