StarRocks 3.3 重磅发布,Lakehouse 架构发展进入快车道!

news2024/12/27 11:06:59

StarRocks 3.3 的发布标志着 Lakehouse 架构在数据分析领域迈向了一个新的高度。作为下一代 Lakehouse 架构的代表,StarRocks 3.3 在稳定性、计算性能、缓存设计、物化视图、存储优化和 Lakehouse 生态系统等方面进行了全方位的优化和创新。本文将逐一介绍 StarRocks 3.3 的这些新特性,带你深入了解这款强大的数据分析工具如何提升你的数据处理效率和分析能力。

成熟稳定:全面提升的成熟度级别和大查询稳定性

为了帮助用户更好地理解和使用新功能,StarRocks 3.3 对各项新特性进行了成熟度级别的划分,并采用了更清晰的标记体系:Experimental(实验性质)、Preview(公测阶段)和 GA(生产可用)。这种分级体系使用户能够根据功能的成熟度来决定是否在生产环境中使用。

  • Experimental (实验性质) :这些功能的接口可能会变动,甚至可能被调整或放弃,部分刚合入社区的代码覆盖率尚未达到标准的功能也会先放入这一类别。此类功能需要用户手动打开或主动调用,不会影响其他功能。

  • Preview (公测阶段) :接口基本稳定,但部分参数的语义可能会有微调。可以在非核心场景下使用。

  • GA(Gerneal available) :接口和功能已经明确,虽然还会有一些功能补充,但已有功能基本不会修改,完全达到生产可用状态。

此外,为了进一步提升用户体验,我们针对数据湖分析、存算分离和物化视图等关键功能提供了更完整的产品能力边界和版本对照文档,方便用户理解和使用。

StarRocks 3.3 针对大查询、数据压缩和数据湖场景的内存占用进行了显著优化。通过 GA 级别的算子落盘能力(Spill to Disk),有效地优化了复杂查询的内存占用和 Spill 调度,确保大查询能够稳定执行而不会导致内存溢出(OOM)。此外,支持 Colocate Group Execution,通过分阶段执行 Colocated 表上的查询,大幅降低 Join 和 Agg 算子在执行时的内存占用,从而显著提升大查询的稳定性。

性能提升:新架构,新台阶,新场景

StarRocks 3.3 的发布不仅提升了基础性能,更在真实场景中的性能优化上迈上了新台阶。我们不仅仅拘泥于Benchmark 测试的成绩,而是专注于在实际应用中的性能提升。

首先,在新架构性能优化方面,StarRocks 对 ARM 架构进行了大幅优化,相比 x86 平均成本降低 20%,同时查询性能提升20%,使其成为与 x86 架构同等重要的一等公民。 AWS Graviton 实例上的测试中,ARM 架构的性能提升显著:在 SSB 100G 测试中,ARM x86 11%;在Clickbench 测试中,ARM x86 39%;在 TPCH 100G 测试中,ARM x86 13%;在 TPCDS 100G 测试中,ARM x86 35%。

在数据湖性能优化方面,StarRocks 3.3 提升了 Scan 性能,通过对 Page Index 的优化显著减少了 Scan 的数据规模,降低了 Page 多读的情况。此外,元数据性能也有了突破,显著提升了整体的处理效率。

针对特定场景的性能提升,StarRocks 3.3 进行了多方面的优化:

  • 倒排索引和 ngram 索引的增强显著提升了模糊搜索的效率;

  • FlatJson 对半结构化数据的处理性能也得到了百倍的显著提升,自动加速了 JSON 查询,使其性能接近结构化数据,同时保持了灵活性。

  • Bitmap 优化不仅提升了 Bitmap 系列函数的性能和内存占用,还补充了 Bitmap 导出到 Hive 的能力,以及相应的Hive Bitmap UDF。

  • CodeGen 技术显著提升了复杂表达式的计算效率,而重构后的向量化正则表达匹配也大幅降低了 regexp_replace 函数的 CPU 消耗。

  • 为了应对数据倾斜问题,StarRocks 3.3 增加了外表统计信息中的直方图统计,使得在数据倾斜情况下能生成更准确的执行计划,并优化了数据倾斜时的 Shuffle Join 操作。

  • 此外,全局字典的优化提供了字典对象,可以在各个 BE 节点内存中存储字典表的键值对映射关系通过dictionary_get() 函数直接查询维度值,相对于原先通过 JOIN 维度表获取维度值的方式,查询效率更高。

缓存设计: Lakehouse 架构的最后一块拼图

在 Lakehouse 架构中,缓存设计是实现高效数据处理的关键一环。对于存算分离架构来说,缓存的重要性不言而喻。无论是 Hive、Iceberg、Paimon 等外表,还是 StarRocks 存算分离的内表,缓存命中率的高低直接影响性能的优劣。在缓存命中情况下,性能已经能够追平存算一体的架构,但如何合理、稳定地将热数据保存在缓存中却是一大挑战。

