查看原文
其他

国庆抢票高峰再现,带你解密携程是如何实时高效分析满足业务需求的

镜舟科技 镜舟科技
2024-12-05





在中秋国庆、五一等节假日期间,长途交通的订票高峰期对指标平台的影响不可忽视。

数据分析师、营销和运营人员需要通过指标平台获取实时的订票数据,包括出票量、退票量、余票情况、购票人群行为等,通过实时的数据进行分析了解当前的票务情况,及时调整营销投放、列车运营和票务运营等策略。




携程集团(以下简称:携程)火车票事业群运营着铁友、携程火车票和去哪儿火车票等重要的业务和品牌,目前正在积极地拓展海外市场。

该事业群的指标平台旨在为业务人员提供便捷的指标查询服务,让业务人员能够快速灵活地获得业务和品牌相关指标数据,根据 BI 等工具辅助提升数字营销和数据分析能力,提升运营效率与用户体验,实现数字化经营指导。



一、指标平台应用遇挑战,业务分析性能不足



携程火车票事业群的业务涵盖了火车票、国际火车票、汽车票(含船票)等产品,错综复杂的业务也产生繁杂的订单和行为数据。

为了提升查询性能,火车票事业群开发了一套指标平台,根据不同的指标类型引入了 ClickHouse,Apache Kylin (以下简称:Kylin)和 Presto 这 3 套数据库引擎,数据层混合使用了明细层和轻度汇总层。

图 1:重构前的指标平台

由于引入组件较多,在实际应用过程中出现了一些问题:

  • 指标数据源繁杂,数据口径不一致,维护成本大。

  • 业务使用学习成本高,BI 人员录入指标不仅需要了解不同存储的区别,还需要掌握不同引擎的数据同步方法。

  • 架构复杂导致性能不足,指标平台将查询的中间结果通过 JDBC 写入 MySQL 后再到服务端用 java 做汇总计算,处理链路过长,导致部分指标查询需要半小时以上的等待时间。

无论是用户(运营人员)还是指标开发人员,都因为这种设计产生了额外的工作量与工作时长。基于此,携程决定使用基于一种查询速度快和使用简单的分布式数据库来重构指标平台。



二、StarRocks 助力指标平台重构焕新,助力业务实时分析



随着企业事业群的拓展,越来越多的业务场景和评估问题需要通过因果推断理论去优化和解决。在重构指标平台的过程中,携程首先考虑的是将多套存储合并成一套。

旧指标平台中原有引擎组合应用功能强大,但性能在部分场景下仍不能做到很好的支持:

  • ClickHouse 的 Join 性能相对不足,并发性能差;

  • 大量数据查询容易占满 CPU ,资源无法合理利用;

  • SQL 语法是非标准,使用起来对学习和维护要求较高;

另外,Kylin 是一个分析引擎,修改数据需要重新导入,ETL 成本很高,其次 Kylin 需要预先创建模型加载数据到 Cube 后才可进行查询,使用上需要具备一定的数仓知识。

基于上述原因,携程将目光投向了 StarRocks。StarRocks 是一款极速全场景的数据库,相比 ClickHouse 等具有以下优点:




  • 性能强悍:查询速度快,多张亿级表 Join 也能秒级响应;

  • 使用简单:兼容 MySQL 协议,用户使用门槛低;

  • 支持高并发:满足大量用户同时查询;

  • 支持多种数据模型:明细、聚合、更新和主键模型,可灵活配置 ETL 任务;

  • 支持物化视图可以自动路由到命中的物化视图,运营人员无感知;

  • 支持多种导入方式:StreamLoad、SparkLoad、RoutineLoad,便于实时离线快速导入 StarRocks,实现流批一体。





因此,携程结合 StarRocks 开始新指标平台的重构。

图 2

重构后的指标平台只有一个数据库,查询时利用 StarRocks 内部 ETL 将明细数据转存到临时表,后续的汇总从临时表查询,避免了反复扫描大表。

图 3:重构后的指标平台


三、查询性能大幅提升,业务决策极速指导



实时计算和实时查询是业务人员在指标平台应用中最为重要的需求,业务人员需要借助一系列的实时指标来观察数据对比分流的效果,以此来判断运营、营销或投放等场景配置是否正确,比如在出行高峰期的订单变动,可通过实时指标平台反馈,业务人员则能及时调优或止损。

#01

满足业务数据实时计算需求,指标报表更精确


携程进一步梳理了旧平台的数据源,从 300+ 指标的逻辑 SQL 中提取了公共的 DWD 和 DIM 表 51 张,并将这些数据统一同步至 StarRocks。

不同类型订单的数据体量和类型大不相同,例如,火车票订单数据涉及到预售和订单状态变更,需考虑数据更新代价;而国际火车的访问数据量较小,需考虑实时导入导出的压力。

而对于不同的 Hive 表,携程也使用了全量同步、增量分区同步、更新同步、当月数据每日同步等不同的 StarRocks 建表模型和同步方式,让数据实现统一、实时、稳定更新。

此外,对于 UBT 类(用户行为数据)数据,数据量级非常大,对于查询 PV,UV 和停留时长等比较固定的场景,携程则对应抽取出三张表,以天为维度进行更新和计算、去重,保证数据稳定分析处理的同时,对时效性也有保障。

上游表的迭代可能造成数据的不稳定,携程针对需要同步的表的数据量监控,若发现当天的数据量波动超过 3 Sigma,监控任务自动发出邮件告警,这些 Job 同步都在 15 分钟内完成。

#02

满足业务人员实时查询需求,提高经营决策效率


以国庆长假为例,节日期间出行人员多、票务变动大、这一过程带来了更多的数据量,业务人员需要通过指标平台获取当天的经营数据进行分析,从而预估未来的数据,借此做用户运营和营销推广上的决策。
指标平台的重构主要是为了解决查询性能的问题,并且重构后也基本达到了预期。
重构之前,复杂查询需要数分钟的时间才能完成。对于火车票相关指标,诸如出票票量等指标,如果加上出发和到达城市查询,可能需要等待 30 分钟以上,并且查询失败率较高。
而在重构后,查询时间大大缩短,复杂查询在 10s 左右,并且 P99 在 2 秒之内,整体体验得到显著提升,用户查询次数相比重构前也有了翻倍增长。

此外,现在新指标系统还丰富了更多功能,比如同环比和维度下钻计算。得益于 StarRocks 的并发能力,携程可以在生成子查询 SQL 后并发提交,从而大幅度减少响应时间,使得业务人员在进行维度下钻时几乎无需等待即可快速获取所需数据,从而更快速地查询数据,并用数据做分析,精准作出运营和营销决策。


结语



指标平台的优化升级,让携程火车票事业群业务人员在全年各个关键节点,通过数据分析了解业务的现状,帮助针对实时的数据反馈做出营销洞察,并提供精准的决策。
下一步计划将针对这一场景不断打磨和优化技术,通过 StarRocks 聚合模型和物化视图等新方案的引入,进一步提升指标平台查询速度、优化查询性能,为业务增长赋能。

携程集团

携程集团是全球领先的一站式旅行平台,公司旗下的平台可面向全球用户提供一套完整的旅行产品、 服务及差异化的旅行内容。集团能够提供超过 120 万种全球住宿服务,480 多家国际航空公司,以及超过 31 万项目的地内活动。并与超过 3 万家其他合作伙伴一起满足客户不断变化的需求。


继续滑动看下一个
镜舟科技
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存