阿里云 EMR Serverless StarRocks OLAP 数据分析场景解析

本文涉及的产品
EMR Serverless StarRocks,5000CU*H 48000GB*H
简介: 阿里云 E-MapReduce Serverless StarRocks 版是阿里云提供的 Serverless StarRocks 全托管服务,提供高性能、全场景、极速统一的数据分析体验,具备开箱即用、弹性扩展、监控管理、慢 SQL 诊断分析等全生命周期能力。内核 100% 兼容 StarRocks,性能比传统 OLAP 引擎提升 3-5 倍,助力企业高效构建大数据应用。本篇文章对阿里云EMR Serverless StarRocks OLAP 数据分析场景进行解析、存算分离架构升级以及 Trino 兼容,无缝替换介绍。

内容导读 :


主题:EMR StarRocks 线上公开课第3期 - EMR Serverless StarRocks OLAP 数据分析场景解析

讲师:周康(榆舟)阿里云高级技术专家&开源大数据OLAP引擎团队负责人、StarRocks TSC Member  


内容框架:

  • StarRocks 背景介绍
  • StarRocks OLAP 分析核心特性
  • StarRocks 3.X - OLAP 分析新范式
  • 阿里云 EMR Serverless StarRocks


直播回放链接:

https://developer.aliyun.com/live/254055


一、StarRocks 背景介绍

1、StarRocks 定位:极速统一的数据分析

在过去十年,用户对 OLAP 实时分析的需求日益增长,为满足需求诞生了 ClickHouse、Druid、Kylin、Presto/Trino、Impala、Kudu 等多种数据分析产品。随着产品增加,带来的困扰也很明显,应该选择什么产品?不同场景选择不同的产品,导致运维成本提高。在这个背景下,StarRocks 应运而生,其目标是实现通过一个产品满足用户所有数据分析需求,从而降低用户的选择成本和维护成本。

幻灯片4.PNG


2、StarRocks 应用场景

StarRocks 能满足以下数据分析场景

首先根据过去服务阿里云上数百企业客户的经验,StarRocks 目前能应用于 OLAP 及绝大部分的分析场景,包括面向用户的报表分析,面向经营的报表、用户画像、数据建仓、订单分析以及自助的 ad-hoc 分析。

幻灯片5.PNG

3、StarRocks 社区快速迭代

在服务这些客户的过程中,社区通过用户场景的打磨,在过去几年迅速发展。从1.x版本支持向量化引擎、CBO的核心能力,到3.x版本开始真正实现存量分离、支持更大规模的分析场景。1.x和2.x都是在湖仓一体的架构上去演进和迭代的。

幻灯片6.PNG


二、StarRocks OLAP 分析核心特性

1、OLAP 分析场景面临的挑战

首先是为满足通用OLAP分析场景的需求会面临挑战。对于一些面向用户或经营报表分析方向的业务场景,大部分场景存在性能不足的问题;对于实时场景,很多产品存在数据新鲜度低的问题;对于面向业务的场景并发能力又会成为瓶颈;最后不能灵活建模的问题也经常困扰大家。接下来是StarRocks解决办法。

幻灯片8.PNG


2、性能:全面向量化

3.x版本以前,StarRocks做了一些关键工作。在性能方面,StarRocks实现全面向量化能力。通过向量化能力,相较于传统的火山模型,能够实现按列存储和计算、减少了虚函数的调用对CPU缓存更加友好还能更好地利用SIMD指令。基于向量化能力,常用的FilterAGG以及join的算子的性能都有数倍的提升。

幻灯片9.PNG


3、性能:全新CBO

向量化能力能提升单机计算引擎的性能,为提升多表关联查询的能力,StarRocks实现了全新CBO优化器。StarRocks中,一个SQL语句进入系统,会先后经过Parser、Analyzer、Transformer、Rewriter以及Optimizer阶段。其中Transformer、Rewriter阶段可以实现一系列固定的优化规则,如常量折叠等。Optimizer阶段,可选择的执行计划很多,比如有十个,而在此阶段就是基于成本Memo为中心的思路,高效选择推导出新的规划。同时在查询规划的集合里选择出相对最优的执行计划,从而能最大化地降低执行阶段的网络和CPU等开销。

