带你读《Apache Doris 案例集》—— 02 河北幸福消费金融基于Apache Doris 构建实时数仓,查询提速400倍!(1)

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
简介: 带你读《Apache Doris 案例集》—— 02 河北幸福消费金融基于Apache Doris 构建实时数仓,查询提速400倍!(1)

作者:河北幸福消费金融信息科技部

 

导读: 随着河北幸福消费金融的客户数量和放贷金额持续上升,如何依托大数据、数据分析等技术来提供更好决策支持、提高工作效率和用户体验,成为当前亟需解决的问题。基于此,公司决定搭建数据中台,从基于TDH的离线数仓再到基于Apache Doris的实时数仓,最终统一了数据出口,提升了数据质量,并实现查询速度400倍的提升。本文将详细为大家分享河北幸福消费金融数据中台搭建经验和应用实践,希望为其他企业带来有益的参考。 

 

河北幸福消费金融股份有限公司由张家口银行发起设立,是2017 6 月正式开业的全国第22家、河北省首家消费金融公司,主要面向个人客户发放最高额不超过20万元的普惠、小额、信用消费贷款。目前公司服务区域覆盖全国32个省级单位,相继获评为国家科学技术部认定的全国高新技术企业、河北省科技型中小企业和石家庄市科技小巨人企业。

 

随着客户数量和放贷金额持续上升,如何依托大数据、数据分析等技术,为各业务线人员提供更好的决策支持,如何提高工作效率、为客户提供更佳的使用体验,成为了当前亟需解决的问题。具体需求如下:

 

高管看板类:搭建高管驾驶舱帮助高层快速了解公司当前的整体经营状况,驾驶舱集成全业务线数据,包括实时业务指标和离线业务指标,在该场景下我们希望查询结果可以在毫秒内返回,便于管理层进行高效决策。 

 

实时变量类:为给风控决策提供实时支撑,需在500ms 内返回全产品线查询结果,并可基于申请、授信、关联人、逾期以及还款等基础信息,计算产品级、客户级和借据级高维度衍生变量。 

 

决策分析类:为给各业务部门提供业务分析和决策支撑,需在秒级返回年、季、月多维度的主题报表,特别是风险部门,需要从放款开始回溯全生命周期的运营情况;而计财部门,则需要通过以往经营数据表现,预测未来的盈利,数据量大且逻辑复杂。 

 

风险建模类:提供全量、明细级的数据,用于风险建模的变量跑批,满足对客户评分评级,参与审批、授信等核心业务的要求,以支持业务指标的观测、投入产出分析、变量筛选以及决策制定等业务需求。

 

监管合规类:为确保业务符合相关法律法规、行业标准等规范,需要根据监管合规的要求进行合规子系统的定期上报,上报的数据分为指标汇总项数据和明细数据。

 

为了满足不同业务线对数据分析的需求,公司开始搭建数据中台并对其进行优化。最初,公司基于商业化产品TDH 搭建了离线数仓,以满足基本数据分析需求。然而,随着数据时效性的提高和实时分析需求增加,公司迫切需要搭建一款实时数据仓库。因此引入了Apache Doris并在此基础上搭建了实时数仓,最终建立了一个高效、稳定的数据中台。本文将详细为大家分享河北幸福消费金融数据中台搭建经验和应用实践,希望为其他企业带来一些有益的参考。 

 

基于TDH  的离线数仓 

 

因早期主要解决离线分析需求,优先基于 TDH 集群建设离线数仓。通过 SqoopDataX  将上游

数据采集到离线数仓,经过标准化数据清洗,完成数仓日常跑批。离线数仓架构图如下所示:

image.png

 

 随着数据的积累和业务人员对数据时效的要求越来越高,基于 TDH  离线平台的一些问题逐渐显现出来:

 

数据采集同步时效慢:离线数仓抽数工具依赖于SqoopDataX 等组件,而受限于调度周期,此类工具采集的数据必然有滞后性。

 

资源冲突大:离线数仓每日跑批时间跨度大,一般从凌晨到下午5点左右,这将导致跑批和即席查询之间发生资源冲突,影响业务人员的使用体验。

 

查询分析慢:在使用离线平台进行自定义统计分析和数据探索时,查询分析响应速度慢、时效性难以保障,严重影响工作效率。

 

●T+1 延迟高:各业务线对实时数据处理的需求在逐渐增多, T+1 的数据已经无法适应数据快速获取和产生业务价值的诉求。 

 

