银行数据仓库体系实践(8)--主数据模型设计

        主数据区域中保留了数据仓库的所有基础数据及历史数据,是数据仓库中最重要的数据区域之一,那主数据区域中主要分为近源模型区和整合(主题)模型区。上一节讲到了模型的设计流程如下图所示。那近源模型层的设计在第2.3和3这两个步骤中相对简化,模型表设计的结构同源系统的表结构,字段也一一映射即可。那下面以整合(主题)模型的设计步骤来进行介绍:

         整合(主题)模型层主要按主题进行数据整合,以第3范式为主进行表设计,有以下优点:

       (1)主题模型从全行角度对客户、产品、交易、账户等进行分类梳理,获得全行业务数据视图;

       (2)数据模型比较稳定,只要业务实体关系没有大的变化,不会因为源系统替换或升级导致整合模型出现大的变动。对于数据使用系统和集市来说比较稳定。

       (3)模型灵活易扩展,在增加功能的时可扩展模型,不需要重构数据模型,不影响已有数据实体。

       当然主题模型梳理设计比较耗费人力,同时规则需要全行认可,需要由一个管理全行数据的业务部门来统筹,可以和数据治理项目一起进行,将数据治理的数据标准等成果在数据仓库主题模型进行落地。

1、主题模型设计步骤

       1.1系统调研及筛选

        (1)前期调研与资料收集:调研全行或全公司的系统,从架构、业务数据及流程方面概略了解系统,需要和架构师、各系统负责人进行前期调研沟通,获取系统说明书、表结构、主要流程说明等资料。

       (2)系统级筛选:确定需要入数据仓库的系统范围,筛选条件主要考虑系统是否自己产生业务数据或者是业务流程中的一个部分,另外也考虑以下几方面:

       1)系统是否很快会被其他系统替代,是的话需要考虑对接新系统;

       2)系统数据结构现阶段是否稳定,业务是否有大改造,是的话可以考虑改造完接入;

       3)系统与其他系统的关系,是否关联系统也需要入仓;

       4)分布式系统是否数据结构统一,业务全流程包括哪些系统;

       5)纯外购系统是否能够得到提供商的支持,因为需要供应商配合调研和分析;

       (3)系统讲解及整理:

       确定入仓的系统后需要与系统负责人进行深入的调研和数据分析,主要步骤包括:

       1)系统整体调研:包括系统整理介绍、系统在行内的架构定位、主要功能、和其它系统的上下文关系、以及重要的业务流程和业务规则,同时也要了解系统夜间的切日和日终处理情况,便于后续系统数据采集,那最后产出物为详细的《XX系统调研报告》,同时也需要获取源系统的数据库设计文档及数据字典,建立和源系统调研问题跟进机制。

       1.2确定入仓表及字段

       (1)系统数据表筛选映射、代码整理:

       根据系统数据字典中的表清单进行各个表的功能、数据进行梳理,并确定是否入主数据区(入仓),同时对于确定入仓的表进行主题模型映射和代码字段的整理。那对于表是否入仓主要了解表中数据的业务含义,同时尽量保留粒度比较细的数据。那对于以下情况的表可以不进行入仓:

       1)系统控制类和业务流程控制类表:如系统中的序号生成器、系统开门时间、批处理控制表、数据包接收和拆分的记录;

       2)为未来业务拓展预留的表:部分业务系统设计了一些目前尚未开展的业务数据表;未来的业务规则和处理流程存在不确定性,因此暂不入仓。可以在未来进行扩展和补充;

       3)中间表和临时表:在源业务系统中记录业务操作中间状态的表;

       4)统计和报表类数据:部分系统中有大量的统计或报表类数据,可以使用入仓的明细数据在明确的逻辑和规则下自行进行加工;

       5)数据备份表:一般情况下,数据备份表不入仓;

       那本步骤产出结果为《XX系统表清单分析》及《XX系统代码整理》,以下参考模板:

        (2)字段级筛选映射

       该步骤主要分析,逐一调研分析数据库表中每个栏位的业务含义,向业务及源系统人员了解并使用样本数据确认数据质量和数据信息,并确定是否入整合模型。一般近源模型层除了敏感字段、二进制字段外会全部入仓,整合模型除了这两类还会进行筛选,一般以下类型字段也不进入整合模型:

       1)无分析意义的字段:加载时间戳,密码

       2)业务系统操作流程相关字段:下一打印行数,当前页号,帐页打印标志、批处理标志,

       3)中间计算结果字段:积数,本月累计积数,本期累计贷方发生额

       4)未启用字段:预留字符,预留数值、全空值字段

      5)长文本信息,需要明确业务上不使用的舍弃:备注,经办人,批准人

       6)冗余字段:活期账户中的客户名称,行业类型,经济性质

       那对确定入仓的字段需要进行数据范围以及关联字段(主外键)分析,看是否符合调研信息,对异常数据需要进行跟进分析,确定原因。这部分工作需要源系统人员在生产环境配合跑验证SQL。最终产出物为《XX系统字段分析》、《XX系统字段数据质量调研》。

     1.3逻辑模型设计

       逻辑数据模型(Logical Data Model)是一种图形的展现方式,采用面向主题的方法有效组织来源多样的各种业务数据,全面反映银行复杂的业务规则,它使用统一的逻辑语言描述银行业务,通过实体和关系勾勒出企业的数据蓝图。有实体、属性、关系概念,每个主题都是由多个表来实现的,表之间依靠主题的公共码键联系在一起,形成一个完整的主题。逻辑模型设计工具有商用的EWIN、POWERDESIGN等,目前开源的也有些,但功能和体验稍差些。

