Apache Spark在海致BDP中的优化实践

通用BI产品需要考虑各种复杂数据分析场景,既要灵活易用,又要兼顾性能和稳定性,产品在研发过程中面临诸多挑战。本次分享主要介绍基于Apache Spark构建一站式数据分析平台BDP(多数据源接入、可视化建模、OLAP任意多维分析引擎、机器学习平台)所面临的难点及技术挑战,以及在性能和稳定性方面对Spark SQL的改进优化。

展开查看详情

1.Apache Spark在海致BDP中的优化实践 翟士丹@海致 2019-11-30

2.公司简介 海致全称海致网络技术公司,成立于2013年7月。作为一家技术驱动的 创业型公司,海致的创始班底拥有丰富的技术经验。核心团队成员来自百 度、微软、IBM、EMC、硅谷等知名企业的资深互联网专家。 海致目前已完成C轮3000万美元融资,估值2.5亿美元。本轮融资由君 联资本领投、IDG资本、晨兴创投以及中国领先的金融数据服务企业万得 咨询跟投。

3.个人介绍 2012 ~ 2014:搜狐畅游,负责公司内数据分析产品开发 2014 ~ 至今:海致,技术副总监,负责BDP产品的研发 专注于大数据技术领域, Apache Spark Contributor, 有丰富的Spark SQL引擎调优经验。 翟士丹

4. Agenda 1. 海致BDP发展历程 2. BDP的核心组成部分 3. BDP的技术挑战与建设难点 4. BDP私有化部署及智能监控 5. Q&A

5.What is BDP? 一站式数据平台解决方案 数据驱动管理 提升经营绩效

6.What is BDP ? 快速打造贴合业务的一站式数据分析平台 灵活 完整 易用 闭环

7. 海致BDP发展历程 Apache Spark 0.9 -> 2.3 BDP前身:经营罗盘 BDP个人版 BDP行业化 基于大数据技术的BI平台, 面向个人分析师或小微客 面向公安及金融行业的头 主要技术栈: 户服务。 部客户提供数据分析服务。 HDFS+Hive+Shark 挑战:HDFS大量小文件 (Spark 0.9) 问题;高并发OLAP查询 挑战:阿里云、星环、华 可视化: 性能考验 为云等平台支持,第三方 Angular+Highcharts 厂商数据交换等。 2014 2016 2018 2015 2017 BDP BDP私有化 一站式数据管理和分析平 为了更好的服务大客户, 台,SaaS服务模式。 推出私有化部署版本。 挑战:监控运维成本

8.成果 已帮助数千家企业搭建了自己的数据平台 搭建周期:1天~1周

9. Agenda 1. 海致BDP发展历程 2. BDP的核心组成部分 3. BDP的技术挑战与建设难点 4. BDP的私有化部署及运维监控 5. Q&A

10.2. 一站式数据平台 多数据源整合 数据处理 可视化分析 报告分发 自助式数据 可视化探索 安全快捷的 覆盖全面的 多数据整合 准备 式分析 分发机制 应用场景

11.2.1 产品架构

12.2.1 技术架构

13.2.2 多数据整合,形成统一的数据口径 APP/网站 内部 同步工具/接口 业务系统 业务 数据 CRM、ERP 等 统 一 营销投放 数据 外部 API 数 咨询工具 业务 集中 数据 据 第三方平台 管理 出 咨询报告 口 外部 平台直供 公共数据 公开 数据 示例数据

14.2.2 多数据整合,建立统一的数据口径 App应用排名 上百种数据源 天气数据 CPI PMI 其他… SQL Server API Oracle MySQL MongoDB 百度搜索 搜狗搜索 神马搜索 360搜索 Excel/CSV等 友盟

15.2.3 同步客户端

16.2.4 可视化探索式分析 灵活 易用 高性能

17.2.4 可视化探索式分析 高级计算 多 数 层 计算字段 据 钻 筛 取 选 汇总统计

18.2.4 展现形式漂亮直观,分析到位,指标预警,让数据说话

19.2.4 GIS地图分析

20.2.5 自助式数据处理-合表 拖拽式关联合表 自定义数据聚合 高灵活追加合并 完善的SQL支持

21.2.5 自助式数据处理-数据建模

22.2.6 机器学习

23.2.7 SaaS平台的一些数据 工作表数 图表数 1,190,671 4,190,316 平均每日查询任务量 平均查询耗时 328,370 1,870 ms

24. Agenda 1. 海致BDP发展历程 2. BDP的核心组成部分 3. BDP的技术挑战与建设难点 4. BDP私有化部署及智能监控 5. Q&A

25. 3. BDP的技术挑战与建设难点 1. 数据同步 2. OLAP任意多维分析引擎实现 3. 数据建模系统实现 4. 机器学习实现 5. 性能及稳定性优化

26. 3.1 数据同步之数据表的DML支持——自研Patch存储结构 • insert、upsert、delete • 主键 • 并发写及ACID事务 • 基于parquet自动合并小文件 • 数据版本 table_data _action _timestamp field1(key) field2 DML insert a 1 1 Merge field1(key) field2 update a 2 2 a 2 insert b 1 3 c 3 delete b 4 insert c 3 5 Result Data Patch

27.3.1 BDP Mobius VS. Delta Lake BDP Mobius Delta Lake Updates and Deletes API SQL Data operation granularity Record/Batch Batch ACID Transactions Table level Operation level Open format Parquet Parquet Time Travel & Audit History Table commit as a version Operation as a version Hadoop's small files problem 64M/parquet Cleanup Old Table Versions with Vacuum Streaming No Yes Released date 2014 2019

28. 3. BDP的技术挑战与建设难点 1. 数据同步 2. OLAP任意多维分析引擎实现 3. 数据建模系统实现 4. 机器学习实现 5. 性能及稳定性优化

29. 3.2 OLAP任意多维分析引擎实现 OLAP Query Failed • 统一查询接口 Validator End • 底层跨执行引擎 Cache • SQL语法增强 未命中 • SQL Rewriter Query Router SQL Rewriter Engine Execute Result

我们团队核心骨干来自百度、阿里、滴滴、美团,有多年的大数据产品研发经验,业务覆盖产业互联网的各个领域(bdp.cn),工程师文化;;海致目前已完成C轮3000万美元的融资。https://www.haizhi.com/
关注他