乐趣区

关于后端:星云零售信贷基于-Apache-Doris-的-OLAP-演进之路

本文导读:

腾梭科技是国内当先的批发金融数字化及平安服务提供商,是腾讯投资且在金融畛域的策略合作伙伴,并与腾讯联结研发了“星云智慧信贷解决方案。在其信贷业务转型过程中,随着零碎规模不断扩大,晚期架构无奈再满足业务需要,因而腾梭科技决定引入 Apache Doris 实现业务降级。本文将具体介绍其信贷业务如何基于 Apache Doris 在助贷系统日志剖析场景的实际利用,实现毫秒级并发查问响应与极致存储性价比的性能体现。

作者:腾梭科技 研发总监 刘建波


腾梭科技是国内当先的批发金融数字化及平安服务提供商,是腾讯投资且在金融畛域的策略合作伙伴,专一于为持牌金融机构提供批发金融业务全流程解决方案。联合外围团队多年风控与反欺诈教训,腾梭与腾讯联结研发了“星云智慧信贷解决方案“和“伽利略智慧风控系统”,全方位解决金融机构在批发金融业务中遇到的技术难题,推动金融机构信贷风险治理由策略驱动转向人工智能模型驱动,加强业务精准营销能力,助力银行实现普惠金融,延长金融服务广度和深度,买通服务实体经济的“最初一公里”。

作为互联网金融科技公司,腾梭科技由晚期的网贷转型为以助贷为外围的业务模式,联结行业内各大友商行独特提供信贷服务。在取得肯定客户群体根底后,腾梭科技信贷服务发展了全量客群的开掘,开启线上以及线下联合或纯线上贷款全流程业务模式的摸索,为新批发金融场景提供微服务技术利用,包含潜在客户信用评估、拒贷款剖析、贷后治理、预期催收以及风控治理等方面。

基于以上业务模式的演进,零碎技术架构也随之产生了变动与降级,从集中式的单机零碎转化为分布式场景。因为引入了各大单干银行的 TP 零碎(如 MySQL、Oracle、PostgreSQL 等),使零碎规模不断扩大, 当传统的关系型数据库无奈实现多种数据源之间的数据关联时,架构逐步呈现数据孤岛与数据割裂的景象,因而 OLAP 引擎的利用成为突破数据孤岛必不可少的工具。 对于助贷零碎的架构降级,如何进行高效数据采集和解决、如何在宏大的客户数据中精确理解潜在客户需要与信用状况以放慢贷款审批速度、如何通过客户数据管理实现高效精准获客、赋能营销策略,成为了咱们业务重点倒退方向。

为了满足这些要求,腾梭科技历经三代架构演进。第一代架构基于 Kettle 离线数仓,第二代架构引入 Trino 进行对立查问,在通过两代架构应用后发现其性能的有余,决定引入 OLAP 引擎。最终通过产品调研抉择 Apache Doris 作为第三代架构外围进行数据对立存储与剖析。本文将具体介绍三代架构的演进历程和利用实际,分享业务场景落地教训。

晚期架构演进

架构 1.0:基于 Kettle + MySQL 离线数仓

在业务初期,咱们应用 Flume Sink 进行数据采集,利用 DolphineScheduler + Shell 进行数据调度,基于 Kettle 抽取离线数据进入关系型数据库中造成离线数仓,进行根底的 T+1 报表取数工作。因为 Kettle 仅反对离线取数的性能,不反对数据存储,因而数据始终保留在原始端。随着数据量的一直增大,当事实表条数达到千万级时,Kettle 的性能逐步变得不稳固,单表查问工作的执行工夫呈现提早景象,无奈满足较大业务规模的应用需要。同时,Kettle 不反对多数据源之间的关联查问性能,在 TP 零碎多样的状况下,查问效率无奈失去保障。

架构 2.0:基于 Presto / Trino 对立查问

