Databend 的算力可扩展性

作者:尚卓燃(PsiACE)

澳门科技大学在读硕士,Databend 研发工程师实习生

Apache OpenDAL(Incubating) Committer

PsiACE (Chojan Shang) · GitHub

对于大规模分布式数据处理系统,为了更好应对数据、流量、和复杂性的增长,需要对系统的可扩展性加以重视。可拓展性代表一种预期,即在现有软件和硬件水平无法满足工作负载的时候,通过扩展系统可以进一步满足工作负载的需要。

Databend 是一款现代化的云原生数据仓库,旨在通过弹性和可扩展的架构提供高效的数据分析能力。Databend 具有高效的资源利用能力和分布式扩展能力,可以解决传统数据仓库在处理大数据集时遇到的性能和可扩展性问题。

Databend Cloud 基于开源的 Databend 发展而来,能够帮助您托管 Databend 实例,并提供 Serverless 的部署模式,不仅可以降低成本,还可以提高系统的弹性和可靠性。Databend Cloud 将廉价的云存储作为主要存储,并提供快捷高效的分析性能,已帮助很多客户实现了数仓、行为日志等场景的降本增效,并广受好评。通过使用 Databend Cloud,用户可以轻松构建低成本、高性能的数据仓库,并专注于分析而非基础架构的维护。

可扩展性概念与因素

系统的可扩展性涉及到多个维度,除了系统本身的管理的资源、软件设计的优化和数据与计算的有效管理之外,还包括系统需要处理的数据量、用户数量、查询复杂性等。

可扩展性与系统性能

线性可扩展性意味着资源的增加能够直接转化为系统性能的提升。线性可扩展性隐含的保证是当工作负载扩大一倍时,系统的计算资源(如CPU、内存、存储等)也扩大一倍,算力变为原来的两倍,从而获得与之前相当的处理速度。 

可扩展性背后的数学

但是,除非系统完全无状态,否则只能将其扩展到通用可扩展性定律(Universal Scalibility Law,红色线条)所描述的程度,之后即便添加更多资源,最终也只会因为并发、争用和相关性延迟导致系统整体性能降低。

即使在几乎不存在相关性延迟并且充分并行化的最佳情况下,最终也会受到阿姆达尔定律(Amdahl’ Law,绿色线条)的限制,这仍然无法达到线性可扩展性。

毫无疑问线性可扩展性(蓝色线条)只是理想情况下的表述。 在 Contention, Coherency, and Math Behind Software(上面图片的出处)一文中介绍了可扩展性背后的一些数学,也推荐大家阅读。

水平扩展和垂直扩展

两种常见的扩展方式是垂直扩展和水平扩展:

  • 垂直扩展(纵向扩展)则是提高单个节点的能力,如升级硬件或改善系统架构。
  • 水平扩展(横向扩展)指的是增加更多节点到现有的系统集群中,例如添加更多的服务器。

垂直扩展是改善系统性能的一个有效方式,但是垂直扩展面临着一个致命不足:单机性能总是有极限的。由于单机往往不能胜任大数据分析的需要,所以相关系统通常会强调架构各层的水平可扩展性以及水平扩展带来的性能增长。

Databend 的架构可扩展性

Databend 的架构设计考虑了可扩展性的多个方面,使其在云环境中能够灵活地扩展资源和处理能力。

Share-Nothing V.S. Share-Storage

传统数仓往往采用 Share-Nothing 架构,存储、计算一体化设计,弹性相对较弱。而且由于调度上采用资源固定(Fixed-Set)式调度策略,资源控制粒度粗,也会带来更多的成本消耗。Databend 使用共享存储架构(Share-Storage),底层可以使用对象存储,真正做到存储、计算分离,资源控制粒度更细。计算节点可以根据需求弹性扩展,而不受存储容量的限制。

Databend 架构全景图

得益于列式存储模型和向量化计算,Databend 可以充分利用现代硬件系统的潜力;此外,Databend 还对数据存储格式、数据缓存、和系统吞吐量进行了充分优化,以达到性能的最佳释放。

