2024年1月20日下午,轻喜到家大数据技术经理徐金龙在"阿里云 x StarRocks 云上极速湖仓"深圳 Meetup 上分享基于 EMR-StarRocks 构建实时湖仓分析平台实践。
深圳轻喜到家科技有限公司是互联网+到家服务的创新型企业,在全国35个城市布局,在职员工数万人。轻喜到家基于互联网、物联网、AI人工智能的技术创新,结合中国家庭高品质、多样化的生活场景,打造了中国领先的家庭生活服务平台,为600万+家庭创造品质生活,提供全生命周期的到家服务。
历史架构介绍与痛点
轻喜到家使用 CDH 自建大数据平台,基于 Kudu+Impala 进行 OLAP 分析。由于数据来源复杂,涵盖场景较多,随着数据量增大,当前架构出现越来越多痛点问题:自建 CDH 集群运维成本高、权限控制较复杂、集群抖动频繁;Impala 内存溢出,资源开销没有好的优化方案;实时计算需求增多,T+1无法满足时效性要求;无法覆盖 OLAP 全场景,数据更新慢,查询 QPS 高。
客户具体需求与技术选型
从业务需求上,轻喜到家需要搭建计算能力强,查询速度快,运维成本低,方便易上手的实时分析平台:亚秒级的数据查询延迟;支持大宽表以及多表 join;多种数据模型设计;支持与 Hadoop 生态圈适配;支持 update、精准去重能力;具备高并发的能力;支持数据的流式和批式写入;支持标准化的 SQL。
根据业务需求,轻喜到家对比了 StarRocks、ClickHouse、Kylin 三种引擎之后,凭借 StarRocks 查询延迟低,并发能力好,横向扩展容易、维护简单,支持流批处理 ,优秀的 Join 能力等,最终选择基于 EMR StarRocks 构建实时分析平台。
EMR Serverless StarRocks 主要技术优势
- 查询性能
StarRocks 最大的优势就是查询性能。主要得益于列存,高效的 IO,高效的编码的存储,丰富的索引加速(包括前缀索引、Bitmap 倒排索引),物化视图的加速查询,全面的向量化,以及它的 MPP 的架构,通过并行执行中间结果不落盘的方式,能够让结果更快地跑出来,并且能够在集群规模扩大的时候带来性能的线性提升。
- 多数据模型设计
丰富的模型,主要用到的是更新模型、主键模型,我们的很多场景依赖于实时 CDC 的数据,它对 CDC 流有着更好的实时更新性能。另外,它原生的分区分桶设计架构,能够利用到数据的冷热的存储,能够利用分区裁剪的性能去更好地提升查询性能。
- 物化视图、外表
丰富的数据查询手段,数据仓库环境中的应用程序经常基于多个大表执行复杂查询,通常涉及多表之间数十亿行数据的关联和聚合。处理此类查询通常会大量消耗系统资源和时间,造成极高的查询成本。
轻喜到家现有技术架构及落地场景应用
现在 StarRocks 最重要的一个场景,就是 BI 报表、多维分析的场景。还是一个 Lambada 架构,会有一些原始数据,比如业务 DB,有一些业务的日志埋点数据,实时这部分链路是 Kafka 到 Flink,最终到 StarRocks,是分钟级的数据;离线部分是 Hive 架构,主要是以天级和小时级的数据放到 StarRocks,上层去对接报表的应用。
原本是用 MySQL 做 BI 报表的底座,但是在数据规模超到超过百万,遇到一些高技术维度、多维度的数据的时候,查询性能就会比较慢。所以用 StarRocks 替代 MySQL 来做多维分析,带来的提升非常明显。
同时,我们也有一些基于客户端的用户行为埋点数据。所以我们用 StarRocks 把用户行为分析进行了重构。利用到 StarRocks 查询加速的能力,去给用户提供事件的聚合数据,能提供 UserTrack 的一个能力。
基于 EMR StarRocks,轻喜到家搭建了实时湖仓分析平台,实现了整体技术架构的升级,为业务发展提供了强大的技术底座支撑。最后感谢 EMR StarRocks 团队同学的支持,希望未来继续紧密合作,合作共赢。
欢迎钉钉扫码加入EMR Serverless StarRocks交流群(搜索钉钉群号加群:24010016636)