针对第一代架构存在的问题,咱们在第二代架构降级中借助 Trino 作为分布式 SQL 查问引擎进行联邦查问,实现多种类型数据源的即席查问和批量 ETL 查问,买通信贷、风控之间的多源异构数据查问需要。因为 Trino 短少存储和治理元数据的性能,在面对高并发点查场景下导致联结查问响应较慢,查问效率仍旧无奈失去改善。

基于 Apache Doris 的新一代架构

为了彻底解决晚期架构的问题,咱们重新整理了架构的外围诉求:满足企业数据规模、反对灵便关联查问、架构应用和运维老本可控。基于此,咱们对当下热门的 OLAP 产品进行了调研比对,如 Apache Doris、Clickhouse 等 MPP 数据库以及除 Presto 以外的其余 SQL on Hadoop 相干引擎。咱们首先放弃了 SQL on Hadoop 这一类产品,因为其技术生态太过于宏大、波及组件过多,思考到架构投入产出比,可能造成团队的累赘,成为技术债权。其次咱们放弃了 Clickhouse 选项,次要因为它不反对 MySQL 协定、学习老本高、在多表 Join 查问性能中体现较差、对组件依赖较低等问题,并且开发人员须要破费大量老本在扩容与运维工作中,不满足咱们的外围诉求。最终,咱们发现 Apache Doris 不论是在大规模数据量下的查问性能还是应用难度与运维老本等方面都具备肯定劣势,因而决定引入其进行架构重构。

如上图所示,银行各类业务数据与用户日志由 Flume 与 Flink CDC 进行数据采集、DolphinScheduler 进行数据调度写入数仓。Apache Doris 实时数仓次要负责数据分层存储与汇总解决,为利用端提供报表开发、查问剖析等性能。在 ODS 层中,咱们次要利用 Apache Doris 存储客户在发动贷款申请后所产生的身份证 OCR 辨认附件、相干征信数据受权(如还款流水、支用记录、公积金或税务)等第三方数据,其中身份证 OCR 附件寄存于对象存储中,ODS 层中次要负责寄存其在对象存储的 URL 门路信息。这些原始数据会通过 DWD 与 DWS 层进行标签分类汇总,最终在 ADS 层造成各类统计数据,供前端业务人员查问与剖析。

在搭建过程,Apache Doris 的高性能、极繁难用、实时对立等诸多个性使咱们的实时数据流程架构变得简略,大大降低了保护和应用老本。新架构的降级为咱们优化了晚期架构的痛点,具体表现如下:

  • 元数据管理: Apache Doris 通过对外 API 提供元数据管理性能,彻底解决了晚期架构中多源异构数据无奈联结查问的痛点,实现在各 TP 零碎中无缝连接地进行数据开发。
  • 查问性能晋升: Apache Doris 齐全实现了向量化查问引擎,可能胜任各种查问并发、吞吐的场景并且性能体现强悍,解决了第二代架构中 Trino 在查问并发响应慢的问题。
  • 运维难度低: Apache Doris 基于 Sytemd 过程保活,具备多正本 + 正本主动平衡机制,除了须要定时备份元数据外简直能够达到零运维,极大升高了运维老本与难度,实现降本增效的需要。
  • 应用简略: Apache Doris 兼容 MySQL 协定,可能反对应用规范 SQL,不仅极大升高了业务人员的学习老本,还能够轻松实现 MySQL 业务迁徙至 Apache Doris,带来开发效率的晋升。

新数仓架构搭建教训

在新架构搭建实现后,咱们开始基于 Apache Doris 进行利用实际,通过并发查问减速与数仓底座建设两方面助力简单场景下的业务利用。以下是咱们总结进去的一些教训:

并发查问减速

风控剖析是星云批发最最常见的业务,因为金融交易零碎会波及大量的交易日志与明细日志等数据,存在大量高并发低延时的点查问以及高吞吐低并发的大表关联等需要场景,须要在多场景下保持一致的高性能剖析体验,因而咱们最重要的实际就是并发查问减速。

