随着大数据时代的到来,传统数据库出现性能瓶颈,基于Oracle的数据仓库无法满足海量数据的存储、处理与应用需求,因此在2016年平安人寿引入了Hadoop建立寿险大数据平台。在近十年的大数据技术探索中,以提升数据质量、加快业务数据分析效率、加速数据价值变现为目标,平安人寿基于大数据平台构建了数据中台并引入数据治理体系,全方位保障业务用数效率、提升数据生产力。在数据应用层引入了多个开源大数据处理和分析组件,结合业务对于分析的实际需求开发了多个数据应用系统,为业务用户分析决策提供支持。
如今,随着数智化时代的到来,数据价值的重要性得到更深度认可,深挖数据价值成为新的目标。在此背景下,平安人寿坚持技术创新,以更加开放的思路来应对不断增长的数据分析和应用需求,升级大数据产品体系正是其中至关重要的一步。
为了进一步提升数据应用效率、降低多组件带来的运维和使用成本,平安人寿自2022年起开始引入开源实时数据仓库ApacheDoris,对多个数据应用系统进行了升级,基于ApacheDoris统一了OLAP引擎层技术栈。ApacheDoris的引入为平安人寿大数据产品体系打破了原有系统的数据“孤岛”、统一了数据开发与应用层查询服务,降低了需求的开发成本、加速了业务需求的交付周期,并满足业务方更高数据时效性与查询响应度的要求,最终形成更开放、灵活、可扩展的企业级管理与分析大数据产品体系,实现数据价值的最大化释放。
早期大数据产品体系如上图所示,数据流转过程主要分为离线与实时两条链路:
基于实际的分析需求,平安人寿开发了各类数据应用系统以支持不同业务人群进行决策分析,包括面向管理层的报表分析系统、面向总部运营人员的即席查询系统、面向一线业务人用的多维分析系统以及面向总部与分公司营销人员的人群圈选系统。
针对各类应用系统,在分析过程中对OLAP性能有不同的要求,具体如下:
由于早期架构基于多个OLAP组件(包括Presto、PostgreSQL、Hive、Kylin、Druid、Clickhouse以及HBase)提供计算存储与查询服务,虽然能够满足业务要求,但架构复杂与链路过长势必会增加运维成本、学习成本,同时也无法保障系统之间多源数据的一致性。
更重要的是,随着用户规模的增长与业务场景多样化,数据的写入效率、查询时效性、后台稳定性也逐渐无法得到保证,时常影响业务分析效率。接下来,将详细为大家分析以上业务应用痛点、选型过程以及相应的解决方案,希望为读者带来关于架构升级的新视角。
早期主要基于Hive与PostgreSQL支持该应用场景,当业务全域数据经过ETL清洗处理后,全量存储于Hive中。为了满足管理层快速查看报表的需求,开发人员首先会将数据进行多轮处理清洗,并采用预汇总结果的方式,将计算好的指标数据导入PostgreSQL中。
虽然这种方式能够应对查询低延迟响应的要求,但指标结果多轮计算会导致数据处理链路过长、各类成本的叠加,例如将数据拆分存储至14个PostgreSQL库中所造成的存储冗余与资源成本增加、将报表异地聚合与定制化开发所造成的开发成本增加、将PostgreSQL与应用端交叉使用所造成的运维成本增加等。
早期即席查询场景由多个组件共同支持,其中Hive负责离线数据分层存储、PostgreSQL用于存储指标结果数据、Presto则作为查询引擎对Hive中数据查询下压。然而,由于业务查询严重依赖PostgreSQL中的指标数据,一旦未提前计算好指标,查询压力将全部交给Presto,容易造成资源浪费、查询响应延迟等问题。同时,该系统的权限管理不清晰、业务之间没有资源隔离限制,所有业务运营人员均可以查询Hive底层中的数据,造成临时表多、查询任务并发过高、资源抢占等问题。
同时,Druid在查询性能中存在一定的局限性,如不支持关联查询、不支持精细去重。在理赔与用户数据Join的查询场景下,业务人员只能先将所需数据形成宽表满足查询需求;在面对用户数据精细去重时,只能对Druid组件功能改造。这些局限性不仅使查询复杂度增加,也会消耗大量的人力、学习、开发等成本。
在上述各应用痛点中不难发现,组件过多容易出现数据存储冗余、数据不一致等问题,开发人员也需要来回导数整合组件之间的数据流,加重开发运维成本。并且,组件之间还会加重数据孤岛的现象,使数据之间缺乏关联与共享。基于此,我们希望选出一款综合性强、灵活度高的组件,能够统一OLAP技术栈,打通平台之间的数据读取,覆盖日常分析场景需求,实现高效导数与极速分析。除此之外,为了将数据治理更体系化,还希望引入的OLAP组件支持指标、标签等维度数据统一计算与存储,借用API为上游应用层提供统一查询服务。
在经过调研选型后,如图所示,我们发现ApacheDoris非常符合升级需求,不仅能够覆盖常规业务场景,满足写查性能需求,同时,基于ApacheDoris统一技术栈也将大幅度降低架构复杂度,减少运维、开发以及使用成本,最大化提升架构性能。因此,平安人寿基于ApacheDoris开启了新架构的升级之旅。
在未引入ApacheDoris之前,大数据产品体系借助不同OLAP组件提供数据存储、计算与查询服务。引入ApacheDoris后,平安人寿以OLAP引擎统一为基础,在ApacheDoris集群之上构建了一体化指标与标签设计平台,形成“上下经营一张表”,完善经营指标管理体系,并通过API接口直通应用层,面向多种场景的统一数据服务。
目前,平安人寿已使用ApacheDoris替换了HBase、PostgreSQL、Presto、Druid组件,统一指标标签计算存储,支持报表分析、即席查询以及多维分析的应用,并已上线了管理层的报表应用系统、总部与一线运营人员的可视化分析系统。同时,平安人寿也已完成ApacheDoris与各类数据源适配,进一步替换Clickhouse、Kylin组件。预计在今年11月份,ApacheDoris将上线并应用于营销机构人群圈选系统的生产使用。
通过ApacheDoris一套系统同时满足数据存储、计算与查询服务,不仅避免了数据多轮计算带来的重复开发与冗余存储问题,更满足了更灵活、更细粒度、更高效的查询分析。平安人寿在应用上线后取得如下收益:
当统一了OLAP技术栈后,平安人寿进一步引入统一语义层,将复杂查询语句进行拆解转化,简化加速SQL语句执行效率,并借助数据服务API接入的方式,连接各业务应用层。
一站式数据门户是平安人寿大数据产品体系自始至终的构建目标,基于ApacheDoris统一OLAP多个技术栈,并将标签与指标标准化开发与管理,共同提供统一的数据服务,使业务分析师能够进行自助式的数据探查,减少对技术人员的依赖,同时,通过方便快捷地访问、分析和可视化各种数据资源,实现数据高效、低成本的交付。
未来,平安人寿将进一步拓展ApacheDoris湖仓一体化的应用,使用Doris替换Presto进行数据湖查询分析,让数据和计算在湖与仓之间自由流动。同时,还将引入ApacheDoris多租户和资源隔离方案,完善应用系统间负载均衡性能,避免导数过程中出现任务并发高、CPU内存占用大、查询性能受阻的风险,减少多用户数据操作时在同一集群内被干扰,将集群资源更合理的分配给各个应用系统。
最后,非常感谢飞轮科技团队一直以来对平安人寿的技术支持,加速平安人寿数智化转型进程。至此,各级业务人员能够加速数据分析效率,帮助企业及时发现和解决问题,从而提升运营效率;管理层能够通过海量数据洞察市场趋势、客户需求以驱动业务决策。
现代化实时数据仓库SelectDB,支持大规模实时数据上的极速查询分析。