带你读《Apache Doris 案例集》——03 Apache Doris 在金融壹账通指标中台的应用实践(2)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 Tair(兼容Redis),内存型 2GB
简介: 带你读《Apache Doris 案例集》——03 Apache Doris 在金融壹账通指标中台的应用实践(2)

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

带你读《Apache Doris 案例集》——03  Apache   Doris  在金融壹账通指标中台的应用实践(1):https://developer.aliyun.com/article/1405768


一体化指标数据平台 

 

在架构升级完成后,我们可以建设统一的指标体系,通过指标内容、 BI Al 技术构建平台功

能,共同建设一体化指标数据平台。 

 

构建指标体系

 

金融壹账通借助归因关系分析帮助机构自上而下对指标进行建设,梳理核心KPI 并逐层拆建指标,保障指标体系的完整性与可落地性。根据指标生成方式,将指标类型进行细分,以银行营销场景举例,针对银行资产管理中对客户资产总值的衡量指标(AUM)   可以细分为以下三种类型:


image.png

 image.png

 

原子指标:通过数据源接入到指标平台的最细粒度指标,一般为表字段,例如AUM  额。 

 

衍生指标:为了进一步指标分析,平台自动衍生一系列指标,如AUM  同比、环比净增等。 

 

派生指标:为了满足复杂的指标分析场景,基于原子指标,添加过滤条件或者结合其他指标进行运算,帮助用户自助配置看板,节省取数过程。例如用户希望生成客均AUM  余额进行分析,平台可以借助原子指标AUM  余额与全量客户数生成该指标。 

 

构建指标平台功能

 image.png

 指标平台的功能实现主要依赖于 Apache Doris 数仓架构的支持,整体指标线上流程基于开发和业务配合完成。开发人员首先统一在平台进行元数据管理和指标录入,包括对加工报表的底表进行注册,配置中间表的数据粒度和更新频率等,接着对表进行关联、录入指标名称和指标口径信息。在输入指标基础信息之后,交由业务人员负责,选择对指标分析所需维度,对指标进行发布。

image.png 

 基于以上两个步骤,我们可以在平台中对指标数据进一步分析。如上图左侧所示,指标平台提供了各种柱状分析视图,业务人员能够可视化地查看指标排行榜看板,分析各银行分行AUM  排名情况。同时,我们融入了 Al 智能算法,借助时序模型检测指标异常,通过根因分析算法辅助KPI 检视,并分析指标异动原因。对于存量指标,平台提供了价值评分体系,能够及时下线价值低的指标,达到边使用边治理的目的。

 

基于ApacheDoris指标应用实践 

 

一体化数据平台的建设完全解决了金融壹账通在传统报表开发时指标口径不统一和指标重复计算的问题。在分析效率方面,我们希望在复杂的多表关联场景下,实现接口600毫秒响应时间、查询响应在100毫秒内的目标。因此,我们对Apache Doris 进行了测试与调优,从数据的前期准备、集群部署、模型调优三方面分享Apache   Doris在该场景下的应用实践。

 

在前期数据准备过程中,考虑到我们的数据集和官网测试的 SSB 数据集很相似,我们选择了官网推荐的开发测试环境配置,选用 Apache Doris  1.1版本进行测试。因为我们是通过 Python  Mock 数据直接生成 CSV 文件,所以我们采用 Stream Load 的方式分批导数,每次导入的CSV 文件都在Stream Load 推荐的文件大小1-10G以内,最终数据压缩比达到3:1,但单节点导入速度超过40 MB /s

 

 在集群部署过程中,为了对指标性能和服务器监控(CPUIO磁盘和内存),我们借助Prometheus导入ApacheDoris监控模版对集群部署监控,由Prometheus接收ApacheDoris暴露监控项,再借助Grafana 进行可视化呈现。 

 

在准备工作完成后即可开始进行大表关联查询,我们选择了耗时较长的 SQL  来查询指标趋势图。基于毫秒级查询目标,我们实施了两个优化解决方案。第一个方案是利用 Colocation   Join将数据在建表时提前聚合。第二个方案是借助 Audit    Loader   的方式收集高频 SQL,    反向优化数仓的表构建以及改写 SQL, 使用偏宽表设计代替之前的星型/雪花模型。通过两个方案的测试与评估,我们发现第二个方案能够在查询响应、服务资源节省中达到更加显著的收益。 

 

亿级数据多表关联查询,实现毫秒级查询响应

 

image.png

我们将SQL 查询执行时间进行了统计,如上图所示在采取方案一Colocation   Join   的方式时,查询响应时间从之前的5秒提升至1秒。虽然查询效率有所提升,但是我们希望能够更进一步缩短响应时间,完成预期目标。在采用方案二来调整数据模型后,SQL  执行时间从原来的5达到63毫秒响应时间,查询响应时间得到显著提升,满足我们对查询响应毫秒级的目标。