在引入新架构之前,咱们应用 MySQL 预聚合的形式进行数据分库,这会造成 IO 与 CPU 耗费十分大的问题,导致 MySQL 零碎解体。在引入 Apache Doris 之后,咱们采纳 Unique Key 模型对明细数据进行存储,引入 Aggregate Key 模型进行数据预聚合,为后续的物化视图与实时报表做筹备。在社区的帮忙下,咱们还应用了逻辑分区和物理分桶进行了 Key 列的优化,利用 Colocation Join 的形式创立业务关联表模型,保障分区和分桶、分区键以及 Key 值对立统一。如上图所示,各业务人员在进行大表关联查问时,不须要再进行跨节点 Shuffle Join,能够间接通过本地节点查问,防止了数据在网络传输中带来的性能开销,无效晋升了高吞吐场景下的查问效率。

除金融交易零碎外,风控剖析还须要进行特色指标计算与代宗行为剖析等业务。Apache Doris 的 MPP 架构齐全反对了业务所需的高吞吐和多表查问能力,并且在列表多维度查问时,能够依据不同的业务场景,借助其 Bloom Filter 物化索引机制进行 Key 列的优化设计。这种形式不仅改善了客户的查问体验,还可能大幅晋升查问效率,达到毫秒级查问响应。

数仓底座建设

在与 B 端单干发展助贷业务过程中会产生大量的离线报表业务,因而,咱们首先基于 Apache Doris 作为数仓底座,利用调度工具 DolphinScheduler、日志采集工具 Flume 以及数据同步工具 DataX 等进行数据采集。同时,通过增量或者全量的形式将数据从业务端或者异构数据源中采集落库至 Apache Doris 数据仓库中,造成数据集市。

在该集市中,业务人员能够不便地提取所需数据进行报表开发,并展现于实时交易大屏,以反对风控数据分析和业务决策。为了确保数仓稳定性和性能,咱们利用了 Grafana 和 Prometheus 对集群状态进行监控,次要用于关注 Apache Doris 的内存应用状况、ETL 过程中 Compaction 的稳定性以及查问响应工夫。通过这些监控工具,能够帮忙咱们及时发现数据集市的运行成果与异常情况。

Apache Doris 助力信贷业务场景落地

基于 Apache Doris 的性能实际,咱们建设了星云批发治理后盾、自助报表等一体化业务剖析平台。接下来,咱们次要介绍在业务场景落地过程中,风控大数据报表平台、对立日志存储剖析与用户行为剖析的业务实际。

交互式剖析查问,实现风控大数据平台智能化

如上图所示,星云治理后盾会对风控数据进行剖析,波及授信状况剖析、用信剖析、放款构造剖析、回绝申贷起因剖析等报表业务,咱们心愿通过风控报表平台实现风控策略化、智能化,晋升线上的风控能力、进步审批效率并欠缺信贷业务流程。以授信状况剖析为例,具体的操作流程如下:

  • 数据调度: 指标数据首先通过 DolphinScheduler 和 Shell 工作编排实现风控离线数仓各分层数据的调度与流通、对立治理。
  • 数据同步: 借助 Apache Doris 的 JDBC Catalog 以 Insert Into 的形式,将多个内部源表中的数据增量导入数仓贴源层,实现对立建模、对立数据口径。
  • 数据处理: 在 Apache Doris 的 DW 层中进行数据关联剖析、聚合、日辨别落盘等操作,最终联合维表数据独特创立物化视图或者落地大宽表。基于 Apache Doris 的分层存储与数据处理,咱们的报表开发工夫从天级别晋升至小时级别,大幅提高报表开发的效率。
  • 数据分析: 基于以上三个步骤,业务人员能够在平台中进行自定义交互式剖析查问,如查问某一段时间内授信额度区间的占比,并以饼状图模式出现。

极致性价比,达成对立日志存储剖析