报表定制周期长:报表定制化开发有固定的迭代周期,难以满足业务人员对数据的灵活多样的分析探索。 

 

烟囱效应:定期上报数据时,数据中台需要从多个业务系统中拉取数据。当业务系统发生变更后,会波及上述相关的报送子系统,形成烟囱效应。

 

 技术选型 

 

为了解决上述问题,我们迫切需要一款 MPP   引擎来构建实时数仓。对于新引擎我们有几个基本的要求:首先,需要简单易上手,以便团队快速掌握和使用;其次,需要具备强大的数据导入能力,以便快速高效地导入海量数据;同时,需要兼容离线数仓相关工具,以便与现有的数据处理工具和技术体系无缝衔接;此外,搭建和切换成本也需要低,以便快速部署使用和进行扩缩容;最后,它需要具备较好的并发能力和优异的查询性能,以便支持高并发、复杂查询等业务场景的需求。

 

在以上选型要求驱动下,我们对目前比较流行的 ClickHouse  Doris 进行了系统的调研,其中Apache Doris更符合我们的选型的要求,具体原因如下:

 

部署成本低: Doris采用分布式技术架构,部署只需两个进程,不依赖其他系统,在线集群扩缩容,自动副本修复,部署及使用成本较低。

 

快速上手使用:Doris采用主流的分区分桶设计思路,索引结构与 MySQL  的思路类似,相关  人员在使用Doris  时无需学习大量的新知识。相比之下,ClickHouse在建库建表需要分别指定类型,使用流程相对比较繁琐,上手难度也比较高。

 

工具兼容:业务人员通常使用 TDH  的客户端工具WaterDrop   进行离线数仓查询, Doris 过标准协议链接可完美兼容WaterDrop,  ClickHouse 无法兼容。

 

数据生态圈丰富: Doris 数据生态圈丰富,与 FlinkKafka 等组件结合度较高,同时支持联邦查询,提供了丰富的数据导入和接入方式,可以满足多场景下的数据处理需求。 

 

高并发能力:我们对 Doris 进行了性能压力测试,在高并发和大数据量的情况下,Doris 现出较好的性能和稳定性,能够满足不同业务场景的需求。 

 

社区活跃度高:Doris 社区非常活跃,有大量的开发者和用户参与其中,提供了丰富的技术支持和解决方案。同时 Doris 社区提供了全面的文档和资料,方便用户学习和使DorisSelectDB 为社区提供了一支全职专业的技术团队为社区用户提供服务与支持,任何问题均可得到快速响应。 

 

 基于Doris 的实时数据仓库 

 

在离线数仓的基础上,使用 Doris  结合CDH  Airflow  集群搭建了实时数仓,实时数仓的数据来源主要为离线数仓和 MySQL,  使用 Flink CDC 结合 PyFlink (使用 Python 调用 Flink API, PyFlink) MySQL  中的数据实时地采集到核心计算引擎Doris (后文将详细介绍 ) ,    Airflow 分布式调度系统,可以将实时任务进行常规化的调度运维。我们对 Doris引擎进行了基本数仓分层,数据经过各层处理后统一为各场景提供数据服务。 

 image.png

基于 Doris提供的丰富导入方式,我们可以快速将离线数仓中的实时数据清洗整合接入到Doris集群中,实现数据的快速迁移。目前我们已经将基于TDH的查询分析和数据探索服务全部转移Doris  引擎上,借助 Doris引擎快速计算的能力和优异的查询性能,可以更高效地进行数据处理和分析,业务处理速度和效率得到显著提升。

 

以某 SQL 为例,该 SQL 主要应用在信贷审批场景。我们对比了原有架构和新架构从十万、千 万,亿级别的三个大表 Join 查询返回速度。结果显示,在过去TDH架构中执行查询需要1130秒才可返回结果,而基于Doris   的新架构中仅需要1.7即可返回结果,速度提升400 

 

数据规模: image.png

 

原有离线数仓:需要1130秒才可返回结果  image.png 

 基于Doris的新数仓:优化查询平均返回时间仅需1.7秒,有时甚至可以1秒内返回。

image.png


更多精彩内容,欢迎观看:

带你读《Apache Doris 案例集》—— 02 河北幸福消费金融基于Apache Doris 构建实时数仓,查询提速400倍!(2):https://developer.aliyun.com/article/1405773