image.png 同时,我们借助 Grafana 查看 Apache Doris 查询性能,发现宽表构建的方案能够使查询时间从

原来的十多秒缩短至百毫秒内,服务器也不再出现抖动的情况。  

 

启用 SQL 缓存,节省服务器资源

image.png

  

采取宽表构建方案后,为了进一步提升查询性能,我们还启用了 SQL 缓存,帮助 T+1 报表场景

实现高效查询性能:

 

在启用缓存之后,基本所有查询时长都在个位数,最终达到单用户访问页面在4秒内加载的成果; 

 

30个指标同时进行时(SQL  指令超120),接口都可以满足600ms 内返回;

 

在并发场景下,最优TPS 达到300, CPU内存、磁盘和IO 满足80%以下;

 

经评估,我们发现在官网推荐的测试集群规模下, ApacheDoris都可以缓存上万指标,极大节省了资源。

 

未来规划 

 

目前,金融壹账通基于 Apache  Doris 实现了指标统一构建、查询、治理的一体化数据平台,为金融机构提供了全面的指标分析与展示,智能的指标生命周期管理等服务。在这样的平台建设下,集团内外多场景取得了非常显著的成果,截止目前,完成上万活跃指标、上千分析维度的积累,加工形成了上万个看板,减少了30%ETL 开发工作量。未来,公司将基于Apache Doris不断探索与优化,我们将重点推进以下几个方面的工作: 

 

平台实时分析:基于 Apache Doris构建湖仓一体,结合 Flink CDCApache Iceberg共同构建统一实时分析,

 

平台物化视图:期待新版本亮点,探索多表关联下的查询优化,比如构建多表物化视图。

 

●其他产品迁移:将中台其他产品迁移至 ApacheDoris。目前,标签平台基于 Elasticsearch存在一定的使用问题,未来我们也准备将该平台迁入Apache Doris。

 

在此特别感谢SelectDB技术团队和Apache Doris社区在使用过程中遇到任何问题都能及时响应,为我们降低了许多试错成本。未来,我们也会更积极参与社区贡献及活动,与社区共同进步和成长!

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
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 半结构化数据分析方案及典型场景
|
21天前
|
SQL 存储 缓存
Apache Doris 2.1.6 版本正式发布
2.1.6 版本在 Lakehouse、异步物化视图、半结构化数据管理持续升级改进,同时在查询优化器、执行引擎、存储管理、数据导入与导出以及权限管理等方面完成了若干修复
|
2月前
|
存储 消息中间件 Java
Apache Flink 实践问题之原生TM UI日志问题如何解决
Apache Flink 实践问题之原生TM UI日志问题如何解决
40 1
|
29天前
|
SQL 消息中间件 关系型数据库
Apache Doris Flink Connector 24.0.0 版本正式发布
该版本新增了对 Flink 1.20 的支持,并支持通过 Arrow Flight SQL 高速读取 Doris 中数据。
|
2月前
|
消息中间件 监控 数据挖掘
基于RabbitMQ与Apache Flink构建实时分析系统
【8月更文第28天】本文将介绍如何利用RabbitMQ作为数据源,结合Apache Flink进行实时数据分析。我们将构建一个简单的实时分析系统,该系统能够接收来自不同来源的数据,对数据进行实时处理,并将结果输出到另一个队列或存储系统中。
114 2
|
2月前
|
消息中间件 分布式计算 Hadoop
Apache Flink 实践问题之Flume与Hadoop之间的物理墙问题如何解决
Apache Flink 实践问题之Flume与Hadoop之间的物理墙问题如何解决
38 3
|
2月前
|
消息中间件 运维 Kafka
Apache Flink 实践问题之达到网卡的最大速度如何解决
Apache Flink 实践问题之达到网卡的最大速度如何解决
37 2
|
2月前
|
消息中间件 前端开发 Kafka
【Azure 事件中心】使用Apache Flink 连接 Event Hubs 出错 Kafka error: No resolvable bootstrap urls
【Azure 事件中心】使用Apache Flink 连接 Event Hubs 出错 Kafka error: No resolvable bootstrap urls
|
21天前
|
消息中间件 资源调度 API
Apache Flink 流批融合技术介绍
本文源自阿里云高级研发工程师周云峰在Apache Asia Community OverCode 2024的分享,内容涵盖从“流批一体”到“流批融合”的演进、技术解决方案及社区进展。流批一体已在API、算子和引擎层面实现统一,但用户仍需手动配置作业模式。流批融合旨在通过动态调整优化策略,自动适应不同场景需求。文章详细介绍了如何通过量化指标(如isProcessingBacklog和isInsertOnly)实现这一目标,并展示了针对不同场景的具体优化措施。此外,还概述了社区当前进展及未来规划,包括将优化方案推向Flink社区、动态调整算子流程结构等。
291 31
Apache Flink 流批融合技术介绍

推荐镜像

更多