赞
踩
摘要:水滴筹大数据部门的数据开发工程师韩园园老师为大家分享水滴筹基于阿里云EMR StarRocks的实战经验。
本篇内容将会围绕以下五个方面展开:
1.公司介绍
2.StarRocks 概览
3.场景实战
4.最佳实践
5.未来规划
水滴创立于2016年,业务包括水滴筹、水滴保险商城等,于2021年5月7日上市。水滴以“用互联网科技助推广大人民群众有保可医,保障亿万家庭”为使命,致力于为用户提供健康保障解决方案。希望联合合作伙伴打造中国版联合健康集团,让用户以更低的费用享受到更好的诊疗。
自2016年7月至2022年末,水滴筹平台的捐款人达到了4.3亿,有超过277万的大病患者得到了帮助,总计筹集医疗资金达到569亿元,并提供了755个保险产品。
首先来梳理一下水滴筹在OLAP方面的发展历程。
从上表可以看到水滴对各个组件的使用场景,以前以TiDB作为主要组件进行OLAP分析和OLTP,少部分服务使用StarRocks;实时监控、用户行为分析还在ClickHouse中。
随着近几年业务的发展、实验的沉淀, OLAP组织架构也存在一些问题,如组件维护困难,数据冗余存储,数据收口和出口不统一等情况。水滴大数据希望引入一款实时OLAP数据库,统一数据的监控和查询,用于解决各业务线对数据高效实时数据查询和数据统计分析的需求。
水滴对OLAP引擎最关注的有四点,分别是:并发能力,物化视图,join能力和写入实时。
上表是基于水滴通过近几年的实践得到的结论,可以看出:
基于几个组件的使用和综合考虑,水滴最后决定将StarRocks作为最终的OLAP引擎,将TiDB的服务迁移到StarRocks中,开始实施组件的统一。
水滴OLAP整体架构如上图所示。主要分为如下几个部分:数据源、数据同步、OLAP引擎、应用场景和数据管理平台。
数据源又分为离线数据和实时数据。
数据进入OLAP引擎后,水滴主要用到三种表模型,分别是:明细模型,聚合模型和主键模型。
数据模型主要用到宽表、星型模型和雪花模型三种。
数据管理平台主要包括:元数据管理,稳定性保障,质量管理,以及数据安全。
目前水滴的集群规模为,包含3台FE和7台BE,每日查询量300万次。
数据写入方面,有1500多个离线任务,每日实时更新行数100万行以上,每日写入数据量1T以上。
下面以两个具体的场景为例来介绍水滴的StarRocks实战。
第一个场景是报表平台OLAP引擎统一。
水滴报表平台之前主要使用TiDB作为存储和查询引擎,后来又引入了StarRocks,由多个组件构成了我们的OLAP引擎。这样的架构存在如下三个痛点:
报表查询面对三大挑战:
在水滴报表平台之前的流程中,无论是离线数据还是实时数据,都会写入到TiDB和StarRocks中,然后提供报表平台或者业务系统进行使用。经过一段时间的测试和使用,评估StarRocks可以作为水滴报表平台的主要引擎,后续会将TiDB迁移到StarRocks中。
切换之前,水滴对两个平台做了压测对比。
上图中,左边是两个集群的详细参数。
首先将TiDB的所有数据同步到StarRocks中,保证压测的数据是完全一致的;然后,使用报表平台的所有SQL查询,在相同数据、相同SQL、相同并发的情况下,同时在TiDB和StarRocks中循环遍历执行这些SQL,经过一段时间的测试,基于水滴的使用场景和水滴数据针对两个引擎的查询性能得到了如下的结论,下面以TiDB中SQL的响应时间分成三部分进行对比,因为大部分响应时间都在这三个分段内:
水滴大数据部门经过架构优化后,统一了OLAP引擎为StarRocks,将离线和实时数据写到StarRocks之中,提供给业务系统以及报表平台使用。
新架构的优点是结构比较清晰,也维护了统一的数据口径。
上图从三方面展示了架构迁移后的效果:
在迁移StarRocks的过程中也遇到一些问题:
场景二是公司的财务推帐系统。
财务推帐系统使用TiDB作为数据存储查询引擎,面临的核心挑战是:
财务推帐系统所需的数据涉及多张表,每张标的数据量都是上亿级别,推帐需要多张上亿级别的表相互Join才能实现。因为TiDB的并发和内存的限制,目前没办法对这些表多表关联直接聚合处理,所以水滴先根据ID进行分段聚合,然后通过代码的聚合方式,写到中间表中。因为推帐是分场景的,处理时间最长的场景需要30分钟的时间,所有300多个场景并发处理,最终也需要4-5小时的时间。对财务同学的工作效率,有一定的影响。
改造之后的流程为:
数据首先实时写入TiDB中,然后从TiDB实时写入StarRocks中,因为中间聚合的数据进行反推,因此需要先进行快照数据留存后,StarRocks中的数据可以直接分场景聚合处理,单场景的最大耗时为30秒左右。
架构升级后,性能直接提升60倍,TiDB只参与存储不再参与计算,其引擎压力降低了70%,但是由于数据同时留存在TiDB和StarRocks中,存储成本有一定程度的增加。
水滴大数据部门的未来规划主要从三方面入手,分别是用户画像、监控报警和用户行为分析。
用户画像
监控报警
用户行为分析
切换难点:切换到StarRocks的难点在于,当前系统使用了大量的ClickHouse内置窗口函数和数组函数,在StarRocks对应的替代函数的准确率和适配度等有待验证。
水滴大数据部门对2023年StarRocks相关的计划包括:
在分享的最后,感谢阿里云StarRocks团队对我们的技术支持,使得我们更快更好地将StarRocks应用于各种场景中。水滴也会跟紧社区的步伐,更好地解决场景需求。
最后祝阿里云StarRocks发展得越来越好。
本文为阿里云原创内容,未经允许不得转载。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。