银行数据仓库体系实践(10)--汇总指标层和集市模型设计

         建立多层次的数据访问服务体系,有力提升数据仓库的价值。基于指标汇总层、集市层、可以提供面向业务人员的即席数据查询、以及面向应用开发者的数据接口、应用访问接口,满足不同类型应用的需要。

1、汇总指标层模型设计原则及步骤

    1.1建设目标:

        汇总指标层也叫中间层,他提炼出对ODS具有共性的数据访问、统计需求,从而构建出的一个面向支持应用的、提供共享的数据访问服务的公共数据。从技术角度看目标有:

        (1)同时服务于多个不同应用,实现数据和指标的共享,减少相同的业务统计所带来的数据重复计算与存储,避免数据在多次加工后出现的不一致。

        (2)提高查询效率。将计算结果存储在指标汇总层,数据一次加工,多次使用,减少了重新关联表进行计算所带来的性能问题,加快了查询的响应时间。

    从业务层面来看,主要目的如下:

        (1)指标汇总层的实现对常用的业务统计口径进行统一的定义和维护,并基于此建立起常用的业务统计口径标准数据定义。

        (2)指标汇总层提供了一个便于业务人员理解的数据视图,可以供其分析使用。

    1.2设计步骤

       第7节已经提到过中间层的设计步骤如下:

        (1)从各集市以及数据应用系统分析共性的数据需求;

        (2)确定共性的关键实体和指标,即完成中间层数据加工范围;

        (3)确定统计维度,设计中间层表结构,设计时也需要考虑后续应用需求,做适当的属性和维度扩充;

        (4)对所需要的数据与主数据区数据进行映射,确定加工规则;

        (5)系统验证以及后续不断维护扩充,由于业务不断变化,中间层也会和数据仓库一样不断进行演化并适应数据使用需求;

    1.3设计原则

        那汇总指标层主要设计原则如下:

        (1) 应用驱动,按业务分析视角组织表设计:从设计步骤看,中间层的设计起源于各集市及数据应用系统的需求,同时设计中间层时需要按业务产品视角进行分类,如存款、贷款、中间业务等,以便业务集市和系统理解和使用,因为汇总指标层的数据直接会给到业务人员使用;

        (2)中间层采用了逆范式宽表设计,即采用维度建模的方法,在事实表尽量关联更多的属性,以减少后续关联。

        (3)汇总指标层主要统计的维度包括时间(年、月、日),机构、产品、客户、账户、币种、交易渠道、交易类型等,加工结果表一般都有多维度聚合,如存款账户交易月汇总指标,即根据存款账户不同的交易类型(交易码)来统计交易笔数和交易金额,如卡交易月汇总指标根据维度组合(卡、产品、机构、客户、币种)来统计交易笔数和交易金额

        (4)汇总指标按维度统计时按由细到粗的顺序进行汇总,减少重复计算量,如统计年交易量,可以先统计日交易量,再统计月交易量,最后统计年交易量,如统计,如统计客户资产可先按账户统计余额,再按产品汇总余额,最后按客户汇总各产品为总资产;如统计各机构的客户数,可以按支行、分行、总行进行逐层统计。

        (5)汇总指标层一般分为明细层和加工层,明细层主要为业务实体表,加工层主要为维度表和汇总指标结果表。明细层表主要按业务条线和产品条线进行表设计,如存款对私账户表、贷款借据表等,同时需要关联多表获得更全面的属性以及维度。如借据表需要有客户、合同、机构、币种、产品等维度,以便后续进行统计汇总。

        (6) 历史数据保留策略:中间层数据实际上是数据仓库当前全量的一个快照,如果按照历史每天保存数据量是非常大的,根据应用访问的要求和基础数据平台的空间情况,可以制定中间层数据的保留策略:

       1)事件交易明细表以视图方式获取主数据区数据,不进行保留;

        2)日表保留1-3日数据;

        3)月表保留13个月的月末数据;

        4)季报保留5个季度末数据;

        5)年报保留2个年末数据;

     1.4重点加工举例

        那在银行数据仓库中,加工层中的汇总指标结果除了常见的币种折算、余额、交易量、客户数等,以下几个方面也经常在中间层实现:

        (1)账户日均:日均是在产品分析、绩效考核绩效考核中都会遇到的指标,需要对存贷款账户的日均进行加工;

        (2)客户资产负债:客户资产负债对于客户分层以及营销方面经常使用,如需要将个人客户在银行的存款、贷款、理财、基金、三方存款、保险、信托、信用卡、贵金属等数据按资产负债进行分类统计。

        (3)交易对手:交易对手是监管报表、客户分析、风险控制所需要的重要信息,但是由于交易信息会散落在各个系统中,如支付、核心等,因此需要对交易进行关联以补充交易对手信息;

        (4)疑似客户:即2个客户号可能为同一个客户,如只有证件号码相同、只有手机号相同的客户,无法确定是否是同一个客户,可以在客户分析及数据清理时提供数据,由柜面在办理客户业务市进行补充信息,完善ECIF中的客户识别。

