博客

基于 minio 部署单实例 Databend | 新手篇(1)

wubx12月 26, 2022

Databend 是一个使用 Rust 研发、开源、完全面向云架构的新式数仓,提供极速的弹性扩展能力,致力于打造按需、按量的 Data Cloud 产品体验。具备以下特点:

  • 开源 Cloud Data Warehouse 明星项目

  • Vectorized Execution 和 Pull&Push-Based Processor Model

  • 真正的存储、计算分离架构,高性能、低成本,按需按量使用

  • 完整的数据库支持,兼容 MySQL,Clickhouse 协议

  • 完善的事务性,支持 Time Travel, Database Clone,Data Share 等功能

  • 支持基于同一份数据的多租户读写、共享操作

开源地址:https://github.com/datafuselabs/databend/

官方文档:https://docs.databend.cn

理解 Databend 架构

Databend 是一个开源的云原生数仓,为了更好的适用于云环境,Databend 从架构上分为三层:

MetaService 层,Query 层,存储层。下面分别简介:

  • MetaService 层

这是 Databend 司令部,用于存储:权限定义,表结构定义,事务管理,表和数据的关联关联以及数据共享的整体逻辑。推荐集群方式部署。

  • Query 层

Query 层是 Databend 中直接和用户交互及调用存储的一层。用户通过 SQL 和 Databend 交互,Query 层接到用户的请求后读写存储层。该层不用实时在线,使用时拉起,同时也支持动态扩容及收缩。

  • 存储层

Databend 的存储层推荐使用云上的对象存储或是自建对象存储。Databend 在存储引擎这块使用了大数据生态的:Parquet 格式,同时引入了:min/max 索引,稀疏索引,bloom 索引等。

Databend 支持的部署环境

部署环境Databend
是否开源
AWS S3支持部署
Google GCS支持部署
Azure Blob支持部署
阿里云 COS支持部署
腾讯 OSS支持部署
华为云 OBS支持部署
minio支持部署
Ceph支持部署
Wasabi支持部署
SeaweedFS支持部署
青云 QingStor支持部署

详细参考:https://docs.databend.cn/doc/deploy/deploying-databend

Databend 支持部署环境(单机)

实质上 minio 环境单机搭建比较容易,但后期的扩容还是比较麻烦,minio + databend 比较适合走一下流程,这个环境也是 Databend 很多同事的开发环境。但 Databend 真正的测试及性能测试都是基于 AWS S3 环境运行。

Databend 部署方式比较简单,这里以 Linux 下 minio + Databend 单机部署部署为例,如果你是在公有云上部署,就更加简单。

软件位置监听端口
minio/data/minio9900
databend/data/databendmysql: 3307
http: 8000

Minio 搭建

官方地址:https://min.io/

从官方下载 minio 并启动

cd /data
mkdir minio
cd minio
wget https://dl.min.io/server/minio/release/linux-amd64/minio
export MINIO_ROOT_USER=minioadmin
export MINIO_ROOT_PASSWORD=minioadmin
./minio server ./data./minio server --address :9900 ./data

利用 WEB 届面打开 minio 管理测,打开后创建一个:databend bucket.

完成这个 bucket 创建后,minio 部署部分已经完成。

Databend 下载

Databend 下载建议可以从 Databend 的开源项目的 repo 里下载,每天都会有一个对应的 release , 具体的地址:https://github.com/datafuselabs/databend/tags

国内下载可以通过 aws s3 下载:https://docs.databend.cn/download

文件类型适用平台
- databend-version-nightly-aarch64-apple-darwin.tar.gz适用于 m1 的 mac 系统
- databend-version-nightly-aarch64-unknown-linux-musl.tar.gz适用于 arm 的 linux
- databend-version-nightly-x86_64-apple-darwin.tar.gz适用于 x64 的 mac 系统
- databend-version-nightly-x86_64-unknown-linux-musl.tar.gz适用于 x64 的 linux
- source code对应的源码

一般 Linux 下我们下载 musl 包就可以,注意是 arm 或 x86_64 平台的区分。

下载地址:

https://docs.databend.cn/download
https://github.com/datafuselabs/databend/tags

上面两个地址都可以下载 Databend, 其中 GitHUB 上的比较全一点。

这里以 Linux X86_64 安装 v0.9.51-nightly 版本为例:

cd /data
mkdir databend
export ver=v1.2.184-nightly
wget https://repo.databend.com/databend/$ver/databend-$ver-x86_64-unknown-linux-musl.tar.gz
cd databend
tar zxvf ../databend-$ver-x86_64-unknown-linux-musl.tar.gz

sudo mkdir /var/log/databend
sudo mkdir /var/lib/databend
sudo chown -R $USER /var/log/databend
sudo chown -R $USER /var/lib/databend

Databend 配置

默认下载的配置文件,需要修改 databend-query 的配置就可以使用了。

vim configs/databend-query.toml

修改部分

[[query.users]]
name = "root"
auth_type = "no_password"


# Storage config.[storage]
# fs | s3 | azblob | obs
type = "s3"
allow_insecure = true

# Set a local folder to store your data.
# Comment out this block if you're NOT using local file system as storage.
[storage.fs]
data_path = "./.databend/stateless_test_data"

# To use S3-compatible object storage, uncomment this block and set your values.
[storage.s3]
bucket = "databend"
root ="proj_data"
endpoint_url = "http://127.0.0.1:9900"
access_key_id = "minioadmin"
secret_access_key = "minioadmin"

Databend 启动 & 环境校验

启动 Databend

./scripts/start.sh
ps axu |grep databend

关闭 Databend

./scripts/stop.sh

连接 Databend

Databend 默认对外有三个服务端口:

MySQL : 3307 支持 MySQL cli,应用程序连接。

Clickhouse: 8124 Clickhouse http handler 协议

这里我们以 MySQL client 连接举例:

mysql -h 127.0.0.1 -P3307 -uroot

需要注意 root 可以通过 localhost 实现无密码登录。Databend 权限管理参考了 MySQL 8.0 的设计,可以按 MySQL 8.0 的用户管理来管理 Databend 的用户。

到此 Databend 单机基本部署就完成了。使用上就可以相当于使用一个 MySQL 一样来使用了。

Databend 官方 Client: bendsql

bendsql 是 Databend 基于 Rust 实现的一个 cli 工具,可以连接私有化环境,也可以连接 Databend Cloud

下载地址:https://github.com/datafuselabs/bendsql

安装和使用可以阅读 Readme 获取。

Connect With Us

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

分享本篇文章

订阅我们的新闻简报

及时了解功能发布、产品规划、支持服务和云服务的最新信息!