火山引擎ByteHouse:4000字总结,Serverless在OLAP领域应用的五点思考

更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群

作为云计算的下一个迭代,Serverless可以使开发者更专注于构建产品中的应用,而无需考虑底层堆栈问题。伴随着近年来相关技术成熟度的增加,市场对Serverless的接受程度也变得越来越高。可以说时至今日,Serverless已迈入了向成熟稳定方向发展的高速轨道。

作为一款火山引擎推出的云原生数据仓库,ByteHouse基于开源ClickHouse构建,并在字节跳动内外部场景的检验下,对OLAP引擎能力、性能、运维、架构进一步升级。除此之外,ByteHouse也在Serverless方向探索,基于cloud-native 云原生的理念构建了全新一代的数据仓库,架构上进行了三层解耦,期望在Serverless的加持下,提供更稳定、可靠、可信的分析服务,让开发人员时间精力从基础设施运维优化上解放,更聚焦在核心业务功能中。

本文来自于火山引擎ByteHouse产品负责人李群的分享,从场景选择、应用门槛、落地应用等5个方面,介绍Serverless在OLAP领域应用思考。

哪些应用场景适合选择Serverless架构?

在OLAP数据分析领域,我们先看哪些分析模式不适用于Serverless架构:

  1. 长任务,大Job:如果分析任务需要长时间运行(如超过20分钟),使用 Serverless 技术会受到限制。因为 Serverless 平台通常设置了最大运行时间的限制,超过限制时间会导致任务中断。

  2. 计算密集型:Serverless 技术通常适用于处理轻量级任务,而对于高计算密集型任务,需要更多计算资源,但行业上目前当前尚未有商用的Serverless 数据仓库能够提供超过2000 vcore的算力规模,而2000vcore折算成通用的物理机或裸金属,也不过是20台服务器的算力规模,往往一些中型的分析型系统的算力需求就远远超过这个规模。

  3. 高并发读写型:Serverless 技术特点是资源共享,对有高并发诉求的分析任务,很可能会出现性能瓶颈,一方面原因是共享资源池的规模上限,一方面是多租户对共享资源的争用。

  4. 负载模式稳定、波动少:Serverless 平台通常是按需运行,如果需要长时间运行的应用程序,则不适合使用 Serverless 技术。

总之,Serverless 技术适用于处理轻量级、耗时短、低并发型的分析业务,适用于负载模式有明显波动性特征的业务;也适用于管道型、中间件型的业务,如flink实时计算、kafka消息队列以及ETL任务执行等。

对于长时间运行、计算密集型、高并发读写、需要持续运行的分析业务则不适合使用 Serverless 技术。

应用Serverless技术存在哪些门槛

在OLAP领域,无论是经典的MPP架构向Serverless架构演进路径,还是基于Cloud-Native云原生理念全新构建的Serverless架构,都面临着同样的技术挑战:

1. 存算分离

把计算和存储进行解耦,是Serverless架构关键的第一步,但其中的技术挑战非常大,例如:如何保障性能少劣化甚至不下降;近数据计算(NDP)技术,把哪些算子下推到存储侧;分布式缓存技术如何提高缓存的命中率,这些目的都是尽可能减少计算和存储之间的网络开销。

此外,从25GE网络,到RDMA/RoCE等高速网络,再到下一步的内存型网络的融合,如何减少延迟、提高吞吐也是业界在持续解决网络通信层面的难点之一。

2. 计算无状态

计算侧通常还是采用经典的shared-nothing架构,具备良好的水平伸缩扩展性,但是计算侧的无状态化程度直接关系到弹性能力的优劣,这其中元数据的管理和同步、统计信息的自动化、优化器的智能化都是关键的技术难点。

形象一点描述,则是,在弹性过程中,背负东西越多,状态化越重,弹性效率就越低,用户体验越差。

3. 全局资源调度

存储资源池化、计算池化、网络池化,未来还会实现内存池化等,而且理想的 Serverless 架构需要能够自动地根据用户请求的负载进行智能的动态伸缩,在不需要时自动释放资源,业务浪涌时自动分配更多资源。以上对全局的资源调度能力提出了更高的要求。

4. 混合负载

在Serverless架构下,不同的租户在同一个计算资源池里提交各种类型的分析任务,如何给上层应用提供稳定可靠的SLA保障,混合负载管理的难度被进一步放大。

基于静态化的配额负载策略很难在Serverless的多租户模式下落地,需要逾越智能、动态的资源分配、限流、熔断等负载管理的技术难点。

如,“低效SQL耗尽资源”的老大难问题的影响半径在Serverless模式下会被放大,甚至是灾难性影响。

5. 资源池上限