由于采用共享存储的架构,并且 Query 节点采用无状态设计,只在 Meta 节点保留必要的状态信息,使得 Query 节点能够轻松支持实时弹性扩容和缩容以及资源按需(Workload-Based)式调度。计算资源可以根据实际的工作负载自动扩展,提供按需计算能力,这进一步提高了系统的可扩展性和资源的使用效率。

### 性能评估:Databend Cloud 的算力可扩展性​

为了评估 Databend 的性能和可扩展性,可以运行 TPC-H 基准测试。TPC-H是一套针对数据库决策支持能力的测试基准,通过模拟数据库中与业务相关的复杂查询和并行的数据修改操作考察数据库的综合处理能力。

通过在 Databend Cloud上针对不同计算集群规模进行 TPC-H 查询的性能测试,我们可以观察到系统扩展资源时的性能变化。这些结果可以帮助我们了解在增加计算节点(水平扩展)和/或升级现有节点(垂直扩展)时,Databend 的查询处理能力如何改变。

使用 BendSQL 执行 TPC-H Q1

下面的数据展现了 Databend Cloud 上不同规模实例在执行 TPC-H 测试 Q1 时的性能变化。其中 XSmall 和 Small 都是单计算实例,对应垂直扩展模型;而从 Small 到 Large 的计算实例数量不断增长,对应水平扩展模型。

Instance TypevCPUsCompute InstancesRows Read (Avg)Time (Avg)Rows ProcessedData ProcessedRows/s (Avg)Data/s (Avg)
XSmall81414.109 sec591.6 million45.18 GiB41.93 million3.20 GiB
XSmall81413.676 sec591.6 million45.18 GiB43.26 million3.30 GiB
XSmall81413.799 sec591.6 million45.18 GiB42.87 million3.27 GiB
Small161413.241 sec591.6 million45.18 GiB44.68 million3.41 GiB
Small161411.571 sec591.6 million45.18 GiB51.13 million3.90 GiB
Small161411.734 sec591.6 million45.18 GiB50.42 million3.85 GiB
Medium32249.392 sec591.6 million45.18 GiB62.99 million4.81 GiB
Medium32248.279 sec591.6 million45.18 GiB71.46 million5.46 GiB
Medium32248.341 sec591.6 million45.18 GiB70.93 million5.42 GiB
Large64448.536 sec591.6 million45.18 GiB69.31 million5.29 GiB
Large64447.096 sec591.6 million45.18 GiB83.37 million6.37 GiB
Large64447.841 sec591.6 million45.18 GiB75.45 million5.76 GiB
XLarge128847.123 sec591.6 million45.18 GiB83.05 million6.34 GiB
XLarge128845.753 sec591.6 million45.18 GiB102.83 million7.85 GiB
XLarge128845.767 sec591.6 million45.18 GiB102.59 million7.83 GiB

可以看到,随着系统规模的扩大,查询响应时间缩短,而处理吞吐量也随之增加。这些测试结果直观展示了不同规模的 Databend Cloud 在同一工作负载下的处理能力变化。

Databend 的设计哲学、架构以及 Databend Cloud 的性能表现,体现了其作为一款现代大规模分布式数据处理系统的算力可扩展性。

除了私有化部署 Databend 和使用 Databend Cloud 之外,我们也提供混合云支持。可以帮助用户实现适应规模和成本的算力最大化调度,为未来数据处理需求的多样性和不断增长的挑战提供最佳应对方案。

关于 Databend

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

👨‍💻‍ Databend Cloud:https://databend.cn

📖 Databend 文档:Databend - The Future of Cloud Data Analytics. | Databend

💻 Wechat:Databend

✨ GitHub:GitHub - datafuselabs/databend: Modern alternative to Snowflake. Cost-effective and simple for massive-scale analytics. Cloud: https://databend.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/321908.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于无人机上层控制的PID算法的思考

