金融科技新标杆:随行付大数据实时分析如何支撑百亿级秒级查询

0 阅读11分钟

封面.png 作者:随行付大数据团队&商业研发团队

导读:

随行付作为国内领先的支付基础设施平台,致力于携手合作伙伴与中小微企业,共建安全、稳定、高效运转的数字化支付生态,持续为不同行业与场景提供融合支付与经营的一体化数字化解决方案。

随着支付业务的快速发展,原有基于 Oracle + Hive 与 Elasticsearch + Kudu + HBase 搭建的 Lambda 架构,逐渐暴露出实时性不足、架构复杂、数据冗余高等问题,已难以支撑不断增长的业务需求。

为应对这一挑战,随行付重构了大数据分析体系,构建起以自研Porter CDC + StarRocks + Elasticsearch 为核心的一体化实时架构,全面覆盖高并发明细查询、即席汇总分析和复杂跑批计算等关键场景。

引入 StarRocks 后,随行付在查询性能、分析效率、架构简化与数据采集方面实现四大突破:

  • 查询性能提升 3 倍,稳定支撑 百亿级明细数据秒级响应;
  • 分析效率提升 10 倍,报表产出时效提前超 3 小时;
  • 架构简化替代多组件,数据冗余率降低 20%;
  • 数据采集迈入秒级时代,链路延迟P99压缩至 1 秒内。

一、概述

业务背景与挑战

我们原有的数据分析体系在架构上采用“离线 Oracle + Hive 与实时 Elasticsearch+Hbase+Kudu”分离的 Lambda 架构模式。然而,随着支付业务的快速增长,该体系逐渐暴露出诸多瓶颈:

  • 数据时效性差: 离线与实时集群割裂,导致数据处理链路冗长,复杂查询需跨集群拼接,难以实现高效、实时的数据响应。
  • 数据冗余成本高: 相同或相似的数据需在多套系统中重复存储与维护,不仅带来数据冗余,也推高了存储资源和数据同步的整体成本。
  • 架构复杂,稳定性差: 现有多组件拼接架构,导致系统间耦合度高、数据链路复杂、运维难度大,在业务高峰期稳定性无法有力保障。

这些问题不利于会生活收银台产品、服务商平台、交易系统、实时风控、安全合规 等多个核心场景的业务未来的发展,为了提前应对这些问题我们开启了变革之路

业务痛点归纳

  • 查询性能不足:在多维分析等复杂查询场景下,响应时间过长。
  • 数据时效性滞后:当前架构部分场景无法实现 T+0 数据更新。
  • 系统稳定性欠佳:底层架构由多个异构组件拼接而成,部署与维护成本高。
  • 数据准确性缺失:数据来源分散、加工路径复杂,导致口径不统一。

二、为什么选择 StarRocks ?

在调研和测试过程中,我们重点对比了 StarRocks 与 Doris、ClickHouse 等主流 OLAP 引擎,StarRocks 在多个方面表现更为突出,具体优势如下:

三、StarRocks 在随行付应用现状

在当前业务系统中,为了满足实时数据采集、加工和多样化查询场景的需求,我们构建了一套基于 Porter CDC + StarRocks + Elasticsearch 的实时架构,替换原 Oracle+Kudu+Hbase+Hive 架构。

数据采集

在流水类业务数据频繁变更的场景下,传统方案(如 ClickHouse、Hive 等)在处理历史数据更新方面存在明显短板,难以满足高并发、强一致性等核心业务诉求。为破解这一难题,我们引入了 StarRocks 主键模型,在大规模数据更新场景下展现出强大的处理能力,显著提升了整体采集体系的效率与稳定性。

依托自研采集工具 Porter,实现多源日志的秒级采集,并结合 Flink 构建高吞吐、低延迟的流处理链路,成功打造了一个具备高时效性与强一致性保障的数据采集体系。目前系统已支持每分钟百万级数据实时入库 StarRocks,稳定支撑起高并发业务所需的高效 ODS 层。

为进一步增强数据采集链路的稳定性与写入性能,我们围绕 StarRocks 实施了多项关键优化,包括字段级更新能力增强、多表同步配置化等,全面提升了实时采集能力与资源使用效率。

1.实现动态字段更新

针对码类交易因数据量大且对数据库对压力敏感,我们对采集策略做出两项核心改造:

  • Porter 采集数据库日志时仅提取变更字段,降低对数据库压力;
  • 对 Flink 连接器深度优化,实现动态列更新能力;
  • 对 CDC 日志提前合并,降低 MOR 压力,使整体写入 I/O 降低约 30%。

2.实现配置化同步

原生 Flink 连接器不支持单任务多表同步。对此我们进行扩展:

  • 实现 Flink 实时采集配置化:大幅提升开发效率;
  • 实现实时采集限速及任务状态监控:对服务稳定及数据准确提供有力保障;

3.离线同步加速

为解决基于 Oracle 的历史数据采集存在的性能瓶颈,我们全面重构离线同步链路:

  • 利用 StarRocks 的 EXPORT 能力与数据湖进行高效对接, 整体性能提升超 10 倍
  • 利用 INSERT INTO FILES 能力为导出提供了更统一、易用的接口。

数据查询

基于业务场景特征与查询模式洞察,我们将全域查询负载划分为四类核心工作负载,通过 StarRocks 引擎的差异化能力实施精准优化:

1.高并发明细查询

典型场景: 历史退货查询、服务商查询、商户查询等重要历史流水查询。

