- 1、本文档共27页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
DataFunCon#2024
Blaze:SparkSQLNative算子在快手的深度优化及大规模实践
王磊
快手大数据离线生产引擎及数据湖负责人
Contents目录
Blaze原理及架构设计
面向生产的深度优化
当前进展及未来规划
Blaze原理及架构设计
设计背景
如何持续提升计算引擎执行效率?
火山模型(Volcanomodel)
Spark1.0
代码生成(wholestage-codegen)
Spark2.0
自适应查询执行(AdaptiveQueryExecution)
Spark3.0
向量化执行(vectorization)
next
向量化原理
向量化计算优势:
可以高效利用现代CPU的SIMD指令实现指令集并行计算加速
主流的存储结构(如parquet)使用列式存储,向量化计算可以减少读写过程的行列互转开销
Filter
Project
TableScan
next()
next()
非向量化模型
每个tuple一次函数调用
缓存不友好,无法利用新硬件特性SIMD加速查询
Filter
Project
TableScan
nextBatch()
向量化模型
每个Batch一次函数调用,减少调用开销
Batch内数据采用列存,提高缓存命中率,利用SIMD优化
nextBatch()
相关工作
Project
Corporation
Description
Photon
Databricks
NativevectorizedengineforSpark
Velox
Meta
Vectorizedaccelerationlibrary
Gluten
IntelKyligence
PlugintooffloadSQLEnginetoNativeLibrary
Datafusion
Apache
Vectorizedaccelerationlibrary
Blaze
Kuaishou
PlugintooffloadSQLEnginetoNativeLibrary
Blaze是快手自研的基于rust和datafusion/arrow开发的Spark向量化执行引擎
PhotoBu
ffer
Blaze
DataFusion
Spark
PhysicalPlan
PhotoBuffer
Substrait
Gluten
Velox/Clickhouse
架构设计
架构设计
JNI
JNI
JNI
FFI
JNI
JNI
核心模块
NativeEngine
基于datafusion框架实现与Spark功能一致的native算子,以及相关内存管理、FFI交互等功能
JNIBridge
ProtoBuf
SparkExtension
用于实现Extension和NativeEngine之间的互相调用
定义用于JVM和native之间的算子描述协议
Spark插件,实现Spark算子到native算子的翻译
项目路线图
面向生产的深度优化
生产环境面临的主要问题核心优化点
细粒度的Failback机制
基于CBO的转换策略
更高效的向量化数据传输格式多级内存管理策略
复杂度更优的聚合算法实现
向量化场景的表达式重复计算优化
细粒度的Failback机制
演进式向量化执行
数据类型不支持
部分情况性能退化
引擎实现不兼容
算子/表达式不支持
基于CBO的转换策略
大数据量下数据行列转换开销大
基于CBO/RBO模型调整算子翻译策略:
历史执行数据
输入数据量
算子复杂度
更高效的向量化数据传输格式
业界的向量化数据通常使用arrow格式进行传输,但是实践过程我们发现arrow格式与主流的轻量压缩算法(snappy/lz4/zstd等)适配度不好,压缩率偏低。
所以我们在Blaze中定制了传输格式,除了尽可能去除冗余信息(如列名、数据类型)之外,还使用了byte-transpose技术提升数据压缩率,使得数据量大
幅下降。
线上2000多个作业的真实数据,上线后输入数据量小幅上涨的情况下,Shuffle数据量相比spark降近30%
Byte-transpose示例
多级内存管理策略
复杂度更优的聚合算法实现
向量化场景的表达式重复计算优化
计算公共表达式
SQL
替换表达式
正常逻辑
Yes No
公共表达式重复利用
非公共表达式正常计算
重构project算子,增加多算子融合代码生成逻辑
重构Filter算子,优化多谓词场景
计算复杂度较高的重复表达式
缓存结果多次复用
当前进展及未来规划
当前进展
支持parquet的向量化读写
线上常用算子的全面支持
线上常用表达式的全
您可能关注的文档
- Agent技术在语音助手场景中的应用.pptx
- AIagents在电商平台中的应用.pptx
- AI技术演进与商业化落地.pptx
- Alluxio AI高性能数据访问平台-202404.pptx
- B站数据治理运营框架应用实践.pptx
- eBay多模态与GNN商品嵌入技术.pptx
- NoETL,开启自动化数据管理新时代.pptx
- Soul基于AIGC的实践与.pptx
- 阿里云大数据AI一体化最佳实践.pptx
- 大模型与数据治理.pptx
- 登康口腔-市场前景及投资研究报告:口腔抗过敏国货龙头,品类渠道创新.pdf
- 中邮基金王瑶分析报告:立足产业周期,科技新兴机会.pdf
- 长信基金张子乔分析报告:注重自下而上,均衡策略.pdf
- 燕京啤酒-市场前景及投资研究报告:笑倚长风方起势,静沐春雨润燕京.pdf
- 消费电子ETF投资价值分析报告:AI硬件加速落地,技术创新空间.pdf
- 铜冠矿建-市场前景及投资研究报告:一体化矿服企业, 双超技术领先.pdf
- 天弘基金陈国光市场前景及投资研究报告:前瞻产业精选个股.pdf
- 鹏华科创新能ETF投资价值分析报告.pdf
- 鹏华基金王云鹏分析报告:深谙材料制造,周期选股,收益稳健.pdf
- 景顺长城国证2000指数增强基金投资价值分析报告:新兴产业趋势,小盘股投资机遇.pdf
文档评论(0)