没有合适的资源?快使用搜索试试~ 我知道了~
首页Apache Kylin在美团点评的高效OLAP解决方案与挑战
Apache Kylin在美团点评的高效OLAP解决方案与挑战
1 下载量 34 浏览量
更新于2024-08-28
收藏 691KB PDF 举报
本文主要探讨了Apache Kylin在美团点评的具体应用案例,特别是在解决大规模在线分析处理(OLAP)需求上的实践。美团点评的OLAP需求可以大致分为两类:即席查询和固化查询。即席查询涉及用户的临时性数据分析,SQL复杂且多样化,对响应时间要求不高;而固化查询则是固定模式的数据获取,对响应速度有较高要求,通常通过数仓预聚合后导入MySQL进行。 美团在面对日益增长的数据量和复杂度时,原有的解决方案出现了问题:维度组合的维护成本上升,MySQL性能受限且频繁崩溃,以及大数据平台的计算压力过大。为解决这些问题,他们在2015年引入了Apache Kylin作为更高效率的OLAP引擎。 Kylin的选择基于对市场主流OLAP引擎的对比分析。MPP架构(如Presto、Impala等)虽然在数据量和灵活性方面表现出色,但无法保证稳定快速的响应时间。搜索引擎架构(如Elasticsearch)虽然在搜索查询上有优秀性能,但在扫描聚合查询上,随着数据量增大,响应时间也会下降。 预计算系统,如Kylin,其在入库时进行了预计算,旨在提供更快的响应。它能够在数据量大和计算复杂度高的情况下保持较高的性能,适合于美团点评的固化查询场景,能够有效减少维度组合的维护工作,提升数据开发效率,并减轻集群的计算压力。 通过引入Apache Kylin,美团点评成功地优化了其数据分析流程,实现了数据仓库的高效管理和查询性能的显著提升,从而更好地支持了公司的日常业务运营和决策支持。这展示了在实际业务环境中,如何根据特定需求选择合适的OLAP工具,以提升整体IT系统的效能。
资源详情
资源推荐
【案例分享】【案例分享】Apache Kylin在美团点评的应用在美团点评的应用
编辑推荐编辑推荐:
本文主要介绍了Apache Kylin在美团点评的应用及案例分析,希望对您有帮助。
本文来自知乎,由火龙果软件Linda编辑、推荐。
美团点评的OLAP需求大体分为两类:
即席查询:指用户通过手写SQL来完成一些临时的数据分析需求。这类需求的SQL形式多变、逻辑复杂,对响应时间没有严格
的要求。
固化查询:指对一些固化下来的取数、看数的需求,通过数据产品的形式提供给用户,从而提高数据分析和运营的效率。这类
需求的SQL有固定的模式,对响应时间有比较高的要求 。
我们针对即席查询提供了Hive和Presto两个引擎。而固化查询由于需要秒级响应,很长一段时间都是通过先在数仓对数据做预
聚合,再将聚合表导入MySQL提供查询实现的。但是随着公司业务数据量和复杂度的不断提升,从2015年开始,这个方案出
现了三个比较突出的问题:
随着维度的不断增加,在数仓中维护各种维度组合的聚合表的成本越来越高,数据开发效率明显下降;
数据量超过千万行后,MySQL的导入和查询变得非常慢,经常把MySQL搞崩,DBA的抱怨很大;
由于大数据平台缺乏更高效率的查询引擎,查询需求都跑在Hive/Presto上,导致集群的计算压力大,跟不上业务需求的增
长。
为了解决这些痛点,我们在2015年末开始调研更高效率的OLAP引擎,寻找固化查询场景的解决方案。
为什么选择Kylin
在调研了市面上主流的开源OLAP引擎后,我们发现,目前还没有一个系统能够满足各种场景的查询需求。其本质原因是,没
有一个系统能同时在数据量、性能、和灵活性三个方面做到完美,每个系统在设计时都需要在这三者间做出取舍。
例如:
MPP架构的系统(Presto/Impala/SparkSQL/Drill等)有很好的数据量和灵活性支持,但是对响应时间是没有保证的。当数据
量和计算复杂度增加后,响应时间会变慢,从秒级到分钟级,甚至小时级都有可能。
搜索引擎架构的系统(Elasticsearch等)相对比MPP系统,在入库时将数据转换为倒排索引,采用Scatter-Gather计算模型,
牺牲了灵活性换取很好的性能,在搜索类查询上能做到亚秒级响应。但是对于扫描聚合为主的查询,随着处理数据量的增加,
响应时间也会退化到分钟级。
预计算系统(Druid/Kylin等)则在入库时对数据进行预聚合,进一步牺牲灵活性换取性能,以实现对超大数据集的秒级响应。
有了这套框架,我们不难结合美团点评的自身需求特点,选择合适的OLAP引擎。
下载后可阅读完整内容,剩余6页未读,立即下载
weixin_38723192
- 粉丝: 8
- 资源: 870
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C++多态实现机制详解:虚函数与早期绑定
- Java多线程与异常处理详解
- 校园导游系统:无向图实现最短路径探索
- SQL2005彻底删除指南:避免重装失败
- GTD时间管理法:提升效率与组织生活的关键
- Python进制转换全攻略:从10进制到16进制
- 商丘物流业区位优势探究:发展战略与机遇
- C语言实训:简单计算器程序设计
- Oracle SQL命令大全:用户管理、权限操作与查询
- Struts2配置详解与示例
- C#编程规范与最佳实践
- C语言面试常见问题解析
- 超声波测距技术详解:电路与程序设计
- 反激开关电源设计:UC3844与TL431优化稳压
- Cisco路由器配置全攻略
- SQLServer 2005 CTE递归教程:创建员工层级结构
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功