作者:顾荣、吴侗雨 2022-09-15 09:24:43
云计算 本文将介绍本团队在设计与实现 Raven 时遇到的问题、对应的解决方案、以及当前的初步研究成果。
公司主营业务:成都网站制作、成都做网站、外贸营销网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。成都创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。成都创新互联推出合肥免费做网站回馈大家。
公有云是一种为用户提供经济方便的计算资源的平台。随着云计算技术的快速发展,以及大数据查询需求的日益增加,很多公有云的云计算应用市场中,出现了越来越多云上 OLAP 引擎服务。为了能够根据自己的业务需求选择合适的 OLAP 引擎,并通过合适的配置使引擎在最佳状态运行,用户需要对当前使用的查询引擎性能进行评估。
当前 OLAP 引擎性能评估框架在云上部署使用时面临三个主要挑战:
针对上述问题,南京大学顾荣老师、吴侗雨博士等人与 Apache Kylin 社区团队联合研究,设计开发一套云上 OLAP 引擎查询性能评估框架,名为 Raven。
Raven 被设计来帮助用户回答一些 OLAP 引擎上云面临的实际而又重要的问题:
本文将介绍本团队在设计与实现 Raven 时遇到的问题、对应的解决方案、以及当前的初步研究成果。
OLAP 引擎查询性能评估框架适配云架构时,实际上是在适配云上的 PaaS、IaaS、SaaS 特性。具体而言,云服务器的很多功能都以服务的方式呈现给用户,用户只需要调用对应服务的接口,即可实现不同的目的,如云服务器创建、文件操作、性能指标获取、应用程序执行等。在文件操作中,由于云服务器采用计算存储分离的架构,一些数据可能需要通过服务从远程的云存储服务上拉取。
图 1:基于公有云平台的 Raven 性能评估框架
结合上述需求,Raven 的框架如图 1 所示。其执行步骤如下:
上述设计的优点在于:
实际使用时,用户的输入以一个.yaml 文件呈现,可仿照如下格式:
用户需要的云服务器数量、每台机器的配置、不同的引擎等,均可通过 JSON 文件配置。
传统的 OLAP 查询引擎通常采用固定的数据集和查询集,并执行一系列的查询,查看 OLAP 引擎的查询性能。然而,当前很多行业的工作负载正更加复杂。
Raven 使用了一种基于时间线的事件机制描述复杂的 OLAP 工作场景。该机制下,一个工作负载由多个阶段构成,一个阶段由多个事件构成。在时间线上,一个工作负载被描述为若干个阶段的顺序执行。每个阶段分为线上阶段和线下阶段两种:线上阶段执行实际的查询请求,线下阶段执行预计算等操作。事件是对工作负载中每一个原子执行单元的抽象,可以是查询请求、shell 命令,或用 Python 等编程语言编写的脚本。
图 2:Raven 工作负载的执行过程
Raven 的工作负载如图 2 所示。其执行步骤如下:
上述设计的优点在于:
举个例子,可以使用如下的 .yaml 配置文件,在 AWS 上启动一主四从的 EC2 集群,并部署 Presto 引擎,指定数据集为 SSB(SF=100)且工作负载满足泊松分布(λ=3.0),工作负载持续时间为 600 秒:
Cloud:
Properties:
Engine:
Testplan:
Properties:
Workload:
Parameters:
Raven 预置了一些常见工作负载供用户使用,如均匀分布、突发高并发分布等。
在性能评估方面,云上机器的一个特点是大小、配置可自定义调节。因此,如果只考虑查询性能,理论上可以通过租用大量的高性能设备提升性能。但是,这样也会造成云上计算成本飙升。因此,需要一套机制实现性能和成本的平衡和综合考虑。
Raven 的性能评估方法是高度自定义的,允许用户根据可以获取的参数指标,使用函数表达式组合起来,得到一个评估分数。
Raven 中可获取的参数指标主要有以下几类:
Raven 给出的评分是相对的,只能在相同模型的评分之间进行比较。性能评估得分是云上成本和云上开销的乘积,评分越低,OLAP 引擎的性能越好。云上开销可使用线性模型,对上述参数赋予权重计算;也可使用非线性模型,将上述参数代入到一个函数表达式中。
Raven 也为用户提供了一系列模板函数:
其中,PTO 表示性能评分,PoC 表示云上成本,ravgravg、qavgqavg 分别表示平均响应时间和平均执行时间,rmaxrmax、qmaxqmax 分别表示最大响应时间和最大执行时间,b 表示预算金额,q95%q95% 表示查询时间 95% 分位数。这里我们结合回顾下前文提出用户需要关注的几个际问题,不难看出,预算优先模型主要用于评估和回答:哪个 OLAP 引擎在云上运行的 IT 成本更低?速度优先模型、查询效率模型、查询阻塞模型主要用于评估和回答:在满足不同查询响应等约束的情况下,哪个 OLAP 引擎的云上运行成本更低?综合模型则是通过设置不同权重来综合考虑成本预算和查询响应效率的评估 OLAP 引擎的云上性能模型。
我们在亚马逊 AWS 上实现了 Raven 的上述设计,并使用该性能评估框架执行 OLAP 引擎,查看不同引擎的查询效果。
图 3:不同引擎在不同评分模型下,运行均匀查询 10 分钟的性能评分
图 4:在 Presto 和 Kylin 上运行突发高并发分布的性能评分
从图 3 中可以看出,运行均匀查询时,Athena 和 Kylin 是较好的解决方案。但是,使用不同模型会得到不同的评估结论。当综合考虑查询速度的云上成本时,由于 Athena 直接通过调用服务执行查询,因此云上成本较低,评分也更低。但是,当优先考虑速度时,由于 Kylin 使用预计算技术实现了高速查询,因此使用速度优先模型时,Kylin 的评分更低。
从图 4 可以看出,运行突发高并发分布时,若采用查询阻塞模型,随着同时输入的查询数量增加,Presto 的性能评分随查询数量增加线性增长;但是,Kylin 并未受到查询数量增加的影响,性能评分保持稳定。这是因为 Kylin 的预计算技术提升了计算效率,当查询大量涌入时,Kylin 能以更高的效率处理这些查询,减少查询在队列中的阻塞,使性能评分更为出色。当然,如果用户集中的查询数量不大,Presto 的性能评分更有优势,因为其没有预计算的相关开销。
未来的研究主要考虑以下方面:
名称栏目:云上OLAP引擎查询性能评估框架:设计与实现
网站路径:http://www.shufengxianlan.com/qtweb/news29/56429.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联