那逻辑模型设计可以由2种路径,一是银行根据以往的业务经验提炼本行业务的关键主题,设计出本行的概念模型;二是依托成熟产品进行客户化,即根据一些数据模型实施公司的产品针对本行实际数据情况进行适应。许多行使用第二种方式,速度较快,项目风险小。那基于已有成熟产品的方案在项目初期就需要选择好模型产品,一般可以调研其它行的模型落地情况,在我国银行落地实施较多的产品一般成熟度较高,适用性也经得起实战。那逻辑模型的客户化主要有以下步骤:

       (1)业务定义整合:主要包括客户识别、产品定义、内部机构等。客户识别整合即整合各系统客户信息,定义唯一客户号,识别同一客户。产品定义即在全行角度设置一套产品树并赋予唯一编号,内部机构也是确定一套内部机构,同时各系统的产品、内部机构都能映射到全行定义的产品和内部机构中。

       (2)确定各主题准入、分类、数据整合、历史处理的主题设计原则,比如客户分类包括对公、对私、同业等,历史数据采用拉链方式;

       (3)基于字段级映射的产出,根据主题设计原则再次检视各主题梳理入仓字段的所属主题以及模型中的实体关系是否和源系统实体关系一致,然后将字段映射或新增到现有的主题基础模型中。

       (4)代码整合:需要根据入仓的代码字段整合一套数仓的标准代码,并确定各系统代码字段映射到数仓标准代码的规则。一般这个工作也是数据治理数据标准的部分内容,最好先确定全行数据标准,以它作为数仓的代码标准基础并进行补充。

       (5)模型评估和验证:通过REVIEW会议由各主题设计人员进行主题设计的讲解,由模型组人员进行模型架构、业务规则、实体关系等方面进行评审,修正。模型的验证是一个持续的过程,特别是在提供数据给应用系统以及数据集市后,还会发现设计的问题,因此需要定期总结和优化。

       

    1.4物理模型设计

       逻辑模型适用于多个数据库实现,也就是可以有多个物理模型。物理模型设计主要将逻辑模型转化成可具体实施的数据表及关系并优化应用设计,优化存储以及提高数据访问效率,主要考虑点有:

       (1)考虑删除没有数据来源的实体和属性,增加公共字段如数据新增和修改日期。

       (2)考虑删除只有主键的实体,对于表较少的表或主题考虑合并到其它表或主题中,如渠道主题表和字段较少,可以考虑合并。

       (3)选择和调整主索引和分区字段,使数据均匀分布,提高性能。

       (4)对重要主题域的关键实体给予更多关注,一般客户、协议、事件会占用80%的数据空间,需要重点关注这几个主题的设计,如对事件表和近源层对应源表变化不大,可按视图实现,节省空间。

       (5)根据应用需求和关键字段适当增加关键的冗余字段(反范式),提高数据访问效率,比如在客户主表、协议主表增加常用查询字段的冗余可以减少关联,提高效率。

       (6)考虑大表的分拆和多表的合并,提高效率。

       (7)确定字段的英文命名和数据类型,按命名规范对模型字段、索引、表等进行命名。特别对于字段长度和精度,物理模型中的字段设计比源系统要长,需要考虑后续的扩展,因为源系统经常会增加字段长度或精度,在物理模型中需要提前考虑,以免后续影响数据使用系统。

       (8)分区、压缩和其它类索引:需要对常用的查询字段或条件建立索引,提高查询效率。

       基于逻辑模型生成的物理表,并考虑上述优化点,可以得到最终的数据仓库主题模型的物理模型并进行后续维护优化。


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

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

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

