当前位置:   article > 正文

数据分析性能提升超 30%!海量数据时代,使用 StarRocks 的人已经 chill 起来了!...

数据分析性能提升超 30%!海量数据时代,使用 StarRocks 的人已经 chill 起来了!...

0c0705dd0b01a3c523ecc6a7b0df38df.gif

在数据时代,企业拥有前所未有的大量数据资产,但如何从海量数据中发掘价值成为挑战。数据分析凭借强大的分析能力,可从不同维度挖掘数据中蕴含的见解和规律,为企业战略决策提供依据。

数据分析在营销、风险管控、产品优化等领域发挥着关键作用,帮助企业提高运营效率、优化业务流程、发现新商机、增强竞争力。

低成本高效率的完成对海量数据的分析,及时准确地释放数据价值,已成为企业赢得竞争优势的利器。基于亚马逊云科技构建的 StarRocks 为这个课题交出了一份答卷。

StarRocks 作为新一代极速全场景 MPP(Massively Parallel Processing)数据库,架构简洁,采用了全面向量化引擎,并配备全新设计的 CBO(Cost Based Optimizer)优化器,实现亚秒级的查询速度,尤其是多表关联查询表现尤为突出。StarRocks 还支持现代化物化视图,进一步加速查询。

StarRocks 不仅能很好地支持实时数据分析,实现对实时更新数据的高效查询,3.0 及以后版本的存算分离架构,对于数据湖中的数据也能够实现极速查询,配合亚马逊云科技提供的高性能高可用的云平台,能够极大地助力客户轻松构建数据湖仓。

越来越多的客户正在尝试湖仓一体的探索,后续我们会推出系列博客介绍如何在亚马逊云科技上构建您的数据湖仓,而存算分离的 StarRocks 会是其中非常重要的一部分,我们也会结合实际客户案例分享 StarRocks on Amazon 的最佳实践以及实际业务效果,本文则重点介绍 StarRocks on Amazon Graviton3 上实现的超高性价比提升。

关于 Amazon Graviton

Amazon Graviton 是亚马逊云科技推出的基于 Arm 架构的自研处理器,专为优化云计算性能和成本效益而设计。Graviton3 相较于前代产品 Graviton2 有了显著的性能提升,其单线程性能提高了 25%,整体性能提升了 50%。

  • Graviton3 支持 DDR5 内存,提供更高的内存带宽和更低的延迟,使其在处理大规模数据分析、高性能计算(HPC)和内存密集型应用方面表现尤为出色

  • 在机器学习工作负载方面,Graviton3 的性能提升更为显著,可以达到高达 3 倍的加速,这得益于其增强的矩阵乘法指令集。

  • Graviton3 处理器集成了先进的硬件安全功能,包括内置的内存加密和更高效的加密算法支持,确保数据在传输和存储过程中的安全性,满足敏感数据处理的需求。

  • Graviton3 具有更高的能效,能够在相同的性能下减少能耗,这对于希望降低运营成本和碳足迹的企业来说尤为重要。

通过使用基于 Graviton3 的实例,如 Amazon EC2 C7g 和 R7g,用户可以在保持高性能的同时显著降低计算成本。

最近几年来,在亚马逊云科技上部署和使用 StarRocks 的客户越来越多,亚马逊云科技和 StarRocks 致力于为客户提供更加极速和高性价比的服务体验。截至 2024 年 6 月,StarRocks 已经基于 Amazon Graviton3 做了大量优化,详见下文测试报告。从最新实测数据来看,相对于 C6i,在 C7g 上已经实现了平均 30% 的性能提升。

测试方法以及结论

由于 Graviton3 基于ARM 的指令集尤其是 SIMD 指令集跟 x86 不同,需要做额外的适配工作。之前已经做了大部分的 SIMD 适配工作,本次测试,是 StarRocks 基于近期完成的适配了一些热点 SIMD 指令优化,然后做出的基于 TPC-DS 100GB 和 1TB 规模的测试。

参与本次对比测试的节点选型

8fe51b599d1eb53c64b57ae34ea64cf5.png

实例具体配置

c7g.4xlarge 

  1. CPU:ARM Amazon Graviton

  2. 16 vCPUs、 32GB Memory、 15 Gbps Network Bandwidth

  3. CPU 频率:6GHz

  4. CPU cache:

  1. SQL
  2. Caches (sum of all):
  3.  L1d:  1 MiB (16 instances)
  4.  L1i:  1 MiB (16 instances)
  5.  L2:  16 MiB (16 instances)
  6.  L3:  32 MiB (1 instance)
  7.  2.6GHZ

c6i.4xlarge

  1. CPU:x86

  2. 16 vCPUs、 32GB Memory、 12.5 Gbps Network Bandwidth

  3. CPU 频率:9GHz

  4. CPU cache:

  1. SQL
  2. Caches (sum of all):
  3.  L1d:  384 KiB (8 instances)
  4.  L1i:  256 KiB (8 instances)
  5.  L2:  10 MiB (8 instances)
  6.  L3:  54 MiB (1 instance)

集群版本:

StarRocks:StarRocks version 3.3

具体的测试方法和代码这里不再展开,有兴趣的读者可以扫描下方二维码了解更多。

1d264f2adf13daf89685b1bb9a2699b8.png

StarRocks version 3.3

扫码了解更多

25a9d60a3d89ac82f0505f9147d71c23.png

 StarRocks TPC-DS Benchmark 

扫码了解更多

