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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 Tair(兼容Redis),内存型 2GB
简介: 带你读《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开发离线、实时数据融合分析的数据大屏应用。
相关文章
|
13天前
|
存储 SQL 缓存
快手:从 Clickhouse 到 Apache Doris,实现湖仓分离向湖仓一体架构升级
快手 OLAP 系统为内外多个场景提供数据服务,每天承载近 10 亿的查询请求。原有湖仓分离架构,由离线数据湖和实时数仓组成,面临存储冗余、资源抢占、治理复杂、查询调优难等问题。通过引入 Apache Doris 湖仓一体能力,替换了 Clickhouse ,升级为湖仓一体架构,并结合 Doris 的物化视图改写能力和自动物化服务,实现高性能的数据查询以及灵活的数据治理。
快手:从 Clickhouse 到 Apache Doris,实现湖仓分离向湖仓一体架构升级
|
28天前
|
存储 JSON 物联网
查询性能提升 10 倍、存储空间节省 65%,Apache Doris 半结构化数据分析方案及典型场景
本文我们将聚焦企业最普遍使用的 JSON 数据,分别介绍业界传统方案以及 Apache Doris 半结构化数据存储分析的三种方案,并通过图表直观展示这些方案的优势与不足。同时,结合具体应用场景,分享不同需求场景下的使用方式,帮助用户快速选择最合适的 JSON 数据存储及分析方案。
查询性能提升 10 倍、存储空间节省 65%,Apache Doris 半结构化数据分析方案及典型场景
|
2月前
|
存储 消息中间件 运维
招联金融基于 Apache Doris 数仓升级:单集群 QPS 超 10w,存储成本降低 70%
招联内部已有 40+ 个项目使用 Apache Doris ,拥有超百台集群节点,个别集群峰值 QPS 可达 10w+ 。通过应用 Doris ,招联金融在多场景中均有显著的收益,比如标签关联计算效率相较之前有 6 倍的提升,同等规模数据存储成本节省超 2/3,真正实现了降本提效。
招联金融基于 Apache Doris 数仓升级:单集群 QPS 超 10w,存储成本降低 70%
|
2月前
|
存储 消息中间件 人工智能
AI大模型独角兽 MiniMax 基于阿里云数据库 SelectDB 版内核 Apache Doris 升级日志系统,PB 数据秒级查询响应
早期 MiniMax 基于 Grafana Loki 构建了日志系统,在资源消耗、写入性能及系统稳定性上都面临巨大的挑战。为此 MiniMax 开始寻找全新的日志系统方案,并基于阿里云数据库 SelectDB 版内核 Apache Doris 升级了日志系统,新系统已接入 MiniMax 内部所有业务线日志数据,数据规模为 PB 级, 整体可用性达到 99.9% 以上,10 亿级日志数据的检索速度可实现秒级响应。
AI大模型独角兽 MiniMax 基于阿里云数据库 SelectDB 版内核 Apache Doris 升级日志系统,PB 数据秒级查询响应
|
1月前
|
存储 SQL 分布式计算
Hologres 与阿里云生态的集成:构建高效的数据处理解决方案
【9月更文第1天】随着大数据时代的到来,数据处理和分析的需求日益增长。阿里云作为国内领先的云计算平台之一,提供了多种数据存储和处理的服务,其中Hologres作为一款实时数仓产品,以其高性能、高可用性以及对标准SQL的支持而受到广泛关注。本文将探讨Hologres如何与阿里云上的其他服务如MaxCompute、DataHub等进行集成,以构建一个完整的数据处理解决方案。
60 2
|
2月前
|
Java 数据库连接 数据库
实时数仓 Hologres产品使用合集之怎么查询版本
实时数仓Hologres是阿里云推出的一款高性能、实时分析的数据库服务,专为大数据分析和复杂查询场景设计。使用Hologres,企业能够打破传统数据仓库的延迟瓶颈,实现数据到决策的无缝衔接,加速业务创新和响应速度。以下是Hologres产品的一些典型使用场景合集。
|
2月前
|
存储 JSON 安全
Hologres的查询能力
Hologres的查询能力【8月更文挑战第25天】
21 0
|
2月前
|
存储 缓存 容器
实时数仓Hologres构建效率问题之瘦身如何解决
提升构建效率的原则首重准确性,在确保无误的基础上优化流程。应用瘦身通过精简依赖减轻构建负担。分层构建利用底层共享减少重复工作。构建缓存存储以往结果,避免重复工序,显著提速。这些策略共同作用,有效提高构建效率与质量。
34 0
|
2月前
|
容器
实时数仓Hologres构建环境问题之Dockerfile描述如何解决
在制品构建时明确依赖版本可避免因版本变动引起的构建差异,确保一致性与可预测性。通过Dockerfile指定确切版本的依赖与环境,能够跨平台重现相同的构建环境。为保证构建脚本一致性,应采用与业务代码解耦的构建脚本,并严格控制环境变量。构建准确性和速度都很重要,但通常准确性优先,确保制品质量稳定可靠。
42 0
|
2月前
|
缓存 数据库
实时数仓 Hologres产品使用合集之如何查看并分析历史查询语句
实时数仓Hologres是阿里云推出的一款高性能、实时分析的数据库服务,专为大数据分析和复杂查询场景设计。使用Hologres,企业能够打破传统数据仓库的延迟瓶颈,实现数据到决策的无缝衔接,加速业务创新和响应速度。以下是Hologres产品的一些典型使用场景合集。

推荐镜像

更多