通过LLVM加速SparkSQL时间窗口计算

讲师:
王太泽
第四范式特征工程数据库负责人
曾在百度担任资深研发工程师
一直致力于解决机器学习模型从离线到在线特征一致性问题和性能问题。

时间:
7月9日 19:00

直播介绍
为什么要优化spark时间窗口
未加速前面临问题
为什么要使用llvm加速而不是继续优化jvm codegen
实现介绍-llvm 版本sql引擎设计
如何与spark集成
benchmark数据 vs spark3.0

展开查看详情

1.通过LLVM加速SparkSQL时间 窗口计算 第四范式特征工程数据库负责人-王太泽 第四范式(北京)技术有限公司 Copyright ©2020 4Paradigm All Rights Reserved.

2.第四范式介绍 第四范式 王太泽 第四范式成立于2014年底,是国际领先的人工智能平台与技术 第四范式特征工程数据库负责人 服务提供商,公司以“Empower AI Transformation and Advance AI For Everyone”为企业愿景,旨在让AI成为驱动社 曾在百度担任资深研发工程师 会进步、企业增长的引擎。 在第四范式一直致力于解决机器学习模型从离线到在线特征一 目前,第四范式已为金融、零售、能源、医疗、制造、互联网、 致性和性能问题 媒体等行业成功落地上万个AI应用,助力各行业企业的AI创新 变革。 Copyright ©2020 4Paradigm All Rights Reserved.

3. 目录 1 上期快速上线SparkSQL模型预测回顾 2 时间窗口特征价值与面临的问题 - 时间窗口特征在真实业务场景价值 - 时间窗口特征计算面临的问题 - 问题分析 3 优化选择的思路 - jit vs interpreted - jit 引擎选择 llvm jit vs jvm 4 SparkSQL时间窗口优化实现 - SparkSQL时间窗口当前实现 - SparkSQL时间窗口llvm加速版本实现 - Benchmark 对比 5 Q&A Copyright ©2020 4Paradigm All Rights Reserved.

4. 目录 1 上期快速上线SparkSQL模型预测回顾 2 时间窗口特征价值与面临的问题 - 时间窗口特征在真实业务场景价值 - 时间窗口特征计算面临的问题 - 问题分析 3 优化选择的思路 - jit vs interpreted - jit 引擎选择 llvm jit vs jvm 4 SparkSQL时间窗口优化实现 - SparkSQL时间窗口当前实现 - SparkSQL时间窗口llvm加速版本实现 - Benchmark 对比 5 Q&A Copyright ©2020 4Paradigm All Rights Reserved.

5.上期快速上线SparkSQL模型预测回顾 上期主要讲界模型上线遇到的困难 上期demo SparkSQL例子 1. 多表数据离线到在线怎么映射 2. SQL转换成实时执行成本高 3. 离线特征和在线特征保持一致困难 4. 离线效果达标但是在线效果无法满足业务需求 Copyright ©2020 4Paradigm All Rights Reserved.

6. 目录 1 上期快速上线SparkSQL模型预测回顾 2 时间窗口特征价值与面临的问题 - 时间窗口特征在真实业务场景价值 - 时间窗口特征计算面临的问题 - 问题分析 3 优化选择的思路 - jit vs interpreted - jit 引擎选择 llvm jit vs jvm 4 SparkSQL时间窗口优化实现 - SparkSQL时间窗口当前实现 - SparkSQL时间窗口llvm加速版本实现 - Benchmark 对比 5 Q&A Copyright ©2020 4Paradigm All Rights Reserved.

7.时间窗口特征在真实业务场景价值 风控反欺诈场景 理财营销场景 Copyright ©2020 4Paradigm All Rights Reserved.

8.时间窗口特征计算面临的问题 大量时序特征+多时间窗口暴露SparkSQL一些不 Automl + 时序特征=无穷的等待 足 Copyright ©2020 4Paradigm All Rights Reserved.

9.问题分析 SparkSQL对时间窗口的优化缺少codegen逻辑,直接使用WindowExec类执行,WindowExec也并没有实现CodegenSupport Copyright ©2020 4Paradigm All Rights Reserved.

10. 目录 1 上期快速上线SparkSQL模型预测回顾 2 时间窗口特征价值与面临的问题 - 时间窗口特征在真实业务场景价值 - 时间窗口特征计算面临的问题 - 问题分析 3 优化选择的思路 - jit vs interpreted - jit 引擎选择 llvm jit vs jvm 4 SparkSQL时间窗口优化实现 - SparkSQL时间窗口当前实现 - SparkSQL时间窗口llvm加速版本实现 - Benchmark 对比 5 Q&A Copyright ©2020 4Paradigm All Rights Reserved.

11.jit vs interpreted 代码片段 同样加法逻辑 jit vs interpreted Copyright ©2020 4Paradigm All Rights Reserved.

12.jit 引擎选择 llvm jit vs jvm 对底层硬件友好 性能对比 Copyright ©2020 4Paradigm All Rights Reserved.

13. 目录 1 上期快速上线SparkSQL模型预测回顾 2 时间窗口特征价值与面临的问题 - 时间窗口特征在真实业务场景价值 - 时间窗口特征计算面临的问题 - 问题分析 3 优化选择的思路 - jit vs interpreted - jit 引擎选择 llvm jit vs jvm 4 SparkSQL时间窗口优化实现 - SparkSQL时间窗口当前实现 - SparkSQL时间窗口llvm加速版本实现 - Benchmark 对比 5 Q&A Copyright ©2020 4Paradigm All Rights Reserved.

14.SparkSQL时间窗口实现 我们可以看出SparkSQL最后进行时间窗口处理会落到一个window function上面执行,最后一个函数也是我们核心优化的地方 执行计划 Copyright ©2020 4Paradigm All Rights Reserved.

15.LLVM加速版本实现 执行计划 Window函数 Copyright ©2020 4Paradigm All Rights Reserved.

16.LLVM加速版本实现 通过迭代绑定,在特征特别多场景,能够大大降低迭代次数 Copyright ©2020 4Paradigm All Rights Reserved.

17.LLVM加速版本实现 针对聚合函数,也做了一层业务逻辑优化,比如avg可以基于sum 特征和count特征完成,而且针对这个常用函数,为了获得更好的 llvm编译优化,我们针对聚合函数也是直接使用ir生成,并不是去 call c/c++ 函数 Copyright ©2020 4Paradigm All Rights Reserved.

18.benchmark Copyright ©2020 4Paradigm All Rights Reserved.

19.Q&A 在github上面快速试用 回复fedb拉入群进行技术交流 Apache Spark中国技 术社区 https://github.com/4paradigm/SparkS QLWithFeDB Copyright ©2020 4Paradigm All Rights Reserved.

20.Thanks. 商务咨询 TEL 媒体合作 contact@4paradigm.com 400-3520-3325 pr@4paradigm.com 北京总部 上海总部 深圳总部 新加坡总部 北京市海淀区上地东路35号颐 上海市浦东新区浦东南路1111号 深圳市南山区文化中心区文心二路 Fourth Paradigm Southeast 泉汇C座写字楼303室 新世纪办公中心15层 海德二道茂业时代10层10A单元 Asia PTE LTD 1 Fusionopolis Place, #03-20 Galaxis (West Lobby), Singapore, 138522