2b8116801fe0df15a162aec02bba603f.png

  TPC-H Homepage

扫码了解更多

左右滑动查看更多

详细测试结果

在标准 TPC-H 测试集 100G 和 1T 规模下,相比于 C6i 机型,C7g 机型基本没有出现性能回退的 case,并且平均性能提升达到 30%,再结合 C7g 机型 15% 的价格优化,综合起来,可以实现 53% 的性价比提升。

bb868e349dbfe30f81b26bc374dc86be.png

说明:

以上每个测试集的数据都是对测试集内 99 个 query 的延时求和。

1.C6i

  • 在 C6i 机型上的测试结果

2.C7g

  • 在 C7g 机型上,进行了如下优化后的测试结果:

  • 优化 bitshuffle 使用的指令。

  • 优化 CRC 使用的 NEON 指令。

  • 优化 filter_range 使用的 NEON 指令。

  • C6i/C7g:任务跑在 C6i 上的耗时是 C7g 的几倍。

aebf28bae13c72dc9c01223ca40ff006.png

优化 bitshuffle 使用的指令

扫码了解更多

53dd879e3ea6fe31967199ffe6145e82.png

优化 CRC 使用的 NEON 指令 

扫码了解更多

a09b08c62f72f85ff852860728d9ee69.png

优化 filter_range 

使用的 NEON 指令

扫码了解更多

左右滑动查看更多

简单来说,比值越高,说明优化效果越明显。

另外,这里给出在 OLAP 典型应用场景中的优化情况:                                                          Scan&Bitshuffle/Aggregate/HashJoin

32650ac147cbd9cf60b35d34621a6a95.png

由上表可知, 在 OLAP 常见的场景中,优化指令集之后的,性能均有 15% 以上的提升,尤其是在 Aggregate 场景下,达到了 43% 的性能提升。

总结

基于 StarRocks 当前的优化情况和最新的测试数据来看,StarRocks on Graviton3 (C7g)的总体性能比 Ice Lake 8375C (C6i) 实现了30%以上的综合性能提升。对于 Amazon Graviton3 自身的价格优势(C7g 相对于C6i 有 15% 的成本优化),StarRocks on C7g 相对于 C6i 可以实现 50% 以上的性价比提升。

如果您有计划在亚马逊云科技上部署您的 StarRocks 服务,或者您已经运行 StarRocks on Amazon,Graviton3 都将会给您带来更优的体验和更低的成本。

另外,还有很多客户在密切关注最新的 Amazon Graviton4。Graviton4 与当前一代 Graviton3 处理器相比,性能提升高达 30%,独立核心增加 50% 以上,内存带宽提升 75% 以上,为在 Amazon EC2 上运行的工作负载提供最佳性能和能效,这让我们非常兴奋,近日 Graviton4 在 global region 正式 GA(超链接),我们会需要一些时间做定向优化和测试,大家现阶段可以优先使用 StarRocks on Amazon Graviton3。

附录

1.有关 C++ 针对 ARM NEON 指令集的优化,您可以扫描下方二维码获取更多

2.有关 SIMD 优化思路,您可以扫描下方二维码获取更多

3.测试环境中 FE 以及 BE 中配置参数调整如下:

  1. fe.conf  --- catalog_trash_expire_second
  2.  be.conf  --- max_compaction_concurrency=0
  3.               trash_file_expire_time_sec=0

e3f581696ba1a8f2c022b4e10b04352a.png

 C++ 针对 ARM NEON 指令集的优化

扫码了解更多

525fbb86e8ae746371b34af58ac79e19.png

 SIMD 优化思路

扫码了解更多

左右滑动查看更多

4.性价比提升计算方式:

如果 A 相对于 B,性能提升 30%,价格降低 15%,那么总体性价比的提升有多少?

性能:A= 1.3B
价格:A= 0.85B

如果以 B 的性价比为 1,则 A 的性价比 = 1.3B / 0.85B = 1.53

立即上手体验

2932361e34c0ddf634ac1a935031ed41.png

本篇作者

6c3fd2e64e0ad80c3284c367f3195c7e.jpeg

StarRocks

Linux 基金会项目 StarRocks 是新一代极速全场景 MPP 数据库,致力于帮助企业构建极速统一的湖仓分析新范式,是实现数字化转型和降本增效的关键基础设施

5a9d51b2c70c9afeadacae0e0d7597e9.png

刘子赫

StarRocks 查询团队核心研发 & StarRocks Committer。

8193d6bd1eac90d9a2c59d4dfb5c5717.jpeg

Angela Ren

亚马逊云科技解决方案架构师,负责基于亚马逊云科技云计算方案架构的咨询和设计,推广亚马逊云科技云平台技术和各种解决方案。

f1b600e3e6aedcad8828bdc3aa679b6e.jpeg

Li Jing

亚马逊云科技解决方案架构师,负责亚马逊云科技云计算方案咨询和设计。目前主要专注在现代化应用改造和机器学习领域的技术研究和实践,有丰富的实践经验。

e4ddf681074482dfa9190e8f9a0027a2.png

8d5b0f5224016ad9f0c93b75f1a1a9a8.gif

星标不迷路,开发更极速!

关注后记得星标「亚马逊云开发者」

点击阅读原文查看博客,获得更详细内容

听说,点完下面4个按钮

就不会碰到bug了!

e2d6cbfe7c0bf42b8089467e06e4ec32.gif

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Li_阴宅/article/detail/917542
推荐阅读
相关标签
  

闽ICP备14008679号