2、集市模型设计原则及步骤

        数据集市是面向数据应用为出发点,一个数据集市可以支持多个相关的数据应用,如风险集市可能支持新资本协议相关的内评、经济资本、风险缓释等系统;监管集市会支持央行大集中、1104报表、反洗钱等监管报送系统。数据集市的作用与指标汇总层类似,但服务的目标系统只是指标汇总层的一部分,因此集市比指标汇总层更面向应用和用户。

    2.1设计步骤

      (1)应用需求分析:这部分主要针对数据应用系统所需要的数据范围及指标来确定,因此是先分析数据应用系统的需求,再提炼数据集市的数据接口需求;

       (2)目标表设计:即数据集市结果表设计,他会根据数据应用的需求进行数据表设计,一般专业度高、产品成熟的系统会自带数据集市目标表的设计。比如管理会计、风险缓释等系统。

       (3)数据源分析:主要分析数据仓库的数据如何满足集市的需要,即确定需要数据仓库的那些表数据,如果数据仓库没有,则需要数据仓库进行数据补充。

       (4)数据仓库表与目标表字段进行映射,确定加工规则;

       (5)验证数据并调整加工规则;

     2.2设计原则

       数据集市一般简单分为三层:

       (1)基础数据:主要是从数据仓库获取的数据,如果是仓内集市,只需要做视图映射,减少数据移动,如果是仓外集市则需要通过数据抽取加载批量获取数据,对于基础数据由于数据仓库已经保留了历史数据,这部分历史数据可以只简单保留几天即可;

       (2)加工计算:即集市的目标表或物理模型,需要从基础数据加工映射到目标表。这部分结果表需要根据应用的需求进行加工结果保留,有些系统如新资本协议相关系统的历史数据要求比较高,则需要设计历史数据保留方式,考虑是否可以归到到历史数据区。

        (3)接口层:主要提供数据给应用系统的批量数据接口,接口的加工不能太复杂,不进行数据加工,只进行简单的关联筛选,可以用视图表示,该部分数据只需要保留3天进行问题处理即可。

        集市的设计原则与指标汇总层类似,也是采用维度建模方式,常见的有星座模型、雪花模型等,只需要按实际应用需要和方便设计即可,对于指标加工也可按汇总指标层的方式逐层加工。

        那数据集市相对于汇总指标层更面向应用,两者的边界简单可以按加工需求是否是单一集市或应用系统使用,比如反洗钱相关的报送指标只有在反洗钱系统使用,那就在对应的监管集市来加工。如果对于贷款逾期相关的指标行内风险分析报表(对应风险集市)以及监管报表(对应监管集市)都需要使用,则需要在汇总指标层加工。