星云批发在业务经营过程中会存在大量的日志存储剖析场景,如应用 API 拜访异样日志。在引入 Apache Doris 之前,咱们应用 Grafana + Loki 进行多节点本地反对存储,这种形式不仅无奈保障存储统一性,并且减少运维老本。

在引入 Apache Doris 后,咱们基于 Stream Load 自定义开发 Flume Sink 与 Tail Dir 日志采集组件,可能反对动静配置,使节点灵便且易于扩大。咱们还采纳了 Apache Doris 的动静分区表模型,实现动静增加分区或者删除分区,缩小了运维过程中的应用累赘。更重要的是,Apache Doris 提供了极致的列存储压缩比,使存储老本极大幅度降落,并且 2.0 版本的倒排索引性能反对文本类型的全文检索,也能对一般数值日期的等值、范畴查问进行减速,可能从海量数据中秒级检索出满足条件的日志,更加符合咱们后续对日志数据分析的需要 。总而言之,基于 Apache Doris 的实时日志存储性能为咱们提供了全面的实时预警监控、实时监控大屏、故障剖析等能力,真正意义上实现对立实时的日志存储剖析。

JSON 对立存储 + 丰盛解析函数,助力用户行为日志剖析

在营收信贷业务过程中,咱们会对潜在客户进行广告投放,通过主动获取用户行为日志数据,剖析信贷需要来增强营销流动、晋升获客成果,达到精准投放的目标。咱们借助 Stream Load 自定义的日志采集工具收集用户在小程序或者 App 中的拜访日志, 利用 JSON 对立存储性能与丰盛的解析函数对行为日志进行实时查问剖析、跑批离线宽表加工等操作。

在这一过程中,Apache Doris 的引入使用户行为日志升高 70% 的存储老本 ,同时提供了丰盛且开箱即用的用户行为剖析函数,防止业务人员反复进行简单 SQL 函数编写、验证、推导再利用,极大进步了数据开发效率,为后续广告精准投放提供了强有力的数据反对。

总结收益

以后,腾梭科技星云批发信贷业务基于 Apache Doris 搭建了高度对立实时的数据仓库,实现星云治理后盾中的风控报表治理、经营报表治理、用户行为日志剖析等信贷业务利用。Apache Doris 的引入为咱们带来以下收益与成绩:

  • 灵便数据分析: 不论是业务端还是数据开发端,都能够基于 Doris 反对自定义导数、动静配置,实现灵便及易扩大的多维数据分析。
  • 查问疾速响应: 从业务层面来看,现阶段的风控信贷点查、偏离计算等简单场景都能够基于 Apache Doris 进行多表关联,并且实现毫秒级查问响应,大幅晋升查问效率。
  • 交付效率晋升: 助贷业务的外围业务为客户治理,在引入 Apache Doris 后,其数据分层存储与开箱即用的剖析函数,在用户行为、信用评估、危险管制等多方面提供了无效报表剖析,以开掘更多潜在用户,大幅晋升交付效率,实现精准获客的指标。
  • 综合老本升高: 与之前数据源端存储不同,Apache Doris 极致的存储压缩比,升高了 70 % 的存储老本。同时,Apache Doris 反对集群节点过程保活、主动平衡极致,简直达到零运维,为公司运维老本管制提供了外围收益。

将来布局

将来,咱们心愿基于 Apache Doris 冷热分层技术实现对立的数据归档性能,将冷数据、历史数据定时进行归档,进一步优化数仓存储空间。同时,利用 Apache Doris 湖仓一体性能实现智能数据网关,使 Schema 列类型等元数据可能映射至 Apache Doris 的数据结构中,造成对立元数据映射构造,提供一致性的查问体验。

最初,感激 Apache Doris 社区和 SelectDB 技术团队在数仓搭建过程中的积极响应与技术支持,将来咱们也会继续参加社区活动,将相干成绩奉献回馈社区,心愿 Apache Doris 飞速发展,越来越好!

退出移动版