背景介绍
在用户行为分析和圈人场景中,经常需要从亿级甚至十亿级用户中快速筛选出符合特定标签的用户统计,很多企业会使用ApacheKylin(下文简称Kylin)来支持这样的场景。但是ApacheKylin的核心是预计算,当遇上设计不合理的Cube,或者需求维度多的场景时,会遇到维度爆炸,Cube构建时间长,SQL函数不支持等问题。
本文将介绍阿里云Hologs如何基于RoaringBitmap进行UV等高复杂度计算的方案,实现亿级用户万级标签亚秒级分析,帮助用户从Kylin平滑迁移到Hologs,实现更实时、开发更灵活、功能更完善的多维分析能力。
ApacheKylin与Hologs的对比
使用Hologs方案的收益:实时、灵活、简单
基于上述的比较,我们看到Kylin和Hologs拥有一些共同的场景:海量数据交互式分析、亚秒级响应、横向扩展能力。Kylin有很多优点,包括:最小化查询开销,以点查的性能完成多维分析,查询性能更稳定,利用Bitmap支持全局精确去重。同时也发现了一些Kylin的使用难点,包括:建模复杂(主要由IT团队负责建模),Cube膨胀(存储成本高),构建Cube时间长(业务不实时,构建任务资源消耗大),模型不可变(业务不敏捷),SQL支持能力弱(固定的Join连接条件、有限的SUMCOUNT算子,BI兼容度低,SQL协议不标准),可扩展能力弱(UDF少)。
迁移到Hologs之后,可以获得的收益包括:建模简单(面向表,DWDDWS),SQL能力强(兼容PostgSQL11,支持Ad-HocQuery),数据链路实时(写入即可见),运维简单(无Hadoop依赖)
如何从Kylin迁移到Hologs
架构调整:从Hadoop/HBase架构,调整到MPP数据仓库Hologs,去Hadoop,ZK等依赖建模上:从面向指标的多维建模,调整为面向表的DWD、DWS分层建模,DWD为主,性能敏感时补充DWS甚至ADS,