相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
相关文章
|
7天前
|
存储 SQL Apache
Apache Doris 开源最顶级基于MPP架构的高性能实时分析数据库
Apache Doris 是一个基于 MPP 架构的高性能实时分析数据库,以其极高的速度和易用性著称。它支持高并发点查询和复杂分析场景,适用于报表分析、即席查询、数据仓库和数据湖查询加速等。最新发布的 2.0.2 版本在性能、稳定性和多租户支持方面有显著提升。社区活跃,已广泛应用于电商、广告、用户行为分析等领域。
Apache Doris 开源最顶级基于MPP架构的高性能实时分析数据库
|
2天前
|
SQL 存储 Java
Apache Doris 2.1.7 版本正式发布
亲爱的社区小伙伴们,**Apache Doris 2.1.7 版本已于 2024 年 11 月 10 日正式发布。**2.1.7 版本持续升级改进,同时在湖仓一体、异步物化视图、半结构化数据管理、查询优化器、执行引擎、存储管理、以及权限管理等方面完成了若干修复。欢迎大家下载使用。
|
8天前
|
监控 Cloud Native BI
8+ 典型分析场景,25+ 标杆案例,Apache Doris 和 SelectDB 精选案例集(2024版)电子版上线
飞轮科技正式推出 Apache Doris 和 SelectDB 精选案例集 ——《走向现代化的数据仓库(2024 版)》,汇聚了来自各行各业的成功案例与实践经验。该书以行业为划分标准,辅以使用场景标签,旨在为读者提供一个高度整合、全面涵盖、分类清晰且易于查阅的学习资源库。
|
8天前
|
SQL DataWorks 关系型数据库
阿里云 DataWorks 正式支持 SelectDB & Apache Doris 数据源,实现 MySQL 整库实时同步
阿里云数据库 SelectDB 版是阿里云与飞轮科技联合基于 Apache Doris 内核打造的现代化数据仓库,支持大规模实时数据上的极速查询分析。通过实时、统一、弹性、开放的核心能力,能够为企业提供高性价比、简单易用、安全稳定、低成本的实时大数据分析支持。SelectDB 具备世界领先的实时分析能力,能够实现秒级的数据实时导入与同步,在宽表、复杂多表关联、高并发点查等不同场景下,提供超越一众国际知名的同类产品的优秀性能,多次登顶 ClickBench 全球数据库分析性能排行榜。
|
3月前
|
存储 消息中间件 Java
Apache Flink 实践问题之原生TM UI日志问题如何解决
Apache Flink 实践问题之原生TM UI日志问题如何解决
44 1
|
22天前
|
SQL Java API
Apache Flink 2.0-preview released
Apache Flink 社区正积极筹备 Flink 2.0 的发布,这是自 Flink 1.0 发布以来的首个重大更新。Flink 2.0 将引入多项激动人心的功能和改进,包括存算分离状态管理、物化表、批作业自适应执行等,同时也包含了一些不兼容的变更。目前提供的预览版旨在让用户提前尝试新功能并收集反馈,但不建议在生产环境中使用。
522 13
Apache Flink 2.0-preview released
|
27天前
|
存储 缓存 算法
分布式锁服务深度解析:以Apache Flink的Checkpointing机制为例
【10月更文挑战第7天】在分布式系统中,多个进程或节点可能需要同时访问和操作共享资源。为了确保数据的一致性和系统的稳定性,我们需要一种机制来协调这些进程或节点的访问,避免并发冲突和竞态条件。分布式锁服务正是为此而生的一种解决方案。它通过在网络环境中实现锁机制,确保同一时间只有一个进程或节点能够访问和操作共享资源。
61 3
|
2月前
|
SQL 消息中间件 关系型数据库
Apache Doris Flink Connector 24.0.0 版本正式发布
该版本新增了对 Flink 1.20 的支持,并支持通过 Arrow Flight SQL 高速读取 Doris 中数据。
|
3月前
|
消息中间件 监控 数据挖掘
基于RabbitMQ与Apache Flink构建实时分析系统
【8月更文第28天】本文将介绍如何利用RabbitMQ作为数据源,结合Apache Flink进行实时数据分析。我们将构建一个简单的实时分析系统,该系统能够接收来自不同来源的数据,对数据进行实时处理,并将结果输出到另一个队列或存储系统中。
207 2
|
3月前
|
消息中间件 分布式计算 Hadoop
Apache Flink 实践问题之Flume与Hadoop之间的物理墙问题如何解决
Apache Flink 实践问题之Flume与Hadoop之间的物理墙问题如何解决
47 3

推荐镜像

更多
下一篇
无影云桌面