深圳轻喜到家科技有限公司是互联网+ 到家服务的创新型企业,在全国多个城市布局,在职员工数万人。轻喜到家基于互联网、物联网、AI 人工智能的技术创新,结合中国家庭高品质、多样化的生活场景,打造了中国领先的家庭生活服务平台,为 600 万+ 家庭创造品质生活,提供全生命周期的到家服务。
轻喜到家使用 CDH 自建大数据平台,基于 Kudu+Impala 进行 OLAP 分析。由于数据来源复杂,涵盖场景较多,随着数据量增大,当前架构出现越来越多痛点问题:
自建 CDH 集群运维成本高、权限控制较复杂、集群抖动频繁。
Impala 内存溢出,资源开销大,缺乏理想的优化方案。
实时计算需求增多,T+1 无法满足时效性要求。
无法覆盖 OLAP 全场景,数据更新慢,查询 QPS 高。
从业务需求上,轻喜到家需要搭建计算能力强、查询速度快、运维成本低、方便易上手的实时分析平台,能支持亚秒级的数据查询延迟;支持大宽表以及多表 Join;多种数据模型设计;支持与 Hadoop 生态圈适配;支持 update、精准去重能力;具备高并发的能力;支持数据的流式和批式写入;支持标准化的 SQL。
根据业务需求,轻喜到家对比了 StarRocks、ClickHouse、Kylin 三种引擎之后,凭借 StarRocks 查询延迟低,并发能力好,横向扩展容易、维护简单、支持流批处理、优秀的 Join 能力等,最终选择基于 EMR StarRocks 构建实时分析平台。
查询性能
EMR StarRocks 最大的优势就是查询性能。主要得益于列存、高效的 IO 和编码存储、丰富的索引加速(包括前缀索引、Bitmap 倒排索引)、物化视图的加速查询、全面的向量化以及 MPP 架构,通过并行执行中间结果不落盘的方式,能更快完成查询任务,并能够在集群规模扩大的时候带来性能的线性提升。
多数据模型设计
支持丰富的模型,主要用到的是更新模型、主键模型。很多场景依赖于实时 CDC 的数据,EMR StarRocks 对 CDC 流有着更好的实时更新性能。另外,原生的分区分桶设计架构,能够实现数据的冷热存储、分区裁剪,更好地提升查询性能。
物化视图、外表
支持丰富的数据查询手段。数据仓库环境中的应用程序经常基于多个大表执行复杂查询,通常涉及多表之间数十亿行数据的关联和聚合。处理此类查询通常会大量消耗系统资源和时间,造成极高的查询成本。
当前 StarRocks 的核心应用场景是 BI 报表与多维分析。系统采用 Lambda 架构处理多源数据:原始数据包括业务数据库的事务数据和日志埋点数据,其中实时数据通过 Kafka 接入,经 Flink 处理实现分钟级延迟后写入 StarRocks;离线数据基于 Hive 数仓架构,按天级或小时级粒度导入 StarRocks,最终为上层报表应用提供统一分析服务。
早期架构使用 MySQL 作为 BI 报表底座,但在数据量超过百万级且涉及高维度、多维度分析时,查询性能显著下降。改用 StarRocks 进行多维分析后,性能提升效果明显。
针对客户端用户行为埋点场景,基于 StarRocks 重构了行为分析模块。借助 StarRocks 的查询加速能力,可高效生成事件聚合数据,实现用户行为轨迹追踪(UserTrack)功能。
基于 EMR StarRocks,轻喜到家搭建了实时湖仓分析平台,实现了整体技术架构的升级,为业务发展提供了强大的技术底座支撑。