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