相关文章

探索Gin框架:Golang使用Gin完成文件上传

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站https://www.captainbed.cn/kitie。 前言 在之前的文章中,我们讲解了Gin框架的快速入门使用,今天我们来聊聊如何使用…

问题:第十三届全国人民代表大会第四次会议召开的时间是()。 #经验分享#知识分享#媒体

问题:第十三届全国人民代表大会第四次会议召开的时间是()。 A. 2018年3月3日至3月11日 B. 2019年3月5日至3月11日 C. 2020年3月5日至3月11日 D. 2021年3月5日至3月11日 参考答案如图所示 问题:顾客满意是顾客对一件产品满足…

环形链表(快慢指针)

给你单链表的头节点 head ,请你反转链表,并返回反转后的链表 给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环…

Fink CDC数据同步(一)环境部署

1 背景介绍 Apache Flink 是一个框架和分布式处理引擎,用于在无边界和有边界数据流上进行有状态的计算。Flink 能在所有常见集群环境中运行,并能以内存速度和任意规模进行计算。 Flink CDC 是 Apache Flink 的一组源连接器,基于数据库日志的…

Redis(十一)单线程VS多线程

文章目录 概述为何选择单线程主要性能瓶颈多线程特性和IO多路复用概述Unix网络编程中的五种IO模型Blocking IO-阻塞IONoneBlocking IO-非阻塞IOIO multiplexing-IO多路复用signal driven IO-信号驱动IOasynchronous IO-异步IO 场景:引出epoll总结 开启Redis多线程其…

【硬件产品经理】避免硬件产品失败 | 技术维度

目录 简介 技术维度一:低估产品开发 技术维度二:低估规模生产的复杂性 技术维度三:测试不足 技术维度四:产品太复杂 技术维度五:对客户承诺太高 推荐内容 简介 这节内容主要从技术维度来谈谈避免硬件产品失败这…

PPT母版页码设置

PPT母版页码设置 一、需求介绍二、达到效果三、具体操作1. 插入页码2. 设置起始页码为03. 进入母版编辑页面4. 内容格式调整5. 删去最后一个板式的三个模块信息6. 尾页处理7. 最终效果 一、需求介绍 PPT的母版可以设定PPT的基调,且在非母版页面不会误改PPT中的固定…

AI应用开发-git开源项目的一些问题及镜像解决办法

AI应用开发相关目录 本专栏包括AI应用开发相关内容分享,包括不限于AI算法部署实施细节、AI应用后端分析服务相关概念及开发技巧、AI应用后端应用服务相关概念及开发技巧、AI应用前端实现路径及开发技巧 适用于具备一定算法及Python使用基础的人群 AI应用开发流程概…

【教学类-44-04】20240130 print dashed(虚线字体)制作的数字描字帖

作品展示:背景需求: 制作绿色数字的数字描字帖 选用字体:print dashed(虚线字体) 【教学类-44-03】20240111阿拉伯数字字帖的字体(三)——德彪钢笔行书(实线字体)和pri…

在flutter中集成Excel导入和导出

flutter中集成Excel导入和导出功能 1、需要的依赖 在pubspec.yaml #excel导出syncfusion_flutter_xlsio: ^24.1.45open_file: ^3.0.1#导入excelflutter_excel: ^1.0.1#选择文件的依赖file_picker: ^6.1.1(1)依赖说明 在测试时,我们在使用导…

