Apache Kylin 在贝壳找房的实践

在2018年8月的 Apache Kylin meetup@北京活动上,贝壳找房工程师介绍了 Apache Kylin 在贝壳的最佳实践。
展开查看详情

1. Apache Kylin 在贝壳找房的实践 张如松-贝壳找房 | 大数据 架构团队 1 WE ARE BEIKE, 2018 BEIKE ALL RIGHTS RESERVED

2. 引言 • 随着链家的快速发展,从链家网到如今的升级版贝壳找房,我们面对的数据规模在快速增 长。与此同时,对数据的需求也越来越多,越来越多元和复杂。如何在超大数据规模场景 下满足用户复杂多变的需求,是我们面临并要解决的问题。本次和大家分享一下贝壳找房 是如何一步步解决这些问题,以及 Apache Kylin 在其中发挥的作用。 2 WE ARE BEIKE, 2018 BEIKE ALL RIGHTS RESERVED

3. 目录 • 早期架构 • OLAP 简介 • 基于 Apache Kylin 的升级版架构 • Apache Kylin 监控 • 优化经验和定制改造 • Q&A 3 WE ARE BEIKE, 2018 BEIKE ALL RIGHTS RESERVED

4. 早期架构 • 早期架构特点 • 架构简单、不易解耦 • 需求驱动、case by base解决问题。 • 固化 MySQL 难以存储大数据量 • 查询原始 Hive 速度慢、使用成本高 • 实时数据分析无解 4 WE ARE BEIKE, 2018 BEIKE ALL RIGHTS RESERVED

5. 目录 • 早期架构 • OLAP 简介 • 基于 Apache Kylin 的升级版架构 • Apache Kylin监控 • 优化经验和定制改造 • Q&A 5 WE ARE BEIKE, 2018 BEIKE ALL RIGHTS RESERVED

6. OLAP分类 • ROLAP(Relational OLAP) - 基于关系模型,实时进行聚合计算 - 实现:传统数据库引擎/SparkSQL/Presto • MOLAP(Multi-dimension OLAP) - 基于预定义模型,预先进行聚合计算,存储汇总结果 - 实现:Kylin/Druid • HOLAP(Hybrid OLAP) - 混合多引擎,不同场景路由到不同引擎 6 WE ARE BEIKE, 2018 BEIKE ALL RIGHTS RESERVED

7. ROLAP Warehouse • 优势 扫描 - 支持任意的 SQL 查询 - 无数据冗余,实时性好 • 缺点 聚合 - 大数据量及复杂查询返回慢 - 并发较差 • 场景 汇总 - 灵活性很高的分析 7 WE ARE BEIKE, 2018 BEIKE ALL RIGHTS RESERVED

8. MOLAP • 优势 warehouse - 支持超大原始数据集 - 快速返回,并发高 • 缺点 定义模型(cube) - 不支持明细 - 结果固化 预聚合存储 • 场景 - 能预知查询模式,并发有要求的 少量计算汇总 场景 8 WE ARE BEIKE, 2018 BEIKE ALL RIGHTS RESERVED

9. 目录 • 早期架构 • OLAP 简介 • 基于 Apache Kylin 的升级版架构 • Apache Kylin 监控 • 优化经验和定制改造 • Q&A 9 WE ARE BEIKE, 2018 BEIKE ALL RIGHTS RESERVED

10. OLAP 引擎选型 较高的并 发 百亿数据 亚秒级响 集 离线为主 MOLAP 应 (KYLIN) 具有一定 最好有sql 灵活性 接口 10 WE ARE BEIKE, 2018 BEIKE ALL RIGHTS RESERVED

11. 贝壳 Apache Kylin 使用统计 • 定位:离线 OLAP 引擎 • 800+ Cube,覆盖公司16个业务线 • Cube 存储总量300T+, 数据行数1600+亿行,单 Cube 最大60+亿行 • 日查询量100万+,时延<500ms(95%), <1s(99%) 11 WE ARE BEIKE, 2018 BEIKE ALL RIGHTS RESERVED

12. 升级版架构 降级 Tez mr 12 WE ARE BEIKE, 2018 BEIKE ALL RIGHTS RESERVED

13. 产品展示-指标平台 • 统一指标口径 • 自助配置报表 • 支持上卷下钻 • 权限控制 13 WE ARE BEIKE, 2018 BEIKE ALL RIGHTS RESERVED

14. Cube 管理平台 • 优化创建流程 • 灵活的权限控制 • 多集群透明 • 业务线隔离 • 关联任务调度 14 WE ARE BEIKE, 2018 BEIKE ALL RIGHTS RESERVED

15. Cube 管理平台 15 WE ARE BEIKE, 2018 BEIKE ALL RIGHTS RESERVED

16. Cube 管理平台 16 WE ARE BEIKE, 2018 BEIKE ALL RIGHTS RESERVED

17. Cube 管理平台 17 WE ARE BEIKE, 2018 BEIKE ALL RIGHTS RESERVED

18. Kylin 中间件 • 无限容量队列 • 并发控制 • Cube 优先级 • 多集群调度 • 任务重试 • 监控报警 18 WE ARE BEIKE, 2018 BEIKE ALL RIGHTS RESERVED

19. 目录 • 早期架构 • OLAP 简介 • 基于Apache Kylin的升级版架构 • Apache Kylin 监控 • 优化经验和定制改造 • Q&A 19 WE ARE BEIKE, 2018 BEIKE ALL RIGHTS RESERVED

20. Kylin 监控与分析 Ø 实时监控 l 慢查询监控 l 系统存活 l 异常监控 Ø 离线分析 l 合规检查 l Cube 统计 l 查询分析 l 膨胀率 l 耗时过程统计 20 WE ARE BEIKE, 2018 BEIKE ALL RIGHTS RESERVED

21. 实时监控 21 WE ARE BEIKE, 2018 BEIKE ALL RIGHTS RESERVED

22. 目录 • 早期架构 • OLAP 简介 • 基于 Apache Kylin 的升级版架构 • Apache Kylin监控 • 优化经验和定制改造 • Q&A 22 WE ARE BEIKE, 2018 BEIKE ALL RIGHTS RESERVED

23. Kylin 优化经验 • 维度组合优化(层级维度,衍生维度,联合维度等) • 选择高基数列做分片(默认rand存在bug,KYLIN-3388 ) • 维度编码选择(高基数维度不适合 dictionary) • HBase Rowkey 设计(查询频率/高基数优先) • 定期清理及合并(原生merge有bug) 23 WE ARE BEIKE, 2018 BEIKE ALL RIGHTS RESERVED

24. Kylin 定制改造 • 移植2.x分布式构建,并优化任务分配逻辑 • 下载字典逻辑(2.x已修复) • 全局字典锁bug(提交社区: KYLIN-3087 ) • 元数据同步并发优化 (提交社区: KYLIN-2862 ) • 非分区列 segment 裁剪 • 强制维表关联,查询成本统计… 24 WE ARE BEIKE, 2018 BEIKE ALL RIGHTS RESERVED

25. 目录 • 早期架构 • OLAP 简介 • 基于Apache Kylin 的升级版架构 • Apache Kylin 监控 • 优化 • Q&A 25 WE ARE BEIKE, 2018 BEIKE ALL RIGHTS RESERVED

26.26 WE ARE BEIKE, 2018 BEIKE ALL RIGHTS RESERVED

Kyligence (上海跬智信息技术有限公司)由首个来自中国的 Apache 软件基金会顶级开源项目 Apache Kylin 核心团队组建,是专注于大数据分析领域的数据科技公司,通过前沿数据技术的分析认知来加速用户关键商业决策是其使命。