当前位置:首页 > 报告详情

3-王磊-Blaze:SparkSQL Native算子优化在快手的深度优化及大规模实践.pdf

上传人: 张** 编号:169016 2024-07-06 27页 5.29MB

1、D Da at ta aF Fu un nC Co on n#2 20 02 24 4B Bl la az ze e:S Sp pa ar rk kS SQ QL L N Na at ti iv ve e算算子子在在快快手手的的深深度度优优化化及及大大规规模模实实践践王磊 快手大数据离线生产引擎及数据湖负责人D a t a F u n 上海站嘉宾专享C Co on nt te en nt ts s目目录录Blaze原理及架构设计面向生产的深度优化当前进展及未来规划D a t a F u n 上海站嘉宾专享B Bl la az ze e原原理理及及架架构构设设计计D a t a F u n 上海

2、站嘉宾专享设计背景如何持续提升计算引擎执行效率?Spark1.0 火山模型(Volcano model)Spark2.0 代码生成(wholestage-codegen)Spark3.0 自适应查询执行(Adaptive Query Execution)next 向量化执行(vectorization)D a t a F u n 上海站嘉宾专享向量化原理向量化计算优势:可以高效利用现代CPU的SIMD指令实现指令集并行计算加速主流的存储结构(如parquet)使用列式存储,向量化计算可以减少读写过程的行列互转开销FilterProjectTableScannext()next()非向量化模型每

3、个tuple一次函数调用缓存不友好,无法利用新硬件特性SIMD加速查询FilterProjectTableScannextBatch()向量化模型每个Batch一次函数调用,减少调用开销Batch内数据采用列存,提高缓存命中率,利用SIMD优化nextBatch()D a t a F u n 上海站嘉宾专享相关工作P Pr ro oj je ec ct tC Co or rp po or ra at ti io on nD De es sc cr ri ip pt ti io on nPhotonDatabricksNative vectorized engine for SparkVelox

4、MetaVectorized acceleration libraryGlutenIntel&KyligencePlugin to offload SQL Engine to Native LibraryDatafusionApacheVectorized acceleration libraryBlazeKuaishouPlugin to offload SQL Engine to Native Library B Bl la az ze e是是快快手手自自研研的的基基于于r ru us st t和和d da at ta af fu us si io on n/a ar rr ro ow w

5、开开发发的的S Sp pa ar rk k向向量量化化执执行行引引擎擎PhotoBufferSparkBlazeDataFusionPhysical PlanPhotoBufferSubstraitGlutenVelox/ClickhouseD a t a F u n 上海站嘉宾专享架构设计D a t a F u n 上海站嘉宾专享架构设计JNIJNIJNIFFIJNIJNID a t a F u n 上海站嘉宾专享核心模块基于datafusion框架实现与Spark功能一致的native算子,以及相关内存管理、FFI交互等功能Native EngineJNI BridgeProtoBufSp

6、ark Extension用于实现Extension和Native Engine之间的互相调用 定义用于JVM和native之间的算子描述协议Spark插件,实现Spark算子到native算子的翻译D a t a F u n 上海站嘉宾专享项目路线图D a t a F u n 上海站嘉宾专享面面向向生生产产的的深深度度优优化化D a t a F u n 上海站嘉宾专享生产环境面临的主要问题核心优化点细粒度的Failback机制基于CBO的转换策略更高效的向量化数据传输格式多级内存管理策略复杂度更优的聚合算法实现向量化场景的表达式重复计算优化D a t

word格式文档无特别注明外均可编辑修改,预览文件经过压缩,下载原文更清晰!
三个皮匠报告文库所有资源均是客户上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作商用。
本文介绍了快手自研的基于Rust和DataFusion/Arrow开发的Spark向量化执行引擎Blaze,以及其在快手的深度优化和大规模实践。Blaze通过向量化计算,提高了计算效率,减少了读写过程的行列互转开销。文章详细介绍了Blaze的原理、架构设计、面向生产的深度优化、当前进展及未来规划。在生产环境上线后,Blaze在TPC-H和TPC-DS测试中表现优异,平均性能提升2.8倍和3倍。目前,Blaze已在Adhoc场景全量上线,算力平均提升30%+,ETL场景覆盖40%任务,累计年化收益数千万。未来,Blaze将持续迭代优化,推动线上应用全面上线,支持更多引擎,并建设开源社区。
如何持续提升计算引擎执行效率? 向量化计算在现代数据处理中的优势有哪些? Blaze在生产环境中上线后的实际效果如何?
客服
商务合作
小程序
服务号
折叠