【内置对象·js】

数学对象 document.write("圆周率为 " Math.PI "<br>");日期对象 var date new Date(); // 实例化 Date 对象var month date.getMonth() 1; // 获取月份&#xff0c;取值为 0&#xff08;一月&#xff09;到 11&#xff08;十二月&#xff09;之…

1、安全开发-Python爬虫EDUSRC目标FOFA资产Web爬虫解析库

用途&#xff1a;个人学习笔记&#xff0c;有所借鉴&#xff0c;欢迎指正 前言&#xff1a; 主要包含对requests库和Web爬虫解析库的使用&#xff0c;python爬虫自动化&#xff0c;批量信息收集 Python开发工具&#xff1a;PyCharm 2022.1 激活破解码_安装教程 (2022年8月25日…

问题:测风站应设置在平直的巷道中,其前后()范围内不得有障碍物和拐弯等局部阻力。 #微信#媒体

问题&#xff1a;测风站应设置在平直的巷道中&#xff0c;其前后&#xff08;&#xff09;范围内不得有障碍物和拐弯等局部阻力。 参考答案如图所示

解密数据清洗,SQL中的数据分析

大家好&#xff0c;数据库表中的数据经常会很杂乱。数据可能包含缺失值、重复记录、异常值、不一致的数据输入等&#xff0c;在使用SQL进行分析之前清洗数据是非常重要的。 当学习SQL时&#xff0c;可以随意地创建数据库表&#xff0c;更改它们&#xff0c;根据需要更新和删除…

#从零开始# 在深度学习环境中,如何用 pycharm配置使用 pipenv 虚拟环境

为Python项目创建虚拟环境 在深度学习环境和一般python环境中安装pipenv基本一致&#xff0c;只需要确认好pipenv指定的python版本即可,安装pipenv前&#xff0c;可以通过python --version来确认安装版本 快捷键&#xff1a;crtl alt S 查看interpreter&#xff0c;查看所有…

深度学习入门笔记(七)卷积神经网络CNN

我们先来总结一下人类识别物体的方法: 定位。这一步对于人眼来说是一个很自然的过程,因为当你去识别图标的时候,你就已经把你的目光放在了图标上。虽然这个行为不是很难,但是很重要。看线条。有没有文字,形状是方的圆的,还是长的短的等等。看细节。纹理、颜色、方向等。卷…

C#代码添加脚本头

目录 前言 代码展示 前言 创建脚本的时候添加脚本的介绍 代码展示 using System.IO;/// <summary> /// 创建脚本自动添加头注 /// </summary> public class CommentFirst : UnityEditor.AssetModificationProcessor {/// <summary>/// 在资源创建生成.me…

JProfiler for Mac:提升性能和诊断问题的终极工具

在当今的高性能计算和多线程应用中&#xff0c;性能优化和问题诊断是至关重要的。JProfiler for Mac 是一个强大的性能分析工具&#xff0c;旨在帮助开发者更好地理解其应用程序的运行情况&#xff0c;提升性能并快速诊断问题。 JProfiler for Mac 的主要特点包括&#xff1a;…

小白Linux学习笔记-Vim 编辑器

Vim 编辑器 文章目录 Vim 编辑器Vim 简介Vim - 难以驾驭的神器Vim 入门帮助Vim 模式介绍正常模式命令模式插入模式 Vim 实例Vim 第一步首次运行 Vim插入文本移动光标删除字符其它编辑命令退出光标的指定移动简单搜索复制粘贴替换字符 Vim 的保护机制 Vim 编辑器课后作业 Vim 简…

【劳德巴赫 Trace32 高阶系列 3 -- trace32 svf 文件操作命令】

请阅读【嵌入式开发学习必备专栏 之 Trace32 系列 】 文章目录 Trace32 SVF 文件操作命令JTAG.PROGRAM.autoJTAG.PROGRAM.SVF命令参数介绍IRPREIRPOSTDRPREDRPOSTInitStateIgnoreTDOVerbose使用示例Trace32 SVF 文件操作命令 JTAG.PROGRAM.auto Format: JTAG.PROGRAM.</