幻灯片10.PNG


4、性能:现代物化视图

在实际支持业务发展过程中,发现通过向量化和CBO的能力,大部分用户查询都有明显提升但对部分场景直接裸查原始数据可能还是存在性能无法满足预期的情况。所以StarRocks内部也实现了物化视图的能力。物化视图能通过自动构建自动刷新以及自动改写的能力,让用户在不修改业务SQL语句的前提下,实现透明加速。

幻灯片11.PNG


5、实时:存储引擎

向量化、CBO、物化视图这几个关键特性的落地,能够极大解决OLAP分析性能不足的问题。不过,仅优化查询引擎的性能还是不够,实际用户还存在对于数据时效性的需求比如金融保险类业务。在阿里云上,StarRocks也有很多类似业务的客户他们对于数据时效性要求非常高。


可通过以下方式满足这类需求:通常来说,为满足实时更新的需求或方案,Merge-on-read方案特点是写入性能较高但查询时,如果有大量的历史数据,就会影响查询效率。Copy-on-write方案特点是写入吞吐低,查询性能相对Merge-on-read会好一点。而Delta store的方案类似于kudu索引维护的成本会比较高。StarRocks选择前三种方案,而是选择了一套基于Delete+insert方案来实现实时更新的存储引擎。这套方案常见的SQLserver以及阿里云自研的hologras都有类似的思想。通过Delete-and-insert方案,引入primary index,delete BitMap, 能够非常好的实现高效读写的实时更新引擎。

幻灯片12.PNG


6、高并发:Pipeline引擎

在实际客户场景中,还有部分场景对并发查询和并发场景的性能有要求。


为此StarRocks实现了一套用户态调度的pipeline执行引擎。如下面两张图的对比。左边是非pipeline模式下的查询执行的实际数据流情况。在非pipeline模式下Fragment下发到执行节点后会独占整个CPU 如果有IO阀门或其他阻塞操作,会导致CPU没法高效地给其他查询使用。而右边pipeline引擎的设计,核心思想是通过解耦,IO调度和计算调度,同时把Fragment力度拆分更细,是用pipeline以及pipeline driver做拆分。这样能最大化提升CPU的利用率。

幻灯片13.PNG


7、灵活:分布式 Join

最后一个关键特性是分布式Join。过去一些高性能引擎不支持灵活Join,给业务方造成很大的使用困扰。前面讲遇到的四大痛点里也提到:业务方对灵活分析的需求是非常旺盛的。


StarRocks通过内置的分布式Join能够在前面提到的向量化CBO等优化技术上提供高效灵活的分析体验。

幻灯片14.PNG


三、StarRocks 3.X - OLAP 分析新范式

前面讲的是StarRocks在1.x到2.x版本为实现OLAP分析的技术统一所做的关键工作。通过这些特性,StarRocks在2.x版本性能方面已经满足了很多用户的业务需求,解决了很多痛点。相信大家在实际使用或了解社区发展的过程中,也能感受到StarRocks在蓬勃发展。在阿里云的客户实践来看,2.x版本以前还有两个需求没法很好的满足。


1、存算分离架构升级

第一是成本,在存算一体架构下,大部分的部署需求都是需要本地的SSD磁盘,或是阿里云的ESSD, 当数据规模增长到几百T那存储成本就会占比较高。第二,EMR在做数据湖生态,发现很多用户,在湖仓一体的OLAP场景下达到高性能计算引擎带来的收益后,希望StarRocks高性能分析的能力能够应用到数据数据的分析上。


针对这两类需求,在StarRocks3.x之后,推出了存算分离的架构高效的湖仓分析方案。存算分离架构相对于存算一体架构最大的变化可看下图,是存储引擎部分。


存算一体在BE可以看到角色变化,名字由BE变成了CN,这变化是存算一体的数据都是按分区存储在BE的本地磁盘或云盘上。而演进到存算分离架构之后,所有原始数据都会在OSS或是文件系统HDFS上有一部分数据。CN主要负责计算层,这样它有一些弹性能力。这有一个较大的问题,以前查询是访问本地的SSD,性能能够得到保证,数据在OSS上后查询性能能否保证。在存算分离架构下,最核心的是在CN节点可以增加一些磁盘热数据的缓存这也能实现热数据的查询,性能不会有明显降低。目前看,存算分离架构是适合有一些冷热特性的业务场景。

