使用Doris作为金融数据库,轻松支持10000个数据看板

数据库 其他数据库
金融行业数据分析的复杂性在于数据本身而不是工程方面。因此,底层数据架构应着重于促进数据的统一和高效管理。Apache Doris提供了简单指标注册的灵活性,以及快速和高效的指标计算能力。

一、前言

在金融等数据密集型行业,数据源众多,数据流向也众多。这种现状很容易,几乎是不可避免地导致数据分析和管理混乱。例如,来自不同业务线的分析师会在数据报告中定义自己的财务指标。当你将这些无数的报告汇集到你的数据架构中时,你会发现许多指标在定义上重叠甚至相互矛盾。结果就是,开发一个简单的数据报告将需要来回进行大量的澄清沟通工作,使整个过程变得更加复杂和耗时。

随着业务的发展,数据管理也需要“标准化”的阶段。在数据工程方面,这意味着你需要一个数据平台,可以在其中生成和管理所有指标。这是为提供高效金融服务的架构前提条件。

在这里我们将介绍一个数据库(在本例中为Apache Doris)中金融指标的生命周期,从它们的生成到它们在数据报告中的有效呈现。你将深入了解那些精美的财务仪表盘背后的内幕。

【Apache Doris】:https://doris.apache.org/

二、定义新指标并将其添加到数据库中

从根本上说,指标是表中的字段。为了更具体地说明它们,我将用银行业的一个示例进行解释。

银行通过资产管理量(Assets Under Management,AUM)来衡量客户的资产。在这种情况下,AUM是一个原子指标,通常是源数据表中的一个字段。基于AUM,分析师衍生出一系列衍生指标,例如“年度AUM增长率”、“月度AUM增长率”和“每位客户的AUM”。

一旦定义了新指标,就可以将它们添加到数据报告中,这需要在Apache Doris中进行一些简单的配置:

开发者会相应地更新元数据,注册用于导出指标的基础表,配置中间表的数据粒度和更新频率,并输入指标名称和定义。一些工程师还会监控指标,根据指标评估系统识别异常情况并删除冗余指标。

当指标正确放置后,就可以将新数据导入数据库以获取数据报告。例如,如果导入CSV文件,我们建议使用Apache Doris的流式加载方法,并且每批次的文件大小为1〜10G。最终,这些指标将在数据图表中可视化。

三、计算指标

正如前面提到的,有些指标是通过组合源表中的多个字段来生成的。在数据工程中,这是一个多表连接查询。根据Apache Doris用户的优化经验,我们建议使用平面表而不是星型/雪花模式。在做出这样的更改后,该用户将包含1亿行的表上的查询响应时间从5s缩短到了63ms。

图片图片

平面表解决方案还消除了抖动。

图片图片

四、启用SQL缓存以减少资源消耗

分析师经常定期检查相同指标的数据报告。这些报告由相同的SQL生成,因此进一步提高查询速度的一种方法是使用SQL缓存。以下是启用SQL缓存的用例中的效果。

  • 所有查询都在10ms内响应。
  • 在同时计算30个指标(超过120个SQL命令)时,可以在600ms内返回结果。
  • 达到每秒事务处理量(TPS)为300,CPU、内存、磁盘和I/O使用率均低于80%。
  • 在推荐的集群规模下,可以缓存超过10000个指标,这意味着可以节省大量的计算资源。

图片图片

五、结论

金融行业数据分析的复杂性在于数据本身而不是工程方面。因此,底层数据架构应着重于促进数据的统一和高效管理。Apache Doris提供了简单指标注册的灵活性,以及快速和高效的指标计算能力。在这种情况下,用户能够在10000个仪表盘中处理10000个活跃的财务指标,并减少30%的ETL工作量。

责任编辑:武晓燕 来源: Java学研大本营
相关推荐

2010-06-11 09:04:30

MySQL数据库

2022-03-22 09:00:00

数据库SingleStor技术

2023-10-10 11:18:42

Spring数据库

2016-01-08 19:16:33

数据库DevOps

2023-04-18 18:22:31

开源工具数据库

2012-02-07 09:17:13

2020-08-04 08:05:47

数据泄露安全密码

2012-12-20 11:16:16

IBMdW

2019-10-29 05:00:11

Redis数据库集群

2022-03-30 09:30:00

数据库地理空间查询SQL

2009-07-02 09:35:02

hibernate访问

2015-01-28 00:33:00

数据库数据库引擎

2011-03-22 13:23:49

数据库术语

2011-04-11 13:09:56

数据库

2011-04-02 13:09:10

MySQLWebmin创建数据库

2021-04-08 10:15:46

数据工程师数据库数据科学家

2009-09-28 13:33:48

Hibernate访问

2018-11-19 10:10:51

Python数据库随机生成器

2009-06-30 00:45:54

Oracle数据库

2010-05-17 16:04:40

MySQL数据库
点赞
收藏

51CTO技术栈公众号