Serverless模式下,多租户都在共用一个资源池,理想上这个资源池应该可以无限扩展,但当前只有存储侧基本上做到这一点,计算侧资源池还是受限于软件能力会有一个天花板上限,比如说目前几款主流云厂商的Serverless的数据仓库还没有超过2000vcpu的算力规模。如果再叠加多租户并发的因素,将导致当前的Serverless架构在OLAP分析领域还比较难以大规模推广使用。

此外,旨在进一步降低计算侧负载而引入新硬件并提供池化服务,比如FPGA资源池,也是当前云场景的发力方向。围绕Serverless架构下的全场景多层级的数据安全也是要考虑的关键问题。

这里简单给大家分享一下ByteHouse在这方面的一些思考和实践:

ByteHouse 基于cloud-native 云原生的理念构建了全新一代的数据仓库,架构上进行了三层解耦。由下向上看,

  1. 在存储层,ByteHouse 已经实现了Serverless化、弹性伸缩、容量无限扩展。为提升存算分离架构下的性能问题,在存储侧做了一系列的技术优化,比如

    针对HDFS语义,合并小文件减少文件数、改进的Hedge Read、Fast Switch Read等使得带宽仅增加10%的情况下,延迟减少3倍;

    针对S3语义,通过memory cache、独立IO线程池等技术提升数据的存取性能。

  2. 在网络通信上, 连接复用、RDMA、传输压缩等技术,大幅缓解了网络放大问题。

  3. 在中间的计算层,ByteHouse是通过virtual warehouse为用户提供弹性的计算服务,提供pay as you go的记账模式,为用户节省成本。

      在技术上,ByteHouse实现了无状态化,基于容器化部署、秒级弹性伸缩、秒级按需启停。ByteHouse增强的本地缓存技术,使得数据预热、预取更加智能高效,缓存数据的命中率也更高。

      在计算层,ByteHouse通过不同的VW来做负载隔离,如按读写进行隔离、按应用类别进行隔离,这种tenent-aware 租户感知的负载隔离模式虽然还不是Serverless模式,但是能在一定程度上满足用户的需求,也是向Serverless架构演进的路径之一。

  4. 在最上层的cloud services 云服务层,ByteHouse提供集中化的catalog 元数据服务、集群管理服务等。我们把元数据从计算层解耦出来,让计算层实现了无状态化,获得了秒级的弹性伸缩和启停能力。基于分布式 KV 的元数据存储,通过高效的part缓存技术,也进一步提升了元数据的访问性能。

如何看待可观测性和Serverless哲学相悖的问题?

随着Serverless的深入,人们发现Serverless架构下的问题定位比传统应用更困难。对此,一部分人认为应该支持可观测性的需求,另一部分人则认为可观测性与Serverless本质相悖,Serverless就是为了让用户不需要关心底层计算资源情况。

我认为,这个问题本质上是跟当前Serverless技术成熟度相关。举个例子,现在我们每天都在用水、用电,但是很少有人会再去关注怎么发电、如何配送,饮用水的处理环节等等,因为我们得到的用水、用电的服务标准是稳定的、可信的和可靠的,所以不再关注过程细节。

与此类似,Serverless 要实现的目标就是提供稳定、可靠和可信的分析服务,让开发人员不再把时间和精力花费在下层的基础设施和运维优化上,而是聚焦在业务功能的实现上面。

但是当前OLAP 数据分析领域的Serverless技术成熟度还远未达到这个目标,前面提到的一系列技术难点尚未完全解决,最简单的例子是如何解决困扰业界40多年的“低效SQL耗尽资源”的老大难问题,在 Serverless 模式下,账单跟资源用量紧密相关,账单上资源用量的合理性、可信性是客户当前的最大疑虑。

此外,通过日志记录、 跟踪监控、可视化指标等技术工具为用户提供过程中的可观测性,也是Serverless平台应该具备的能力,也能够增加用户对系统的信任感。

因此,两者并非相悖。我们相信会有一天Serverless会给用户带来标准、稳定、可靠、可信的分析服务,就像我们今天用水、用电一样。

落地Serverless,自研和云厂商方案如何选择?

21世纪最宝贵的还是人才。对企业来说,每一笔投入的目标都是围绕着如何去获取更深入本质的分析洞察、更灵敏的风控感知和预警、更快速的用户增长,所以说,企业的IT更多的是站在开发的视角去看待投入决策,使能业务,并能更近一步,让IT从传统的成本中心向赋能中心、盈利中心去演进,人才储备的重点是技术开发方向。

而云厂商的商业逻辑是为用户提供标准的云计算技术服务,通过持续、高强度的研发投入,为用户提供差异化的云服务,人才储备的重点是技术研发方向。开发和研发,仅一字之差,但含义迥异。

