Apache Kylin在美团数十亿数据OLAP场景下的实际
作者头像
  • 德亚城市智能交通
  • 2019-11-17 15:41:00 6

美团的OLAP需求与Kylin的应用

美团的各个业务线面临大量的在线分析处理(OLAP)需求,需要基于Hadoop处理数十亿级别的数据,满足分析师和城市业务发展经理等数千人的实时交互请求。这对OLAP服务的扩展性、稳定性、数据准确性和功能性提出了极高的要求。本文主要介绍美团的具体OLAP需求,Kylin在实际应用中的部署和现状,并与其他系统如Presto、Druid等进行了对比,突显Kylin的独特优势。

美团的数据场景特点

  1. 数据规模和模型特点

    • 数据规模庞大,典型表的数据量通常在1亿至10亿之间,还有大量千万级的维度表。
    • 数据模型复杂,包括星形、雪花形等多种模型,难以用传统模型解释。
  2. 维度变化

    • 维度经常变动,特别是在组织架构等领域,这给数据管理和查询带来了挑战。
  3. 数据回溯问题

    • 当发现数据生成错误或上游数据有问题时,需要重新处理数据。
  4. 目标和查询需求

    • 目标数量一般在50个以内,Kylin在处理这类目标时表现出色。
    • 对于表达式目标,Kylin支持有限的聚合函数,需特殊处理。
    • 数据准确性至关重要,Kylin通过Bitmap技术实现精确去重,尽管目前只支持整数类型。
  5. 查询性能要求

    • 查询服务面向城市业务发展经理,需具备高稳定性和高性能,响应时间需达到秒级。

接入Apache Kylin的解决方案

  1. 数据模型处理

    • 使用宽表模式,将复杂的非标准星形模型转换为易于处理的表格。
  2. 表达式目标处理

    • 提前处理表达式,将其转换为独立列,便于后续聚合。
  3. 数据准确去重

    • 采用Bitmap技术处理数据去重问题,未来计划支持更多数据类型。
  4. 系统部署

    • Kylin服务器采用分离部署,保证生产环境的稳定性和性能。

主流OLAP系统对比分析

  1. 功能完备性

    • Kylin在数据准确性方面表现出色,但功能完备性略逊于Presto。
  2. 系统易用性

    • Kylin在部署和监控方面较为简便,而Druid需要更多资源和配置。
  3. 数据成本

    • Presto的数据处理成本较低,Kylin和Druid需要更多预处理步骤。
  4. 查询灵活性

    • Presto支持灵活查询,而Kylin和Druid需要预定义模型。

Kylin的优势

  1. 功能稳定

    • Kylin依赖的Hive和HBase均为成熟系统,其自身逻辑简单,稳定性高。
  2. 数据准确性

    • Kylin在数据准确性方面具有独特优势,能满足高精度需求。
  3. 易用性

    • Kylin提供公共Web界面进行模型配置,简化了用户的操作流程。
  4. 社区支持

    • Kylin拥有活跃的社区和热心的核心开发团队,贡献了许多新功能。

未来工作方向

  1. 准确去重计数

    • 支持所有数据类型,扩大应用场景。
  2. 查询和构建效率

    • 优化资源分配和结果集处理,提升查询速度。
  3. 明细数据和流处理

    • 探索使用明细数据和流处理技术。

Q&A

Q1: 建模时的成本如何估算? A1: 例如,两亿行数据,14-15个维度,建模时间不超过两小时,生成的数据约为500GB。

Q2: 原始数据大小是多少? A2: 建模所需数据压缩后仅几个GB。

Q3: 是否遇到过Kerberos认证失效的问题? A3: 认证后会在本地临时目录生成票据,定期刷新即可,不影响服务运行。

主持人补充:选择SQL接口是因为大多数业务人员和分析师仅熟悉SQL,易用性是关键因素。

作者简介

孙业锐,美团高级工程师,Apache Kylin的Committer。毕业于电子科技大学,曾任职于奇虎360,负责Hadoop平台建设。目前专注于数据生产和查询引擎的改进和优化,尤其擅长分布式计算和OLAP分析。

    本文来源:图灵汇
责任编辑: : 德亚城市智能交通
声明:本文系图灵汇原创稿件,版权属图灵汇所有,未经授权不得转载,已经协议授权的媒体下载使用时须注明"稿件来源:图灵汇",违者将依法追究责任。
    分享
场景实际数据ApacheKylinOLAP
    下一篇