一、前言 背景介绍:PID虽然出现了很多年,但是目前工业界还是把PID作为主流的控制算法(尽管学术界有很多非常时尚的控制算法,包括鲁邦控制,神经网络控制等等),PID的算法在于其不需要对系统进行复…

Python Selenium如何下载网页中的图片到本地?(Base64编码的图片下载)

前言: 在网页上,图片有时会以Base64编码的形式嵌入在HTML中,而不是作为单独的文件提供。这种方式的优点是可以减少HTTP请求的数量,因为图片数据直接包含在HTML中,不需要额外的请求来获取图片文件。这对于小图片…

双击shutdown.bat关闭Tomcat报错:未设置关闭端口~

你们好,我是金金金。 场景 当我startup.bat启动tomcat之后,然后双击shutdown.bat关闭,结果报错了~ 排查 看报错信息很明显了,未配置关闭端口,突然想起来了我在安装的时候都选的是默认的配置,我还记得有这…

鸿蒙南向开发—OpenHarmony技术编译构建框架

概述 OpenHarmony编译子系统是以GN和Ninja构建为基座,对构建和配置粒度进行部件化抽象、对内建模块进行功能增强、对业务模块进行功能扩展的系统,该系统提供以下基本功能: 以部件为最小粒度拼装产品和独立编译。支持轻量、小型、标准三种系…

pandas保存style到excel文件中

更多pandas style用法请参考:https://pandas.liuzaoqi.com/doc/chapter8/style.html 示例程序 import numpy as np import pandas as pd# 示例数据 dataframe pd.DataFrame({"date": pd.date_range("2024-01-01", "2024-02-01"),&…

软件测试/测试开发丨函数式编程学习笔记

一.高阶函数 高阶函数:既然变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。 1. map/reduce map() : 函数接收两个参数,一个是函数,一个是…

2023年工作初体验

23年终于正式入职,参与了正式上线的电商平台、crm平台等项目的研发,公司规模较小,气氛融洽,没有任何勾心斗角、末位淘汰,几乎没什么压力。虽然是我的第一家公司,但实际是个适合养老的公司(笑 总…

海康威视摄像头+服务器+录像机配置校园围墙安全侦测区域入侵侦测+越界侦测.docx

一、适用场景 1、校园内,防止课外时间翻越围墙到校外、从校外翻越围墙到校内; 2、通过服务器摄像头的侦测功能及时抓图保存,为不安全因素提供数字化依据; 3、网络录像机保存监控视频,服务器保存抓拍到的入侵与越界&am…

[Javaweb/LayUI/上机考试作业/开源]学生/图书/课程/仓库等管理系统六合一基础功能通用模板

展示 考试要求 给定用户表和六张图书/教师/顾客/仓库....的表(随机给每人抽选),要求实现用户登录注册,异步更新,对物品增删改查,精确/模糊查询等。 环境 tomcat 9 mysql 8 java 17 项目结构 项目类图 写前…

功能问题:如何限制同一账号只能在一处登录?

大家好,我是大澈! 本文约1200字,整篇阅读大约需要2分钟。 感谢关注微信公众号:“程序员大澈”,免费领取"面试礼包"一份,然后免费加入问答群,从此让解决问题的你不再孤单&#xff01…

【Linux】常用的基本命令指令②

前言:前面我们学习了Linux的部分指令,今天我们将接着上次的部分继续将Linux剩余的基本指令. 💖 博主CSDN主页:卫卫卫的个人主页 💞 👉 专栏分类:Linux的学习 👈 💯代码仓库:卫卫周大胖的学习日记…

STM32 基础知识(探索者开发板)--146讲 IIC

IIC特点: 同步串行半双工通信总线 IIC有一个弱上拉电阻,在主机和从机都没有传输数据下拉时,总线会自动上拉 SCL在低电平期间,改变SDA的值来上传数据,方便SCL电平上升时进行数据读取 SCL在高电平期间,不能…