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

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 带你读《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社区在使用过程中遇到任何问题都能及时响应,为我们降低了许多试错成本。未来,我们也会更积极参与社区贡献及活动,与社区共同进步和成长!

相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
1月前
|
缓存 安全 Java
阿里云数据库 SelectDB 内核 Apache Doris 2.0.6 版本正式发布
阿里云数据库 SelectDB 内核 Apache Doris 2.0.6 版本正式发布
|
1月前
|
存储 机器学习/深度学习 Apache
如何将Apache Hudi应用于机器学习
如何将Apache Hudi应用于机器学习
22 0
|
1月前
|
消息中间件 存储 大数据
快手基于Apache Hudi的实践
快手基于Apache Hudi的实践
22 0
|
1月前
|
存储 SQL 数据管理
阿里云数据库 SelectDB 内核 Apache Doris 如何基于自增列满足高效字典编码等典型场景需求|Deep Dive 系列
自增列的实现,使得 Apache Doris 可以在处理大规模时展示出更高的稳定性和可靠性。通过自增列,用户能够高效进行字典编码,显著提升了字符串精确去重以及查询的性能。使用自增列作为主键来存储明细数据,可以完美的解决明细数据更新的问题。同时,基于自增列,用户可以实现高效的分页机制,轻松应对深分页场景,有效过滤掉大量非必需数据,从而减轻数据库的负载压力,为用户带来了更加流畅和高效的数据处理体验。
|
1月前
|
SQL 数据可视化 Apache
阿里云数据库内核 Apache Doris 兼容 Presto、Trino、ClickHouse、Hive 等近十种 SQL 方言,助力业务平滑迁移
阿里云数据库 SelectDB 内核 Doris 的 SQL 方言转换工具, Doris SQL Convertor 致力于提供高效、稳定的 SQL 迁移解决方案,满足用户多样化的业务需求。兼容 Presto、Trino、ClickHouse、Hive 等近十种 SQL 方言,助力业务平滑迁移。
阿里云数据库内核 Apache Doris 兼容 Presto、Trino、ClickHouse、Hive 等近十种 SQL 方言,助力业务平滑迁移
|
1月前
|
监控 API Apache
实战!配置DataDog监控Apache Hudi应用指标
实战!配置DataDog监控Apache Hudi应用指标
22 0
|
1月前
|
存储 SQL 分布式计算
Apache Hudi在Linkflow构建实时数据湖的生产实践
Apache Hudi在Linkflow构建实时数据湖的生产实践
40 0
|
1月前
|
存储 机器学习/深度学习 分布式计算
Apache Hudi在Hopsworks机器学习的应用
Apache Hudi在Hopsworks机器学习的应用
28 0
|
1月前
|
存储 分布式计算 分布式数据库
字节跳动基于Apache Hudi构建EB级数据湖实践
字节跳动基于Apache Hudi构建EB级数据湖实践
27 2
|
1月前
|
存储 SQL 数据管理
字节跳动基于Apache Hudi构建实时数据湖平台实践
字节跳动基于Apache Hudi构建实时数据湖平台实践
49 0

推荐镜像

更多