3、指标系统

        指标系统主要是进行指标管理的系统,他的主要功能有:

        (1)基础指标定义,即将基础指标和数据库字段进行映射;

        (2)衍生指标定义,即以基础指标为基础,通过简单或复杂的计算得到衍生指标,那衍生指标的规则可以进行配置;

        (3) 衍生指标计算,即按设定的周期进行衍生指标加工,如每天计算、月底计算等。

        通过指标系统可以清晰管理数据仓库及各集市、应用的指标,减少代码开发工作量。从系统建设上并不复杂,但在指标的业务管理方面往往会遇到问题,因为指标系统的定位应该是全行的指标体系,系统的业务属主由哪个部门来承担?如何进行指标分类?对于每一个指标由哪个业务部门来维护?这也业务指标的管理往往比较难以推进,因此有些银行建立了指标系统,但是只针对了几个系统指标进行了管理,应用效果也发挥不出来。

        指标系统可以作为全行的一个标准服务,可以连接任何一个数据集市、应用系统。通过用户进行隔离,如果单由一个业务部门全行推行较难,可以由各集市或数据应用的业务部门分别对各自的指标进行管理,分而治之。如果没有业务部门介入,由各系统负责人按指标方式进行管理和计算也有助于加工规则的需求管理。便于经验知识传递。

 

版权声明:本文为acumen_leo博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/acumen_leo/article/details/96383763

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/658104.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Blender教程(基础)-面的细分与删除、挤出选区-07

一、Blender之面的细分 新建一个立方体,在编辑模式下、选中一个面。 在选中的面上单击右键弹出细分选项,选择细分。 在选中细分后、会默认细分1次。修改细分次数在左下角 二、Blender之面的删除 选择中需要操作的面,在英文状态下按X键弹…

Flutter开发2:安装Flutter

在本篇博客中,我们将详细介绍如何安装Flutter开发环境。安装Flutter是开始使用Flutter进行跨平台移动应用开发的第一步。让我们开始吧! 官方安装文档 步骤1:下载Flutter SDK 打开浏览器,访问Flutter官方网站:https://…

SSRF靶场实践(作业)

Pikachu靶场 进入ssrf的页面,点击连接,发现url中记载了另一个url的内容 通过加载百度的网址发现可以返回内容 利用伪协议进行读取本地文件powershell.exe;不能执行,只能读取 查看源码,发现是通过curl_exec()读取网页/…

如何在Excel中清除单元格的格式?这里有详细步骤

Microsoft Excel提供了大量样式选项来自定义电子表格的外观。但是,如果你需要删除格式,则可以很容易地删除选定单元格和整个工作表的格式。我们将向你展示如何操作。 ​注意:清除格式只会删除文本的样式;将保留你的实际文本。 如…

java.util.LinkedHashSet cannot be cast to java.util.List 的解决方案

出现 “java.util.LinkedHashSet cannot be cast to java.util.List” 的错误,通常是因为你试图将一个 LinkedHashSet 对象直接强制转换为 List 类型。在 Java 中,LinkedHashSet 和 List 是两种不同的集合类型,不能直接进行转换。LinkedHashS…

USB清理软件USBclean轻松清理.DS_Store,Thumbs.db,.Spotlight文件

USBclean for Mac是一款Mac上的USB清理工具,USBclean mac版能够帮助我们快捷方便地为你清理外部磁盘垃圾文件,它支持将.DS_Store, Thumbs.db, .Spotlight 以及回收站中的垃圾文件进行清理。操作也十分简单,只需要将要清理的外部磁盘拖拽到USB…

Linux编辑器之vim的使用

文章目录 一、vim简介二、vim的基本概念三、vim的基本操作四、vim正常模式命令集移动光标删除文字复制替换撤销上一次操作更改跳至指定的行vim末行模式命令集列出行号跳到文件中的某一行查找字符保存文件离开vim 五、进阶vim玩法打开文件批量注释代码执行shell命令指定注释窗口…

harmony开发ohpm mac环境配置

Mac电脑 安装 Ohpm |HarmonyOS 安装 Ohpm ohpm环境配置好后,执行ohpm会报如下的错 ohpm has not been initialized yet. Execute the init script to initialize it first. 解决办法 鸿蒙OS开发,解决报错“ohpm has not been initialized yet…

远程访问@HttpExchange

提示:这是SpringBoot3以上的新特性。 远程访问HttpExchange 一、webClient二、Http 服务接口的方法定义三、声明式 HTTP 远程服务1.组合使用注解2.使用单个注解3.定制 HTTP 请求服务 四、总结1.部分方法过时2.过时的方法详解 远程访问是开发的常用技术,一…