幻灯片16.PNG


2、存算分离收益

对存算分离架构的收益也做了一些总结,整体上可以分为几块。


第一,最大的收益是成本,在存算一体架构下,为保证数据的可靠性,必须是三副本的数据。存算分离后,只需对象的一副本,或再加一些热数据缓存,存储的数据量以及存储介质本身的成本都有明显降低。同时,因为存储已放到OSS,可把计算资源缩容,从而达到计算层面成本的明显降低。


第二,数据的可靠性。StarRocks在存算一体情况下,可能因为部分原因导致副本丢失或源数据损坏,数据就需要重新导入。有了存算分离架构后,数据能够落到OSS上OSS本身的可用性非常高,所以数据的可靠性也会明显提升


第三比较大的收益是资源隔离问题。2.5版本以前,很多客户反馈集群大的查询会影响其他业务的导入或查询。2.3开始,整个社区都一起推resource group的解决方案,到2.42.5才默认开启。实际上resource group能解决的隔离层面问题相对来说有限。IOCPU等都是一些软隔离机制,无法完全避免业务间的相互影响。所以在存分离上推的方案是Multi-Warehouse通过多 warehouse能够实现数据共享,计算负载如说导入、AD-hoc的报表类查询通过不同的Warehouse,实现物理隔离。同时, workload内部可以根据需求进行扩展。在和社区共同打磨存算分离架构的情况下,目前达到了热数据、查询的性能能够和存算一体持平。在冷查方面也做了很多的IO相关的优化。本质上在对象存储上做存算分离,核心目标是怎么利用对象存储的带宽优势,降低查询延时。对象存储相对于本地SSD不那么好的点就是延时会高,但吞吐方面好很多。所以我们也做了很多feature,包括IO合并并行化等。相对于最早一年以前的版本,有非常明显的冷差性能的提升。

幻灯片17.PNG


3、极速统一的湖仓分析

在过去两年我们看到一个趋势,即用户对StarRocks的查询性能越来越认可。进而很多用户希望把查询加速应用到海量的数据湖的数据分析上。为满足这个需求,StarRocks实现了统一Catalog 机制。2.32.4开始,我们社区共创已经做了很多分析相关的工作。最早是基于外表,如果有几百张表需在hive表/数据库里需要创建的维护成本较高所以推出了catalog机制。但真正推数据湖分析场景会基于3.x 3.x版本后在DLA这块的block cache能力以及native Parquet Reader、ORC Reader 的优化。外表物化视图、catalog机制等3.x版本都有很大提升。对于用户数据需求,我们建议并引导他使用3.x版本。StarRocks内置catalog机制,内表有internal catalog实现,外表可以有这种JDBCpaimon创建好catalog后,可以直接对外表分析,甚至可做内外表联合的查询分析

幻灯片18.PNG


4、Trino兼容,无缝替换

在数据湖分析引擎领域,目前流行的引擎是TrinoStarRocks为能更好的实现湖仓分析的统一,内置Trino语法,用户能非常方便的实现业务迁移。

幻灯片19.PNG


4、极致的湖仓分析性能

迁移到StarRocks带来最大的收益是查询性能明显的提升。如果裸查OSSStarRocks相对于Trino三倍的提升。在3.13.2版本以后,在block cache也达到了生产可用的状态。如果查询数据能够命中缓存,缓存里数据整体查询效率相对于直接裸查OSS有几倍的提升。如果性能依旧无法完全满足需求,还可通过建物化视图把湖上的数据自动同步为一个内表数据。这样还能用到很多类似StarRocks本身的colocate 以及更完备的统计信息等能力。使整体有着数倍的提升。

幻灯片20.PNG


四、阿里云EMRServerlessStarRocks

前面整体上介绍StarRocks最早在支持这个产品时遇到的一些OLAP 分析痛点,为解决这些痛点,从存算一体做了哪些关键的特性主要包括CBO、向量化、物化视图等。

