1. 小米集团
背景
小米公司内部的业务种类异常繁杂,各业务团队为了具备多维数据分析能力而各自建立了独立的OLAP分析系统。这些OLAP引擎大多采用指标数据先进入MySQL,再在前端展示的方法,而这样一来就会面临以下问题:
- 基于MySQL的架构,在大数据上的查询效率低下
- 业务间OLAP引擎不统一,数据管道冗长,数据复用率极低,开发工作周期变长,维护成本增加
- 缺乏统一的维表和事实表,同主题下的数据统计口径不一致
- 新增业务需要投入较大的成本才能获得基础的OLAP能力
各业务团队的基础需求主要包括以下四点
- 报表能力
- 提供OLAP查询接口,支持各种即席分析
- 尽可能降低使用门槛(ETL及查询的门槛)
- 初级阶段只需支持离线分析需求即可
利用Apache Kylin构建定制化OLAP解决方案
- 可满足大多数需求,支持常见的算子,以及数据的摄入、查询速度足够快
- 保证良好的SLA
- 使用门槛相对较低
SQL计划器会对用户的查询进行解析与重排,而SQL转发器则会把改写后的结果分发给不同的引擎。
在引入Apache Kylin作为OLAP引擎之后,就可以将需要进行分析的数据抽象成星形模型,其优势如下:
- 只需维护最细粒度的事实分析数据,进行简单的ETL处理
- 数据流变得更清晰
- 维护成本进一步降低
Kylin在小米的三类主要应用场景
一般情况下,业务团队的OLAP需求可大体分为三类——用户画像、数据运营、数据分析。
2. 美团点评
美团点评的数据场景特点
第一个特点是数据规模和模型。从数据规模上来讲,事实表一般在1亿到10亿量级,甚至有千万量级的维表,也就是超高基数的维表。而对于数据模型,是团队最初遇到的最大的困难。因为所使用的Kylin最初的设计是基于一个星形模型的,但很不幸,由于各种原因,实际很多数据都是雪花模型
第二个特点是维度。维度最理想的情况是固定的,每天变化的只是事实表。但实际上维度经常会变,这可能和行业特点有关,比如组织架构,相关的维度数据可能每天都会发生变化。除此之外还可能要用今天的维度去关联所有的历史数据,因此要重刷历史数据,相应的开销也比较大。(缓慢变化维???)
第三个特点是数据回溯的问题。比如发现数据生成有问题,或者上游出错了,此时就需要重跑数据。这也是和经典理论模型有区别的。
接入Apache Kylin的解决方案
最重要的是第一点,就是采用宽表。所有非标准星形的数据模型都可以通过预处理先拉平,做成一个宽表来解决。只要能根据业务逻辑把这些表关联起来生成一张宽表,然后再基于这张表在Kylin里做数据的聚合就可以了。宽表不只能解决数据模型的问题,还能解决维度变化、超高基数的维度等问题。
第二点是表达式指标的问题。这个问题也可以通过预处理解决,把表达式单独转成一列,再基于该列做聚合就可以了。实际上,宽表和表达式变换的处理可以用Hive的view,也可以生成物理表。
第三点是精确去重的问题。目前的方案是基于Bitmap。
Kylin的优势
- 第一,性能非常稳定。因为Kylin依赖的所有服务,比如Hive、HBase都是非常成熟的,Kylin本身的逻辑并不复杂,所以其稳定性有很好的保障。
- 也是特别重要的一点,就是精确去重计算的要求。
- 从易用性上来讲,Kylin也有非常多的特点。首先是外围服务,不管是Hive还是HBase,只要用Hadoop系统的话基本上所有外围服务都有了,不需要做额外的工作。
3. 携程
选择Kylin的原因
- 百亿数据集支持
- SQL支持
- 亚秒级响应
- 高并发
- HBase的技术储备
- 离线分析多
Kylin在携程的应用情况
4. 4399小游戏
背景
Hadoop为4399大数据平台提供了数据管理功能,但是现有的业务分析工具(如Tableau、Microstrategy等)存在很大的局限性,如难以进行水平扩展、无法处理超大规模数据、缺少对Hadoop的支持等。
Kylin部署架构
Apache Kylin在4399的价值
- 提供ANSI-SQL接口,使统计分析由繁杂变得简单
- 解决口径不一致问题
- 增加维度或指标时,大大降低了工作量
5. 国内某Top 3保险公司
背景
企业期望通过一系列业财系统建设,打通业财两类数据间的壁垒,融合业务、财务、战略三大流程,支持更广泛的经营结果和财务分析,促进费率厘定、保险营销、保险核保、保险理赔等环节的优化提升
主要痛点
- 业务层面缺少对业务质量进行分析和挖掘的工具,无法实现在各种维度口径下对保单综合成本率的灵活精细分析
- 财务分析受限于维度、指标、维度口径、指标明细、数据挖掘性等因素,无法有效成为业务信息触点以通过数据对业务进行指导
- 各业务条线独立运维数据仓库和报表平台,存在数据孤岛问题;报表繁杂,模块分散;Cognos Power Cub查询性能差,数据构建周期长,运维复杂
Kylin带来的改变
- 无缝集成Cognos BI或其他前端展现工具,业务应用无须改变,只是底层数据源实现快速切换
- 显著降低Cube设计的复杂度,节省了大量重复的开发和运维人力成本,将IT资源聚焦到更多有价值和创新的技术和业务上
- 提供智能化方法敏捷迁移现有Cube,实现业务分析体验和效率的提升,大大缩短了项目部署周期
- Cube日增量构建通常能在1小时内完成,大大提升了从数据到业务结果呈现的时效性
- 基于PB级数据,无须IT团队事先准备汇总场景,用户可进行灵活拖放、筛选过滤、钻取等自助分析操作,提供更好的用户体验,加速了业务获得数据的效率
- 支持读写分离架构,提供稳定的并发性能,满足大量用户同时访问的需求,赋能企业将数据分析和决策能力渗透到企业各个层级