共计 5688 个字符,预计需要花费 15 分钟才能阅读完成。
前言
本篇文章 基于 Databend 的用户测试体验整顿,详情可戳原文链接查看,注释总体分为四局部:
- Databend 产品简介
- Databend 对 Ceph 的反对
- Databend 在数据归档中的优良体现
- 产品应用总结
Databend 产品简介
atabend 是一个应用 Rust 研发、开源、齐全面向云架构的旧式数仓,提供极速的弹性扩大能力,致力于打造按需、按量的 Data Cloud 产品体验。具备以下特点:
- 开源 Cloud Data Warehouse 明星我的项目
- Vectorized Execution 和 Pull & Push-Based Processor Model
- 真正的存储、计算拆散架构,高性能、低成本,按需按量应用
- 残缺的数据库反对,兼容 MySQL,Clickhouse 协定,SQL Over HTTP 等
- 具备欠缺的事务性,反对 Time Travel,Database Clone,Data Share 等性能
- 反对基于同一份数据进行的多租户读写、共享操作
Databend 官网教程:https://databend.rs/zh-CN/doc…
Databend 对 Ceph 的反对
Databend 部署
产品架构图
- 架构简述:
Query 计算节点:用于协定的解析、SQL 的计算下推。
Meta 元数据节点:用于存储元数据信息,存储在本地磁盘。
- 存储节点反对:
私有云:AWS、阿里、腾讯等的 OSS 产品。
私有化反对:Minlo、Ceph 等等的 S3 协定。
- 简述部署步骤:
- 下载最新的二进制包。
- 解压压缩包,并且创立文件夹。
- 批改配置文件。
- 启动。
- 部署环境:
操作系统:Centos7Cpeh 版本:12.2.13Databend 版本:v0.7.65
总的来说,Databend 部署相当简略。
第一步:下载 Databend
[root@testsrv ~]#
wget https://github.com/datafuselabs/databend/releases/download/v0.7.65-nightly/databend-v0.7.65-nightly-x86_64-unknown-linux-musl.tar.gz
第二步:解压缩并创立目录
[root@testsrv ~]#
tar -zxvf databend-v0.7.65-nightly-x86_64-unknown-linux-musl.tar.gz
mkdir /usr/local/databend/{bin,data,etc,logs} -p
mv databend-meta /usr/local/databend/bin/
mv databend-query /usr/local/databend/bin/
第三步:批改启动配置文件
[root@testsrv ~]# meta 配置文件批改
cd /usr/local/databend/etc/
cat databend-meta.toml
log_dir = "/usr/local/databend/logs/_logs1"
metric_api_address = "0.0.0.0:28100"
admin_api_address = "0.0.0.0:28101"
grpc_api_address = "0.0.0.0:9191"
[raft_config]
id = 1
raft_dir ="/usr/local/databend/data/_meta1"
raft_api_port = 28103#172.16.16.12#
raft_listen_host = "172.16.16.12"#
raft_advertise_host = "172.16.16.12"
# Start up mode: singlenode cluster
single = true
[root@testsrv ~]# query 节点配置文件批改
cat databend-query-node-1.toml
[query]
max_active_sessions = 256
wait_timeout_mills = 5000
# For flight rpc. 写以后机器的 IP 和对应的端口号
flight_api_address = "本机 IP:9091"
# Databend Query http address.
# For admin RESET
API.http_api_address = "0.0.0.0:8081"
# Databend Query metrics RESET API.
metric_api_address = "0.0.0.0:7071"
# Databend Query MySQL Handler.
mysql_handler_host = "0.0.0.0"
mysql_handler_port = 3307
# Databend Query ClickHouse Handler.
clickhouse_handler_host = "0.0.0.0"
clickhouse_handler_port = 9001
# Databend Query HTTP Handler.
http_handler_host = "0.0.0.0"
http_handler_port = 8000
tenant_id = "test_tenant"
cluster_id = "test_cluster"
table_engine_memory_enabled = true
table_engine_csv_enabled = true
table_engine_parquet_enabled = true
database_engine_github_enabled = true
table_cache_enabled = true
table_memory_cache_mb_size = 1024
table_disk_cache_root = "/usr/local/databend/data/_cache"
table_disk_cache_mb_size = 10240
[log]
log_level = "DEBUG"
log_dir = "/usr/local/databend/logs/_logs"
[meta]
# To enable embedded meta-store, set meta_address to ""meta_embedded_dir ="/usr/local/databend/data/_meta_embedded_1"meta_address ="0.0.0.0:9191"meta_username ="root"meta_password ="root"
meta_client_timeout_in_second = 60
# Storage config.
[storage]storage_type = "s3"
# DISK storage.
[storage.disk]
data_path = "/usr/local/databend/data/stateless_test_data"
# S3 storage. If you want you s3 ,please storage type : s3
[storage.s3]
bucket="databend"
region="region"
endpoint_url="Ceph S3 的地址"
access_key_id="Ceph S3 的 key"
secret_access_key="Ceph S3 的 access"
# Azure storage
[storage.azure_storage_blob]
[root@testsrv ~]# #启动文件批改
/usr/local/databend/bin
[root@testsrv ~]#cat start.sh
ulimit -n 65535cd /usr/local/databend/nohup /usr/local/databend/bin/databend-meta --config-file=/usr/local/databend/etc/databend-meta.toml 2>&1 >meta.log &
sleep 3
nohup /usr/local/databend/bin/databend-query --config-file=/usr/local/databend/etc/databend-query-node-1.toml 2>&1 >query.log &
cd -
echo "Please usage: mysql -h127.0.0.1 -P3307 -uroot
第四步:启动 Databend
[root@testsrv ~]#
bash start.sh&
第五步:验证 Databend 并反对 Ceph
[root@testsrv ~]# mysql -h127.0.0.1 -P3307 -uroot #默认没明码次要看参数
执行 SQL'root'@127.0.0.1 18:59: [(none)]>
select * from system.configs;
显示失常的 ceph 地址和 key 等信息示意失常
s3.region
s3.endpoint_url
s3.access_key_id
s3.secret_access_key
s3.bucke
Databend 在数据归档中的优良体现
- 数据归档选型
线上的大量的历史数据,比方日志数据,交易流水,如果继续存在 MySQL 中,会占用大量的存储空间,对线上业务性能造成抖动。然而业务还有读取的需要,不能彻底删除,甚至还有肯定的剖析需要。
例如:业务想计算一下 2000 年某个月某个条件的总数等等,就要思考对数据进行定期归档,当初归档数据库类型的抉择也有很多,能够应用 pt-archiver 工具进行归档,或者利用 DBA 本人写的小程序进行归档。
咱们对于归档数据的抉择,首先要满足以下条件:
- 兼容 MySQL 协定,这样业务的改变最小。如果抉择其余的协定,业务改变较大。
- 高性能的压缩比,能够节俭存储老本。
- 有肯定的计算剖析能力。
那么在归档库的选型中就有几种能够参考:MySQL(独自归档集群)、Databend 等。
- 数据压缩比照
产生 2 亿 的数据别离导入到 MySQL、Databend 看一下数据的压缩状况。
物理大小 | |
---|---|
SQL | 88 G |
CSV | 84 G |
Databend | 8 G |
MySQL | 47 G |
其中 Databend 的压缩比看起来劣势还是很大的。
- 数据分析类型查问测试
次要测一下 MySQL、Databend 对于一些计算类型的 SQL 查问响应工夫。
环境形容:
服务器硬件配置:40 C,256 G,SSD 硬盘。
MySQL:Innodb buffer pool 设置 100 G,SSD 硬盘。
Databend:默认配置,但 S3 是机械硬盘。
select count(*) from ontime; | |
---|---|
执行工夫 | |
Databend-hdd | 0.02 sec |
Databend-ssd | 0.04sec |
MySQL | 4 min 9.05 sec |
select count(*),Year from ontime group by Year;(没索引) | |
---|---|
执行工夫 | |
Databend | 1.89 sec |
MySQL | 5 min 19.20 sec |
select count(*),Year from ontime group by Year;(year 索引) | |
---|---|
执行工夫 | |
Databend-ssd | 0.56 sec |
Databend-hdd | 1.89 sec |
MySQL | 2 min 46.72 sec |
测试论断:Databend 比照 MySQL 在进行剖析类型的 SQL 响应工夫上还是略有劣势的。\
- MySQL 协定兼容性
Databend 反对 MySQL 协定、Clickhouse 协定、HTTP 协定。应用 MySQL 程序基本上能够无缝兼容 Databend。
产品应用总结
- 归档方面:
在数据库归档上 Databend 绝对 MySQL 还是很有劣势的,比方数据压缩方面以及数据分析类型 SQL 查问方面。
且 Databend 能够应用机械硬盘,不须要太好的硬件就能跑出很好的成果。 如果大家有归档剖析场景的场景,也举荐大家尝试一下 Databend。单纯归档的话,老本能够降很多。如果前面须要计算了 , 还能够利用 Databend 优良的个性:比方能够轻松的扩大。
- 部署相干:
Databend 的部署和反对 Ceph 方面绝对简略,次要针对云原生,云数仓等场景,比照传统数据库更有劣势。
- Databend 高可用性:
Query 节点,属于无状态节点。只须要保障 Mate 也就是元数据不失落即可。能够通过多设置正本的形式。(集体想法,Meta 能够实时保留到存储层一份,做实时备份,只用于紧急复原应用。)
- 存储层:
云场景会保障 OSS 层的高可用。公有云环境就须要保障 Ceph、MinIo 的高可用行。私有化的场景在欠缺对 k8s 的反对,齐全能够做到开箱即用, 真正实现按需计费,按计算能力计费。
作者信息:田帅萌,高级 DBA
对于 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