美团的OLAP需求与Kylin的应用
美团的各个业务线面临大量的在线分析处理(OLAP)需求,需要基于Hadoop处理数十亿级别的数据,满足分析师和城市业务发展经理等数千人的实时交互请求。这对OLAP服务的扩展性、稳定性、数据准确性和功能性提出了极高的要求。本文主要介绍美团的具体OLAP需求,Kylin在实际应用中的部署和现状,并与其他系统如Presto、Druid等进行了对比,突显Kylin的独特优势。
美团的数据场景特点
数据规模和模型特点:
- 数据规模庞大,典型表的数据量通常在1亿至10亿之间,还有大量千万级的维度表。
- 数据模型复杂,包括星形、雪花形等多种模型,难以用传统模型解释。
维度变化:
- 维度经常变动,特别是在组织架构等领域,这给数据管理和查询带来了挑战。
数据回溯问题:
- 当发现数据生成错误或上游数据有问题时,需要重新处理数据。
目标和查询需求:
- 目标数量一般在50个以内,Kylin在处理这类目标时表现出色。
- 对于表达式目标,Kylin支持有限的聚合函数,需特殊处理。
- 数据准确性至关重要,Kylin通过Bitmap技术实现精确去重,尽管目前只支持整数类型。
查询性能要求:
- 查询服务面向城市业务发展经理,需具备高稳定性和高性能,响应时间需达到秒级。
接入Apache Kylin的解决方案
数据模型处理:
- 使用宽表模式,将复杂的非标准星形模型转换为易于处理的表格。
表达式目标处理:
数据准确去重:
- 采用Bitmap技术处理数据去重问题,未来计划支持更多数据类型。
系统部署:
- Kylin服务器采用分离部署,保证生产环境的稳定性和性能。
主流OLAP系统对比分析
功能完备性:
- Kylin在数据准确性方面表现出色,但功能完备性略逊于Presto。
系统易用性:
- Kylin在部署和监控方面较为简便,而Druid需要更多资源和配置。
数据成本:
- Presto的数据处理成本较低,Kylin和Druid需要更多预处理步骤。
查询灵活性:
- Presto支持灵活查询,而Kylin和Druid需要预定义模型。
Kylin的优势
功能稳定:
- Kylin依赖的Hive和HBase均为成熟系统,其自身逻辑简单,稳定性高。
数据准确性:
- Kylin在数据准确性方面具有独特优势,能满足高精度需求。
易用性:
- Kylin提供公共Web界面进行模型配置,简化了用户的操作流程。
社区支持:
- Kylin拥有活跃的社区和热心的核心开发团队,贡献了许多新功能。
未来工作方向
准确去重计数:
查询和构建效率:
明细数据和流处理:
Q&A
Q1: 建模时的成本如何估算?
A1: 例如,两亿行数据,14-15个维度,建模时间不超过两小时,生成的数据约为500GB。
Q2: 原始数据大小是多少?
A2: 建模所需数据压缩后仅几个GB。
Q3: 是否遇到过Kerberos认证失效的问题?
A3: 认证后会在本地临时目录生成票据,定期刷新即可,不影响服务运行。
主持人补充:选择SQL接口是因为大多数业务人员和分析师仅熟悉SQL,易用性是关键因素。
作者简介
孙业锐,美团高级工程师,Apache Kylin的Committer。毕业于电子科技大学,曾任职于奇虎360,负责Hadoop平台建设。目前专注于数据生产和查询引擎的改进和优化,尤其擅长分布式计算和OLAP分析。