随着服务客户越来越多,存算分离、数据湖分析、平替Trino,核心逻辑是基于StarRocks本身引擎的能力非常强大用户也希望能解决更多的问题,也存在一些痛点。所以从最早支持向量化、CBO到实时存储引擎PK表,演变到存算分离架构。StarRocks内核在支撑过去几年客户的整体需求做的一些关键演进。在阿里云EMRServerlessStarRocks简单介绍后续的产品方向。


过去已在产品Serverless形态上面做了很多优化,以及企业级的特性。未来,还会继续在下面三种形态做更多的工作。

首先是存算一体,这部分比较重点的有两个方向,一是性能优化,在实际客户场景下,也遇到一些并发性能的问题,还有提升空间,部分查询Join、runtime filter都有一些潜在的优化空间这是我们持续优化的工作方向。对于存量的用户来说,在存算一体形态下,能方便的享受到这些优化。Serverless形态下升级版本比较方便。第二,有很多客户反馈,对于StarRocks之间基于flink数据同步数据备份恢复能力有更方便更企业级的解决方案所以重点做Change Data Feed

第二个形态是存算分离我们会持续在IO优化上投入。基于对象存储做存算分离,应利用对象存储的带宽能力业界也有非常明显的趋势是大家对于在对象存储上做数据库或OLAP引擎等,会共同探索怎么在对象存储上做更多工作实现IO性能,相对于本地存储影响降到最低。第二重点做企业级的Warehouse,用户希望有一套集群负载之间有隔离。第三部分就是弹性,也会实现企业级的能力。在存算分离情况下,数据成本降低,整个计算成本通过弹性能力降低,在低峰期或说在固定的时间段不预留过多计算资源。

第三,数据湖分析,重点是StarRocks结合Paimon方案实现实时湖仓分析解决方案不管是在内部还是社区,越来越多的用户使用。数据湖分析希望能平替Trino,用户通过StarRocks引擎就能满足其业务需求,避免引入更多技术栈,增加太多的维护成本和学习成本。

幻灯片22.PNG




产品导航



EMR Serverless StarRocks钉钉交流群(群号:24010016636)

