拉卡拉 Apache Doris 应用实践总结
01 拉卡拉公司介绍
拉卡拉支付股份有限公司(股票代码300773)成立于2005年,2011年获得中国人民银行首批支付牌照。公司定位为“商户数字化经营服务商”,实施“推广数字支付、共享数字科技、兑现数据价值”的经营战略,助力数字中国建设。拉卡拉是首批获得数字人民币受理服务许可的支付机构,以科技驱动创新,在银行卡支付、移动支付收单市场构筑综合优势。公司以支付为入口,共建商户数字化服务生态,提供数字化支付、经营、金融服务,推进商户服务向精细化、精准化、智能化方向迈进。
02 业务背景
平台架构与挑战
拉卡拉的平台架构面临以下挑战:
- 交易实时查询挑战:备库存储周期短,支持大表多表(跨域跨库)关联,MySQL分库分表查询服务实现复杂,要求低延迟、短耗时。
- 报表系统存储痛点:Hive计算,Oracle存储,Oracle扩容复杂,维保费用高昂,“去O”需求迫切。
- 标签查询服务困难:标签数量多,标签不断增加,schema变更频繁,同时支持点查和圈选,标签分域计算,及时更细,部分列更新。
- 联机查询技术栈复杂:组件多,架构复杂,运维成本高,数据冗余,面临一致性挑战。
Apache Doris 的优势
Apache Doris 具备以下优势:
- 支持秒级别实时写入和批量数据更新。
- 支持轻量化表结构修改,实时部分列更新。
- 基于列式存储和向量化执行,查询性能强悍,支持实时分析。
- 支持点查询、明细查询和聚合查询。
- 支持多租户管理,资源隔离,丰富的权限管理模型。
- 支持多种存储模型,满足不同业务场景的需求。
- 支持横向扩展,简单易用,兼容MySQL协议。
- 维护成本低,支持自动容错和故障转移。
- 社区活跃度非常高。
03 应用实践及问题
引入与发展历程
拉卡拉引入Doris的历程如下:
- 2023年4月:引入Doris-1.2.4版本,用于实时风控银行合作平台。
- 2024年3月:升级至Doris-2.0.5版本,应用于营销平台、实时交易看板、报表系统、标签系统、对账单系统。
- 2025年2月:计划验证2.1新特性并应用于生产。
架构改造——引入Doris
引入Doris的总体收益包括:
- 服务器成本降低52%。
- 查询性能提升10倍。
- 开发运维效率提升N倍。
通过利用Doris替代ES、HBase、TiDB和Oracle,打造统一的查询引擎,大幅简化技术栈,降低系统复杂性,减少数据冗余,提升数据一致性和查询性能,更好地支持数据分析和业务决策。
对账单系统
- 总体介绍:为客户提供交易明细查询、报表服务及批量对账文件生成,日新增数据量亿级,日查询次数百万级,查询耗时99分位数2秒,数据延时5秒。
- 数据乱序问题:通过主键模型和sequence_column解决业务原因写入乱序、数据补传、数据片段回放问题。
- 大表关联问题:通过添加倒排索引、优化分桶策略、按表KEY列进行关联、写时合并成宽表,将查询耗时从200秒优化至10秒。
实时交易看板
- 实时计算替代预聚合:预聚合存在数据重复去重压力、跨日结算、退货退款、调账、数据周期长、状态恢复困难等问题。Doris的主键表自动去重、合并历史状态,强大的查询性能,实时汇总,直接查询,写入程序无状态,满足APP中展示当月每日累计交易额实时查询需求。
实时风控场景
- Doris替代ES构建高效分析引擎:Doris通过高效的聚合能力、强大的实时分析性能,优化了风控系统架构。相比ES,Doris查询耗时更短,支持Join,降低了数据冗余和系统复杂性;依托标准SQL和高扩展性架构,为构建更敏捷、更精准、更经济的实时风控体系提供了全新解决方案。
实时风控-交易明细查询性能优化
通过优化查询语句,将查询耗时从2分钟优化至10秒,具体优化措施包括:
- 返回列多。
- order by语句优化。
- 查询范围广,数据量在百亿级别。
- 条件组合多,但没有必传列。
04 未来规划
- 未来规划验证:验证2.1新特性并应用于生产,包括多表物化视图、基于CGroup的资源隔离、CCR跨集群复制、方言转换、Group Commit升级至2.1.x,解决现有问题如workload group CPU隔离效果不好、left join执行优化器存在问题、客户端请求ip透传功能。
- 多集群并存版本升级:业务解耦,拆分多套集群,减少业务相互影响。根据各自的工作负载和数据特点灵活调整资源分配,实现性能优化与资源利用最大化。