方法阻塞的解决方案之一

1、简单使用 一个h一个cpp文件 #pragma once #include <iostream> #include <thread> #include <atomic> #include <chrono> #include <string>class Person {public:struct dog {std::string name;int age;};public:void a(std::atomic<bo…

设计模式篇---备忘录模式

文章目录 概念结构实例总结 概念 备忘录模式&#xff1a;在不破坏封装的前提下捕获一个对象的内部状态&#xff0c;并在该对象之外保存这个状态&#xff0c;像这样可以在以后将对象恢复到原先保存的状态。 就好比我们下象棋&#xff0c;下完之后发现走错了&#xff0c;想要回退…

Unity 自动轮播、滑动轮播

如图所示&#xff0c;可设置轮播间隔&#xff0c;可左右滑动进行轮播 1.在UGUI创建个Image&#xff0c;添加自动水平组件 2.添加并配置脚本 3.代码如下&#xff0c;都有注释 using UnityEngine; using UnityEngine.UI;public class IndicatorManager : MonoBehaviour {public …

【乳腺肿瘤诊断分类及预测】基于LVQNN学习向量量化神经网络

课题名称&#xff1a;基于LVQ神经网络的乳腺肿瘤诊断&#xff08;类型分类&#xff09; 版本日期&#xff1a;2023-03-10 运行方式: 直接运行0501_LVQ0501.m 文件即可 代码获取方式&#xff1a;私信博主或QQ&#xff1a;491052175 模型描述&#xff1a; 威斯康辛大学医学院…

(HAL)STM32F407ZGT6——10-4 高级定时器 PWM 输入模式实验

一、高级定时器简介 高级定时器的框图和通用定时器框图很类似&#xff0c;只是添加了其它的一些功能&#xff0c;如&#xff1a;重复计数器、带死区控制的互补输出通道、断路输入等。 高级定时器的时钟来自APB2, 而PCLK2 168Mhz, 我们设置PPRE2不分频, 因此高级定时器时钟 …

使用.NET6 Avalonia开发跨平台三维应用

本文介绍在Vistual Studio 2022中使用Avalonia和集成AnyCAD Rapid AvaloniaUI三维控件的过程。 0 初始化环境 安装Avalonia.Templates dotnet new install Avalonia.Templates若之前安装过可忽略此步骤。 1 创建项目 选择创建AvaloniaUI项目 选一下.NET6版本和Avalonia版…

detectron2的read_image方法

在看代码的时候&#xff0c;看到一行注释&#xff1a;use PIL, to be consistent with evaluation 说是用PIL方法加载&#xff0c;却又看见了BGR这种表述&#xff0c;后面的调用也都是cv2格式&#xff1a; 那我就要看下这里面是怎么实现的了&#xff0c;找到了read_image函数&…

[R] Why data manipulation is crucial and sensitive?

What does a data scientist really do? Identifying the pattern in cultural consumption, making fancy graph, engage a dialogue between data and the existing literature, refining hypothesis….(done within one months with three to four online meetings with p…

【涵子来信】——拆机,感想

大家好&#xff0c;我是涵子。 初中的第一个学期结束了&#xff0c;来临寒假。我在寒假做了一件有趣的事情&#xff1a;拆机&#xff0c;修手机。今天我来分享分享这件事情。 拆机 情况介绍 拆机对象&#xff1a; iPhone 6 Plus 情况&#xff1a; 电池健康度100%&#xff08…

Unity-WebGL

问题&#xff1a;提示gzip压缩报错解决&#xff1a;关闭打包的地方压缩&#xff0c;如下图问题&#xff1a;窗口未全屏解决&#xff1a;使用百分比画布替换固定尺寸画布 参考&#xff1a;新版Unity打包Webgl端进行屏幕自适应_unity webgl分辨率自适应-CSDN博客问题&#xff1a;…

Springboot+Redis

首先前提我们要在自己的本机电脑或者服务器上安装一个redis的服务器 Redis配置 添加依赖: <!-- SpringBoot Boot Redis --> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artif…