相关实践学习
基于EMR Serverless StarRocks一键玩转世界杯
基于StarRocks构建极速统一OLAP平台
快速掌握阿里云 E-MapReduce
E-MapReduce 是构建于阿里云 ECS 弹性虚拟机之上,利用开源大数据生态系统,包括 Hadoop、Spark、HBase,为用户提供集群、作业、数据等管理的一站式大数据处理分析服务。 本课程主要介绍阿里云 E-MapReduce 的使用方法。
目录
相关文章
|
3天前
|
SQL 存储 缓存
EMR Serverless StarRocks 全面升级:重新定义实时湖仓分析
本文介绍了EMR Serverless StarRocks的发展路径及其架构演进。首先回顾了Serverless Spark在EMR中的发展,并指出2021年9月StarRocks开源后,OLAP引擎迅速向其靠拢。随后,EMR引入StarRocks并推出全托管产品,至2023年8月商业化,已有500家客户使用,覆盖20多个行业。 文章重点阐述了EMR Serverless StarRocks 1.0的存算一体架构,包括健康诊断、SQL调优和物化视图等核心功能。接着分析了存算一体架构的挑战,如湖访问不优雅、资源隔离不足及冷热数据分层困难等。
|
14天前
|
数据挖掘 OLAP BI
OLAP技术:数据分析的修仙秘籍初探
OLAP(联机分析处理)是一种多维数据分析技术,能够从不同角度洞察数据,揭示隐藏的趋势和模式。它最早由Edgar F. Codd在1993年提出,旨在弥补传统OLTP系统的不足,支持复杂的数据分析与决策支持。OLAP操作包括钻取、上卷、切片、切块和旋转等,帮助用户灵活地探索数据。广泛应用于财务报告、市场分析、库存管理和预测分析等领域,是现代商业智能的重要工具。
59 7
|
22天前
|
DataWorks 数据挖掘 大数据
方案实践测评 | DataWorks集成Hologres构建一站式高性能的OLAP数据分析
DataWorks在任务开发便捷性、任务运行速度、产品使用门槛等方面都表现出色。在数据处理场景方面仍有改进和扩展的空间,通过引入更多的智能技术、扩展数据源支持、优化任务调度和可视化功能以及提升团队协作效率,DataWorks将能够为企业提供更全面、更高效的数据处理解决方案。
|
2月前
|
SQL 流计算 关系型数据库
基于OpenLake的Flink+Paimon+EMR StarRocks流式湖仓分析
阿里云OpenLake解决方案建立在开放可控的OpenLake湖仓之上,提供大数据搜索与AI一体化服务。通过元数据管理平台DLF管理结构化、半结构化和非结构化数据,提供湖仓数据表和文件的安全访问及IO加速,并支持大数据、搜索和AI多引擎对接。本文为您介绍以Flink作为Openlake方案的核心计算引擎,通过流式数据湖仓Paimon(使用DLF 2.0存储)和EMR StarRocks搭建流式湖仓。
456 4
基于OpenLake的Flink+Paimon+EMR StarRocks流式湖仓分析
|
2月前
|
消息中间件 人工智能 监控
Paimon x StarRocks 助力喜马拉雅直播实时湖仓构建
本文由喜马拉雅直播业务与仓库建设负责人王琛撰写,介绍了喜马拉雅直播业务的数据仓库架构迭代升级。文章重点分享了基于 Flink + Paimon + StarRocks 实现实时湖仓的架构及其成效,通过分钟级别的收入监控、实时榜单生成、流量监测和盈亏预警,大幅提升了运营效率与决策质量,并为未来的业务扩展和 AI 项目打下坚实基础。
230 5
Paimon x StarRocks 助力喜马拉雅直播实时湖仓构建
|
2月前
|
数据采集 运维 DataWorks
DataWorks on EMR StarRocks,打造标准湖仓新范式
本文整理自阿里云计算平台产品专家周硕(簌篱)在阿里云DataWorks on EMR StarRocks解决方案介绍中的分享。介绍了阿里云DataWorks与EMR Serverless StarRocks的结合使用,详细阐述了在数据同步、数据消费、数据治理三大场景中的核心能力。DataWorks作为大数据开发治理平台,提供了从数据建模、数据集成、数据开发到数据治理的全链路解决方案,结合StarRocks的高性能分析能力,帮助企业实现OLAP分析、湖仓一体开发及数据综合治理,满足复杂业务场景下的需求,提升数据处理和分析效率。
|
2月前
|
SQL 存储 数据挖掘
快速入门:利用AnalyticDB构建实时数据分析平台
【10月更文挑战第22天】在大数据时代,实时数据分析成为了企业和开发者们关注的焦点。传统的数据仓库和分析工具往往无法满足实时性要求,而AnalyticDB(ADB)作为阿里巴巴推出的一款实时数据仓库服务,凭借其强大的实时处理能力和易用性,成为了众多企业的首选。作为一名数据分析师,我将在本文中分享如何快速入门AnalyticDB,帮助初学者在短时间内掌握使用AnalyticDB进行简单数据分析的能力。
57 2
|
3月前
|
SQL 分布式计算 Serverless
EMR Serverless Spark:一站式全托管湖仓分析利器
本文根据2024云栖大会阿里云 EMR 团队负责人李钰(绝顶) 演讲实录整理而成
195 2
|
4月前
|
SQL 分布式计算 Serverless
阿里云 EMR Serverless Spark 版正式开启商业化
阿里云 EMR Serverless Spark 版正式开启商业化,内置 Fusion Engine,100% 兼容开源 Spark 编程接口,相比于开源 Spark 性能提升300%;提供 Notebook 及 SQL 开发、调试、发布、调度、监控诊断等一站式数据开发体验!
183 3
阿里云 EMR Serverless Spark 版正式开启商业化
|
4月前
|
人工智能 自然语言处理 Serverless
阿里云函数计算 x NVIDIA 加速企业 AI 应用落地
阿里云函数计算与 NVIDIA TensorRT/TensorRT-LLM 展开合作,通过结合阿里云的无缝计算体验和 NVIDIA 的高性能推理库,开发者能够以更低的成本、更高的效率完成复杂的 AI 任务,加速技术落地和应用创新。
183 13

热门文章

最新文章