背景介绍
在用户行为分析和圈人场景中,经常需要从亿级甚至十亿级用户中快速筛选出符合特定标签的用户统计,很多企业会使用Apache Kylin(下文简称Kylin)来支持这样的场景。但是Apache Kylin的核心是预计算,当遇上设计不合理的Cube,或者需求维度多的场景时,会遇到维度爆炸,Cube构建时间长,SQL函数不支持等问题。
本文将介绍阿里云Hologres如何基于RoaringBitmap进行UV等高复杂度计算的方案,实现亿级用户万级标签亚秒级分析,帮助用户从Kylin平滑迁移到Hologres,实现更实时、开发更灵活、功能更完善的多维分析能力。
Apache Kylin与Hologres的对比
对比项 | Apache Kylin | Hologres | 差异点 |
定位 | MOLAP on Hadoop | Real-Time MPP Data Warehouse | - |
建模方式 | 星型、雪花模型 | 宽表模型、主题模型 | Hologres无需复杂建模理论和建模过程,数据导入即可查 |
核心原理 | 空间换时间,减少运行时计算,预计算Cube,依赖Hadoop | 并行计算、列存、向量化,充分利用多节点,多核计算资源 | Hologres没有存储爆炸问题,无需预构建等待 |
运维方式 | 依赖YARN,HBase,ZK等,外部依赖多 | 计算存储分离,弹性伸缩,升级平滑,无外部依赖 | Hologres托管式运维,运维简单,无需Hadoop技能 |
使用场景 | 固定报表,固定维度组合,固定指标服务,秒级响应 | 敏捷自助报表、自助式分析、探索式分析、自助取数、在线数据服务,秒级响应 | Hologres分析更敏捷,无限制,支持完善的SQL Join,嵌套查询,窗口函数等 |
查询接口 | 自定义JDBC,ODBC,有限SQL能力 | 兼容PostgreSQL,标准JDBC、ODBC,支持标准SQL | Hologres兼容开源生态,SQL标准 |
开发效率 | 依赖于建模人员的熟练度,掌握Kylin的复杂建模技巧 | 针对“表”设计,概念简单 | Hologres上手容易,学习门槛低 |
数据时效性 | T+1,加工流程长,数据修正慢,模型修改成本非常高 |