StarRocks 原生开发的缓存功能为用户提供了开箱即用的便捷体验。无需复杂的配置,用户即可利用强大的缓存机制提升数据处理性能。StarRocks 3.3 通过一系列创新功能显著提升了缓存的能力:

  • 预热缓存: 通过 cache warmup 命令,可以预先将关键数据加载到缓存中,减少首次查询的延迟。

  • 缓存优先级 :3.3.1 推出将 cache select 设置较高的缓存优先级,确保最重要的数据得到优先缓存。

  • 内存优化和可观测性: 缓存的内存优化和可观测性的提升,使得缓存的管理和监控更加高效和透明。

在存算分离集群中,StarRocks 3.3 还适配了AWS Express One Zone Storage,大幅提升了读写性能,为未来的全局缓存带来了全新的可能性。

此外,在缓存无法命中或者不希望使用缓存的场景下,冷查性能也得到了显著提升。主要通过优化 tablet 的并行扫描,以及对小 I/O 的自动合并,使得即使在没有缓存支持的情况下,查询性能依然表现优异。

物化视图:连接湖仓的高效纽带

物化视图作为 StarRocks 的核心能力,也是连接 Open lake format 和 StarRocks 内表的纽带。通过外表物化视图,可以透明地为数据湖上的查询进行加速,在保证 single source of truth 的同时,降低数据加工的复杂度。

在 3.3 版本中,我们又进一步做了一些重要优化:

  • 外表物化视图的进一步能力增强: Iceberg 外表物化视图支持分区级别增量刷新,并可在分区方式为 Hidden Partition 的表上创建物化视图。Paimon 外表物化视图补全了改写能力,也支持了分区级别的增量刷新。

  • 更完善的透明改写能力: StarRocks 3.3 支持了基于文本和视图的物化视图改写。 除了原来标准 SJPG 的改写能力之外,基于视图的 MV 改写可以把针对视图的查询改写到对等的物化视图上,适用于建模和指标平台等场景。针对文本的改写能力能对一些非标准 SQL 片段进行文本匹配,解决复杂查询难以透明改写的问题。

  • 多事实表分区刷新优化 此前,物化视图的分区刷新策略仅支持单个事实表增量刷新策略(即当物化视图的分区列和一个 base 表的分区列一致场景下,物化视图的刷新会根据base表的分区来进行变更),3.3 版本新增的多事实表对齐策略,可以降低多事实表关联场景下的物化视图刷新开销。

  • 新增改写策略(Transparent MV): 此前,物化视图的改写主要是把针对 base 表的查询改写到物化视图上,通过开启物化视图属性 transparent_mv_rewrite_mode 后,当用户直接查询物化视图时,StarRocks 会自动改写查询,将已经刷新的物化视图分区中的数据和未刷新分区对应的原始数据做自动 Union 合并。 此模式允许配置 MV base 表数据不一致时的改写行为,实现在数据时效性和查询性能之间的权衡, 适用于 分层建模场景。

开启物化视图属性 transparent_mv_rewrite_mode 后,当用户直接查询物化视图时,StarRocks 会自动改写查询,将已经刷新的物化视图分区中的数据和未刷新分区对应的原始数据做自动 Union 合并。

  • 大规模物化视图调度能力优化 增加 enable_query_rewrite 属性,实现对查询改写的禁用,减少计划开销。通过控制候选物化视图数量,并引入更高效的筛选算法,增加物化视图计划缓存(MV plan cache)。支持全局FIFO 调度,优化嵌套物化视图的级联刷新策略。

存储优化:更高效易用的数据管理

StarRocks 3.3 在存储优化与易用性提升方面做出了诸多改进,进一步增强了系统的性能和用户体验。

首先,StarRocks 3.3 提升了 FE 的可观测性和锁机制优化。提供了详细的内存使用指标,让用户可以更好地管理和监控资源。同时,引入了锁管理器(Lock Manager),实现对元数据锁的集中管理,将元数据锁的粒度从库级别细化为表级别。 这种细化显著提高了导入和查询的并发性能,在 100 并发的导入场景下,导入耗时减少了 35%。

为了增强建表语句的清晰度,StarRocks 3.3 支持了 ORDER BY 语法,使得建表操作更加直观和简洁。此外,还增加了对重命名列(Rename Column)的支持(版本 3.3.1),进一步提升了数据管理的灵活性。

在存储效率方面,StarRocks 3.3 优化了非字符串标量类型数据的存储方式,存储空间下降了 12%。这不仅降低了存储成本,也提升了数据读取的效率。