特别是对于OLAP 领域的Serverless技术实现来说,涉及到存储、网络、操作系统、数据库、AI等IT领域几乎全栈的技术点,更需要厂商做持续的、高成本的研发投入,而且这些投入短期内难见市场回报,一旦中途停顿则意味着前期的投入全都“打水漂”。

所以,对中小企业来说,还是建议在OLAP 领域的Serverless技术投入上保持慎重态度,对Serverless的技术研发、演进迭代还是交给技术人才储备更雄厚、技术投入也更专业的大型云厂商来做。

Serverless距离大规模应用还有多远?

在OLAP数据分析领域,虽然已经有几款商用的Serverless架构的数据仓库,但是前面提到的技术难点依然存在、尚未逾越,并且期提供的算力规模也很难支撑中大型规模的数据仓库或者分析平台的需求。

但是,Serverless的架构理念还是面向未来的,而且技术挑战也会随着时间的推移会有更好的应对方案和措施,并且当前也能够在部分中小型分析负载场景中适用和推广。

最后想提一点,影响Serverless大规模应用的因素,除了技术层面持续演进和迭代之外,另外一个非常关键的就是Serverless服务的标准化,尤其是对OLAP 分析领域。Serverless的初衷是让用户聚焦在业务实现上,但没有一个标准化的规范会导致用户被平台锁定,无法实现应用的平移、无缝搬迁,比如,用户无法把基于MySQL的应用无缝搬迁到PostgreSQL,因为下面的数据库是Serverless了,但是与业务逻辑进行交互的接口还没有标准化。因此,Serverless的规模化应用,还需要有与之配套的标准和规范体系。

总而言之,Serverless架构已经越来越受到欢迎,随着云计算和Serverless技术的进一步发展和完善,Serverless架构将在未来成为更多大规模应用的首选架构之一,用户会像今天用水、用电一样,方便、快捷地享用Serverless化的OLAP 数据分析服务。

点击跳转ByteHouse了解更多

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据库系统概述之数据库分类

