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/databendlabs/databend/
理解 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/minio | 9900 |
databend | /data/databend | mysql: 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/databendlabs/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/databendlabs/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/databendlabs/bendsql
安装和使用可以阅读 Readme 获取。
Connect With Us
Databend 是一款开源、弹性、低成本,基于对象存储也可以做实时分析的新式数仓。期待您的关注,一起探索云原生数仓解决方案,打造新一代开源 Data Cloud。
订阅我们的新闻简报
及时了解功能发布、产品规划、支持服务和云服务的最新信息!