针对主键表,StarRocks 3.3 实施了多项优化:

  • PK Index 存算分离支持 Remote Storage :主键索引落盘支持落至远程存储,提高了数据的灵活性和可扩展性。

  • 主键表支持 Size-tiered Compaction 策略 :这一策略降低了执行 Compaction 时的写 I/O 和内存开销,适用于存算分离和存算一体的集群。

  • 优化主键表持久化索引的读 I/O :支持按照更小的粒度页读取持久化索引,并改进了持久化索引的 Bloom Filter。这一优化也适用于存算分离和存算一体的集群。

生态支持:Lakehouse 扩展与集成

Hive 生态支持 :在3.3版本中,StarRocks 支持对 ORC 和 Text 文件的写入能力。 单 sink 算子的写入性能达到了 Trino 的 2 倍。

Iceberg 生态支持 :StarRocks 3.3 大幅重构了 Iceberg 元数据查询模块,通过分布式元数据读取提升对 Avro 格式文件的解析性能,避免原生 SDK 的单点瓶颈,对小规模的元数据通过 manifest 缓存来降低重复 I/O,从而大幅提升了Iceberg 的元数据访问性能。同时,增加了对 V2 表 equality delete 的支持,使用户能够高效分析使用 Flink 写入的Iceberg upsert 数据。此外,还引入了对 Iceberg 视图(Iceberg View)的查询支持,使得数据管理和查询更加便捷和直观。

Paimon 生态支持 :StarRocks 3.3 现已全面支持 Paimon 生态系统,包括对最新的 delete vector 的支持、Paimon 系统表的集成以及 scan range 调度的优化。通过这些改进,用户可以更高效地管理和查询 Paimon 中的数据,实现更灵活的数据处理和分析。

ClickHouse Kudu 生态支持 :为了方便用户从 Clickhouse 迁移到 StarRocks,社区贡献了专用的迁移工具,使得数据迁移过程更加平滑和高效。此外,StarRocks 还支持 ClickHouse 和 Kudu 的 Catalog 功能,使得用户可以更便捷地在这两种数据库和 StarRocks 之间进行数据管理和查询。

总结:成熟的 Lakehouse 架构

StarRocks 正在积极向成熟的湖仓架构升级,不仅增强了与开放湖格式的兼容性,还显著提升了湖的写入性能。在数仓功能上,它进一步加强了索引和半结构化数据处理的性能,同时,存算分离架构成为更受青睐的成熟解决方案。

此外,大查询和 ETL 任务的稳定性的提高,为批处理的能力打下基础。这些进步共同推动了 StarRocks 向一套架构,满足所有的分析需求的"One data, All Analytics"愿景的迈进。

更详细的 feature 介绍参考:

Release note: https://docs.mirrorship.cn/zh/releasenotes/release-3.3/

下载: https://www.mirrorship.cn/zh-CN/download/starrocks

直播回放 :https://www.bilibili.com/video/BV1F7421d72D/

更多交流,联系我们:https://wx.focussend.com/weComLink/mobileQrCodeLink/33412/8da64

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【多媒体】富客户端应用程序GUI框架 JavaFX 2.0 简介

JavaFX 最初是由 Oracle 推出的一个用于开发富客户端应用程序的框架,它提供了丰富的用户界面控件、布局容器、3D图形绘制、媒体播放和动画等功能,旨在取代较旧的 Swing 框架。JavaFX 于 2007 年推出,2011 年 10 月发布了2.0 版本。JavaFX 2.0…

如何创建移动类型

第一步打开事务代码: OMJJ 下面这个工作区可以不填,或者填入你的范围(例如我准备copy Z52成为Z54 那么就可以输入从Z52到Z54,SAP的这个操作就是这么怪,哈哈)不然就会出现一个这样的报错“在工作区中指定关…

YOLOv8改进 | 卷积模块 | SAConv可切换空洞卷积

秋招面试专栏推荐 :深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 💡💡💡本专栏所有程序均经过测试,可成功执行💡💡💡 专栏目录 :《YOLOv8改进有效…

[数据集][目标检测]螺丝螺母检测数据集VOC+YOLO格式2400张2类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):2400 标注数量(xml文件个数):2400 标注数量(txt文件个数):2400 标注…

JavaSE (Java基础):面向对象(上)

8 面向对象 面向对象编程的本质就是:以类的方法组织代码,以对象的组织(封装)数据。 8.1 方法的回顾 package com.oop.demo01;// Demo01 类 public class Demo01 {// main方法public static void main(String[] args) {int c 10…

为什么有些人思考得多,决策反而不好?避免过度拟合的终极指南:决策高手的秘密:灰度认知,黑白决策

在决策过程中,过度关注细节可能导致决策效果不佳,这被称为“过度拟合”。为了避免这种情况,我们需要进行“灰度认知,黑白决策”,即接受不确定性,关注整体趋势,设定明确目标,简化选择…