此前,此类高并发明细查询主要是基于 Oracle + Impala + Kudu 实现,。其中,Oracle 对于大数量的历史数据存储与查询无法满足,Impala + Kudu 维护较为复杂且查询性能也无法达到业务诉求。为满足此类业务对低延迟、高并发的极致要求,我们引入 StarRocks 之后进行了以下优化

  • 基于 SSD 存储: 根据表及数据特点,将主键表采用 SSD 磁盘存储,确保在高并发场景下依然保持稳定的查询性能。
  • 异步物化视图: 通过控制物化视图刷新机制,在合理控制资源占用同时有效利用了物化视图加速功能,显著提升查询速度,针对于单表 30T 的数据量点查实现毫秒级响应,对比于全表查询效率提升20倍。
  • Elasticsearch 二级索引:补充主键模型二级索引能力,通过 Elasticsearch 二级索引结合 StarRocks 对多条件过滤、搜索查询等场景的性能问题予以解决。

2.即席汇总查询

典型场景: 风控规则、运营看板、人工提数等。

过去的即席查询通常依赖预计算结果,并将其存入事务型数据库,导致数据获取时效性较差,难以满足高频、实时的业务需求。针对这一类以汇总统计为主、强调查询效率与资源成本平衡的分析场景,我们主要采用以下技术策略:

  • HDD 存储的 StarRocks 集群: 兼顾资源成本与查询性能,适用于对延迟要求适中但数据规模较大的分析类场景。
  • 聚合模型: 在数据写入阶段即完成指标的预聚合,显著减少查询时的计算开销。
  • 采用 Colocate Join: 事实表与维度表同分布存储,关联查询性能提升 3 倍
  • CBO 优化器调优: 通过统计信息收集 + 代价模型优化,复杂查询计划生成时间缩短 80%

3.跑批计算优化

典型场景: 维度表计算、周期性报表、复杂聚合分析等。

此类计算任务通常对稳定性、处理效率以及资源利用率要求较高。原有方案主要依赖 Hive 执行离线批处理,流程如下图所示:

在新架构基础上,我们进一步进行了以下核心能力增强:

  • 启用动态分区裁剪 + 谓词下推优化,典型报表任务数据扫描量减少 73%
  • 版本合并加速:调整 Compaction 参数实现:“三段式优化”:

  • 多租户资源隔离:借助 StarRocks 多租户能力,对批处理任务的资源使用进行精细化管控,保障并发任务的稳定运行。
  • 全链路监控体系 :构建 "采集-分析-预警" 三位一体的运维监控平台,通过 StarRokcs提供的监控接口集成 Grafana 实现异常告警在 5s 内通知到相关人员
  • 参数调优(回收站机制 & 版本合并机制):针对数据生命周期管理及版本存储策略进行多项 BE 参数优化,有效降低了系统负载,确保跑批任务高效、准时完成。

33.png

通过上述优化方案,系统不仅实现了对基于 Hive + Oracle 等跑批流程的替代,还有效提升了数据处理效率与任务调度的稳定性,构建了统一、高性能的离线计算平台。

引入 StarRocks 后的关键收益

随着新一代 MPP 数据库 StarRocks 的引入,我们确立其为核心分析引擎,全面重塑大数据服务架构。凭借其向量化执行引擎、高性能实时导入能力以及强大的多表联合分析能力,随行付在性能、效率、成本和稳定性方面取得了显著成果:

1.实时查询能力跃升,性能大幅突破

依托 StarRocks 的高并发处理与向量化计算能力,我们真正实现了“海量数据实时写入 + 高效查询”的双重突破:

  • 实时点查支撑的交易数据规模从 30 亿条提升至 300 亿条,系统依然保持毫秒级响应;
  • 查询响应时间优化超 3 倍,目前P95在1s以内,P98稳定在 3 秒以内;
  • 在高并发、高负载场景下,依然保障秒级返回与查询稳定性,用户体验显著提升。

2.分析效率显著提升,决策响应加速

借助 StarRocks 的多表联合分析能力与数据湖联邦查询能力,分析效率与决策时效实现质变:

  • 多维历史分析与跨域计算由小时级缩短至分钟级以内,整体效率提升超 10 倍;
  • RPT 报表产出时间提前 3 小时以上,数据获取实现从“等待数据”到“即取即用”的飞跃。

3.架构大幅简化,成本与运维双优

StarRocks 的引入彻底改变了原有多组件拼接的复杂架构,实现一体化演进:

  • 替代原有 Kudu、HBase、ClickHouse 等异构组件,统一数据技术栈,提高一致性与协同效率;
  • 跨系统调试与联调链路大幅减少,故障恢复时间压缩至 5 分钟以内;
  • 架构简洁化降低冗余存储 20%,系统稳定性与效率双重提升。

4.数据采集迈入“秒级时代”

采集链路升级为 Flink + StarRocks 架构,构建高吞吐、低延迟、强稳定性的数据采集体系:

  • 全链路采集延迟P99控制在 1 秒内,实现秒级可视、实时驱动;
  • 从“离线为主”转向“实时入仓”,数据流转效率显著提升

未来规划

未来,我们希望进一步统一数据存储与查询引擎架构,以 StarRocks 为核心计算引擎,通过其强大的联邦查询与外表 Catalog 能力,实现对 Hudi(存算分离)、Elasticsearch 等多种异构存储的无缝访问与智能路由。用户在使用层面无需感知底层数据来源,查询可自动按需路由至最适配的存储系统,保障高性能与资源效率的平衡。

在此基础上,我们将持续推进实时数仓体系建设,构建统一的数据服务接口,实现从数据采集、处理到分析的全链路自动化与标准化管理,进一步提升数据的服务化能力,真正实现“湖仓一体、查询一体、服务一体”的数据架构目标,为用户提供一流的数字经济基础设施。