美团点评优化OLAP:Apache Kylin解决大数据查询痛点

0 下载量 14 浏览量 更新于2024-08-29 收藏 625KB PDF 举报
美团点评作为一家大型互联网公司,其在线分析处理(OLAP)需求主要分为即席查询和固化查询两大类。即席查询通常由用户手工编写SQL,用于临时的数据分析,SQL形式多样,对响应时间要求不高。然而,随着业务数据量和复杂性的增长,原有的固化查询解决方案面临挑战。 首先,对于即席查询,美团点评起初提供了Hive和Presto两个引擎来满足不同的查询需求。但这些系统在面对大数据量和复杂计算时,可能会出现响应时间延长的问题。Hive虽然易于使用,但性能可能受限于MapReduce模型;而Presto虽有良好的数据量和灵活性,但无法保证稳定快速的响应。 另一方面,固化查询需要秒级响应,美团点评过去依赖预先在数据仓库进行预聚合并导入MySQL。然而,随着维度数量的增长,维护大量维度组合的聚合表成本高昂,开发效率降低。此外,当数据量超过千万行时,MySQL的导入和查询速度变得极其缓慢,甚至会导致系统崩溃,这成为运维团队的主要痛点。另外,Hive和Presto这样的查询引擎在处理大规模查询时,对集群资源的压力也日益增大。 为解决这些问题,美团点评在2015年底启动了对高效OLAP引擎的调研,寻求一种能在数据量、性能和灵活性之间取得平衡的解决方案。在对比了市场上主流的OLAP引擎,如MPP架构(如Presto、Impala、SparkSQL和Drill),搜索引擎架构(如Elasticsearch)以及预计算系统(如Druid和Kylin)后,美团点评发现: - MPP架构的优势在于处理大数据量和灵活的查询,但无法提供始终如一的快速响应。 - 搜索引擎架构虽然在搜索查询上表现出色,但在处理扫描聚合查询时,性能会随数据量增加而下滑。 - 预计算系统如Kylin在数据入库时进行了预聚合,可以提供秒级响应,但牺牲了部分灵活性。 综合考虑美团点评的实际需求,特别是对高效率和灵活性的追求,以及对响应时间的严格要求,最终选择了Apache Kylin作为优化固化查询场景的解决方案。Kylin在设计上兼顾了大数据处理能力、性能以及一定程度的灵活性,能够在满足秒级响应的同时,有效缓解大数据和复杂查询带来的压力,从而更好地服务于美团点评的业务分析和运营工作。