微信小程序 调色板

注意:是在uniapp中直接使用的一个color-picker插件,改一下格式即可在微信小程序的原生代码中使用 https://github.com/KirisakiAria/we-color-picker 这是插件的地址,使用的话先把这个插件下载下来,找到src,在项目创…

STM32CubeMX实现矩阵按键(HAL库实现)

功能描述: 实现矩阵按键验证,将矩阵按键的按键值,通过串口显示,便于后面使用。 实物图 原理图: 编程原理: 原理很简单,就是通过循环设置引脚为低电平,另外引脚扫描读取电平值&…

[Leetcode 128][Medium] 最长连续序列

目录 题目描述 整体思路 具体代码 题目描述 原题链接 整体思路 首先看到找连续升序排序的最长序列长度,想到对数组进行排序预处理。但是排序算法时间复杂度需要O(nlogn),题目要求时间复杂度为O(n)。因此不能进行排序与处理 接着想到数据结构哈希表&a…

苹果电脑内存满了怎么清理空间垃圾 苹果电脑内存不足怎么办 MacBook优化储存空间

在日常使用苹果电脑过程中,某些用户可能经常会遇到存储空间不足的问题,尤其是当硬盘存储了大量的文件。这不仅影响电脑的运行速度,还可能导致应用程序运行不稳定。 一、节省 MacBook Pro 的空间 苹果电脑的操作系统(macOS&#x…

PDF 生成(6)— 服务化、配置化

当学习成为了习惯,知识也就变成了常识。 感谢各位的 关注、点赞、收藏和评论。 新视频和文章会第一时间在微信公众号发送,欢迎关注:李永宁lyn 文章已收录到 github 仓库 liyongning/blog,欢迎 Watch 和 Star。 回顾 前面我们分…

Android 15 应用适配默认全屏的行为变更(Android V的新特性)

简介 Android V 上默认会使用全面屏兼容方式,影响应用显示,导致应用内跟导航标题重合,无法点击上移的内容。 默认情况下,如果应用以 Android 15(API 级别 35)为目标平台,在搭载 Android 15 的设…

鸿蒙应用笔记

安装就跳过了,一直点点就可以了 配置跳过,就自动下了点东西。 鸿蒙那个下载要12g个内存,大的有点吓人。 里面跟idea没区别 模拟器或者真机运行 真机要鸿蒙4.0,就可以实机调试 直接在手机里面跑,这个牛逼&#xf…

现代智能宠物喂食器方案定制

现代智能宠物喂食器不仅具备定时喂食功能,帮助宠物主人管理宠物的饮食时间和食量,还加入了录音功能和摄像头,使得宠物主人即使不在家也能与宠物保持互动,并实时监控宠物的状况。此外,一些产品还具备紧急预警功能&#…

数据分析:基于聚类的LASSO预测模型包----clustlasso

介绍 clustlasso是结合lasso和cluster-lasso策略的R包,并发表在Interpreting k-mer based signatures for antibiotic resistance prediction。 标准交叉验证lasso分类或回归流程如下: 选择交叉验证数据集(数据分割)&#xff1…

【计算机网络】网络层(作业)

【一】 1、某主机的 IP 地址为 166.199.99.96/19。若该主机向其所在网络发送广播 IP 数据报, 则目的地址可以是(D)。 A. 166.199.99.255B. 166.199.96.255C. 166.199.96.0D. 166.199.127.255 解析: 166.199.99.96/19166.199.0…

YOLOv5初学者问题——用自己的模型预测图片不画框

如题,我在用自己的数据集训练权重模型的时候,在训练完成输出的yolov5-v5.0\runs\train\exp2目录下可以看到,在训练测试的时候是有输出描框的。 但是当我引用训练好的best.fangpt去进行预测的时候, 程序输出的图片并没有描框。根据…

nginx转发的问题

我在项目配置的时候遇到一个问题: 配置了域名转发,且配置了https nginx配置如下: server {listen 443 ssl;server_name yourdomain.com;ssl_certificate /path/to/your/certificate.crt;ssl_certificate_key /path/to/your/private.key;loca…

【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【17】认证服务01

持续学习&持续更新中… 守破离 【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【17】认证服务01 环境搭建验证码倒计时短信服务邮件服务验证码短信形式:邮件形式: 异常机制MD5参考 环境搭建 C:\Windows\System32\drivers\etc\hosts 192.168.…

2024年软件测试面试题,精选100道,内附文档。。。

测试技术面试题 1、我现在有个程序,发现在 Windows 上运行得很慢,怎么判别是程序存在问题还是软硬件系统存在问题? 2、什么是兼容性测试?兼容性测试侧重哪些方面? 3、测试的策略有哪些? 4、正交表测试用…