Databend 在数据归档分析中的优秀表现

前言

本篇文章基于 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/deploy/oss

Databend 对 Ceph 的支持

Databend 部署

产品架构图
  • 架构简述:

Query 计算节点:用于协议的解析、SQL的计算下推。

Meta 元数据节点:用于存储元数据信息,存储在本地磁盘。

  • 存储节点支持:

公有云:AWS、阿里、腾讯等的 OSS 产品。

私有化支持:Minlo、Ceph 等等的 S3 协议。

  • 简述部署步骤:
  1. 下载最新的二进制包。
  2. 解压压缩包,并且创建文件夹。
  3. 修改配置文件。
  4. 启动。
  • 部署环境:

操作系统: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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,992评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,212评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,535评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,197评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,310评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,383评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,409评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,191评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,621评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,910评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,084评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,763评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,403评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,083评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,318评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,946评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,967评论 2 351

推荐阅读更多精彩内容