你用过或者了解的数据库都有哪些? 数据库最新统计数量约404个(https://db-engines.com/en/ranking) 排名前20的数据库管理系统: 未完待续,喜欢的点赞收藏转发,如有疑问,点击链接加入群聊【信创…

安装虚拟机

Windows Windows 2008 Windows 2012 Windows 2016 Linux 系统(centos redhat ubuntu 银河麒麟 中标麒麟 统信UOS) 安装虚拟机 右键新建虚拟机 选择自定义下一步 下一步 稍后安装操作系统,选择下一步 选择linux 选…

达梦数据库常用参数查询

字符集 字符是各种文字和符号的统称,包括各个国家文字、标点符号、表情、数字等等。 字符集 就是一系列字符的集合。字符集的种类较多,每个字符集可以表示的字符范围通常不同,就比如说有些字符集是无法表示汉字的。 常见的字符集有 ASCII、G…

1亿美元投资!加拿大量子公司Photonic告别隐身状态

​(图片来源:网络) 至今加拿大量子公司Photonic总融资额已达1.4亿美元,将推动可扩展、容错的量子计算和网络平台的快速开发。 官宣完成1亿美元新一轮融资 Photonic总部位于加拿大不列颠哥伦比亚省温哥华市,是一家基…

云渲染的“公”“私”技术!

当下云渲染技术主要从以下两个方面进行赋能: 一、云渲染公有化结构--“云计算” 云渲染公有化结构是指三维应用云渲染服务,以自研云流送技术为核心,利用云端海量 GPU 算力资源处理繁重的图像渲染计算,并串流同步输出到终端设备从…

[C/C++]数据结构 链表OJ题:随机链表的复制

题目描述: 给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成,其中每个新节点的值都设为其对应的原节点的值。新…

《QT从基础到进阶·三十四》qobject_cast动态强制转换

qobject_cast()对QObject类执行动态强制转换。 qobject_cast()函数的行为类似于标准c dynamic_cast(),但执行速度比dynamic_cast 更快,且不需要C的RTTI 的支持,但qobject_cast 仅适用于QObject 及其派生类。 如果对象的类型正确(在运行时确定…

人工智能基础_机器学习039_sigmoid函数_逻辑回归_逻辑斯蒂回归_分类神器_代码实现逻辑回归图---人工智能工作笔记0079

逻辑斯蒂回归(Logistic Regression)是一种常用的分类算法,其基本思想是通过拟合一个逻辑斯蒂函数来预测样本所属的类别。它广泛应用于各个领域,如医学、金融、市场营销等,具有较好的解释性和可解释性。在逻辑斯蒂回归中,我们通常使用的是二分类问题,即样本只属于两个类别…

Unity 2021 LTS / Unity 2022 LTS New Shader Graph Node 参考样本

Shader Graph团队很高兴地宣布发布新的节点参考样本,现在可用于2021 LTS, 2022 LTS和未来的版本。 节点参考样本是超过140个Shader图形资源的集合。您可以将这些图用作参考,以了解每个节点的作用及其工作原理,而不是在项目中使用这些图。每个…

XD6500S— LoRa SIP模块芯片 集成了射频前端和LoRa射频收发器SX1262 应用温湿度传感器 资产跟踪等

XD6500S是一系列LoRa SIP模块,集成了射频前端和LoRa射频收发器SX1262系列,支持LoRa和FSK调制。 收发器SX1262系列,支持LoRa和FSK调制。LoRa技术是一种扩频协议,针对LPWAN 应用的低数据速率、超远距离和超低功耗通信进行了优化。通…

YOLO 施工安全帽目标检测模型

在线工具推荐: 三维数字孪生场景工具 - GLTF/GLB在线编辑器 - Three.js AI自动纹理化开发 - YOLO 虚幻合成数据生成器 - 3D模型在线转换 - 3D模型预览图生成服务 头盔自动检测基本上是一个物体检测问题,可以使用深度学习和基于计算机视觉的方法来…

6.1810: Operating System Engineering <LEC 1>

课程链接:6.1810 / Fall 2023 一、本节任务 实验环境: 二、introduction and examples 2.1 open(), read(), write(), close(), dup() 使用 open 打开或创建文件,得到文件描述符 fd,再对 fd 进行 read 或者 write 操作。每个进…

神器推荐丨不可错过的10个3D模型素材库

如果你是一位设计师,那么你一定知道3D模型素材库对你的工作有着不可或缺的重要性。不论是创新的产品设计,惊艳的视觉特效,还是生动的角色建模,无不需要从各类3D模型素材库中选择适合的素材,来完成你的设计。那么&#…

《C++避坑神器·十六》函数默认参数和占位参数

C中函数是可以给默认参数的 注意点: (1)一旦某个参数设置为默认参数,那跟着后面的所有参数都必须设置默认参数 (2)函数的声明和定义只能有一个可以设置默认参数,两个都设置会报错 int f1(int a…

站群服务器 CentOS 搭建socks5多IP代理服务器详细教程,12个步骤教会你!

准备工作 首先要保证服务上能正常使用wget tar make vim,如果正常就直接进入【第一步】 #安装wget的命令 yum install wget#安装tar解压工具 yum install -y tar#安装make的命令 yum groupinstall "Development Tools"#安装vim的命令 yum install…

PDF/X、PDF/A、PDF/E:有什么区别,为什么有这么多格式?

PDF 是一种通用文件格式,允许用户演示和共享文档,无论软件、硬件或操作系统如何。多年来,已经创建了多种 PDF 子类型来满足各个行业的不同需求。让我们看看一些最流行的格式:PDF/X、PDF/A 和 PDF/E。 FastReport .net下载 PDF/X …

蓝桥杯每日一题2023.11.16

蓝桥杯大赛历届真题 - C 语言 B 组 - 蓝桥云课 (lanqiao.cn) 题目描述 对于此代码&#xff0c; 注释解释如下&#xff1a;答案&#xff1a;f(a,k1,m-j,b)&#xff1b; 在这里插入代码片#include <stdio.h> #define N 6 #define M 5 #define BUF 1024 void f(int a[], in…

软件外包开发设计文档

软件设计文档是在软件开发过程中编写的一个关键文档&#xff0c;用于记录系统的设计和结构。设计文档通常包含以下内容&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。 1.引言&#xff08;Introductio…

Skywalking流程分析_8(拦截器插件的加载)

前言 在之前的文章中我们将&#xff0c;静态方法、构造方法、实例方法的增强逻辑都分析完毕&#xff0c;但在增强前&#xff0c;对于拦截类的加载是至关重要的&#xff0c;下面我们就来详细的分析 增强插件的加载 静态方法增强前的加载 //clazz 要修改的字节码的原生类 Sta…

Elasticsearch:运用向量搜索通过图像搜索找到你的小狗

作者&#xff1a;ALEX SALGADO 你是否曾经遇到过这样的情况&#xff1a;你在街上发现了一只丢失的小狗&#xff0c;但不知道它是否有主人&#xff1f; 了解如何使用向量搜索或图像搜索来做到这一点。 通过图像搜索找到你的小狗 您是否曾经遇到过这样的情况&#xff1a;你在街…