ToB企服应用市场:ToB评测及商务社交产业平台

标题: 水滴筹基于阿里云 EMR StarRocks 实战分享 [打印本页]

作者: 张国伟    时间: 2024-6-10 10:14
标题: 水滴筹基于阿里云 EMR StarRocks 实战分享
择要:水滴筹大数据部门的数据开发工程师韩园园老师为大家分享水滴筹基于阿里云EMR StarRocks的实战履历。  
  
本篇内容将会围绕以下五个方面展开:  
  
1.公司介绍  
2.StarRocks 概览  
3.场景实战  
4.最佳实践  
5.将来规划  一、公司介绍


水滴创立于2016年,业务包括水滴筹、水滴保险商城等,于2021年5月7日上市。水滴以“用互联网科技助推广大人民群众有保可医,保障亿万家庭”为使命,致力于为用户提供康健保障解决方案。希望团结合作伙伴打造中国版团结康健集团,让用户以更低的费用享受到更好的诊疗。
自2016年7月至2022年末,水滴筹平台的捐款人到达了4.3亿,有凌驾277万的大病患者得到了资助,总计筹集医疗资金到达569亿元,并提供了755个保险产物。
二、StarRocks 概览

使用历程


首先来梳理一下水滴筹在OLAP方面的发展历程。

水滴现状


从上表可以看到水滴对各个组件的使用场景,从前以TiDB作为主要组件举行OLAP分析和OLTP,少部分服务使用StarRocks;实时监控、用户行为分析还在ClickHouse中。
随着近几年业务的发展、实验的沉淀, OLAP构造架构也存在一些题目,如组件维护困难,数据冗余存储,数据收口和出口不统一等情况。水滴大数据希望引入一款实时OLAP数据库,统一数据的监控和查询,用于解决各业务线对数据高效实时数据查询和数据统计分析的需求。
水滴OLAP组件技术选型


水滴对OLAP引擎最关注的有四点,分别是:并发能力,物化视图,join能力和写入实时。
上表是基于水滴通过近几年的实践得到的结论,可以看出:

基于几个组件的使用和综合考虑,水滴末了决定将StarRocks作为最终的OLAP引擎,将TiDB的服务迁移到StarRocks中,开始实行组件的统一。
三、场景实战

概览


水滴OLAP团体架构如上图所示。主要分为如下几个部分:数据源、数据同步、OLAP引擎、应用场景和数据管理平台。
数据源又分为离线数据和实时数据。

数据进入OLAP引擎后,水滴主要用到三种表模子,分别是:明细模子,聚合模子和主键模子。

数据模子主要用到宽表、星型模子和雪花模子三种。
数据管理平台主要包括:元数据管理,稳定性保障,质量管理,以及数据安全。

目前水滴的集群规模为,包含3台FE和7台BE,每日查询量300万次。
数据写入方面,有1500多个离线使命,每日实时更新行数100万行以上,每日写入数据量1T以上。
下面以两个详细的场景为例来介绍水滴的StarRocks实战。
场景一:报表平台OLAP引擎统一


第一个场景是报表平台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发展得越来越好。
原文链接
本文为阿里云原创内容,未经允许不得转载。 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4