当前位置: 首页 > news >正文

银行数据仓库体系实践(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

相关文章:

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

主数据区域中保留了数据仓库的所有基础数据及历史数据,是数据仓库中最重要的数据区域之一,那主数据区域中主要分为近源模型区和整合(主题)模型区。上一节讲到了模型的设计流程如下图所示。那近源模型层的设计在第2.3和3这两个步骤…...

vue在main.js中引入三方插件不生效的原因

有的时候需要比较复杂的功能,但是自己实现比较复杂的话,可以引入第三方插件.如果这个第三方插件需要全局都使用的话,可以在main.js中进行引入. 比如router elementplus之类的. import { createApp } from vue import ElementPlus from element-plus import element-plus/dist/…...

chatgpt搭建

chatgpt两步搭建大法 部署docker环境 下载docker curl -fsSL https://get.docker.com -o get-docker.sh安装docker sh get-docker.sh运行docker服务 systemctl start docker查看运行状态 systemctl status docker设置docker开机自启 systemctl enable docker部署chatgpt…...

vue基本理解

1、js闭包,作用?? 闭包是指在一个函数内部,可以访问外部函数的变量,即使外部函数已经执行完毕。闭包的作用有: 保护变量:闭包可以保护函数内部的变量,使其不受外部环境的影响。实现…...

NLP入门系列—Attention 机制

NLP入门系列—Attention 机制 Attention 正在被越来越广泛的得到应用。尤其是 [BERT]火爆了之后。 Attention 到底有什么特别之处?他的原理和本质是什么?Attention都有哪些类型?本文将详细讲解Attention的方方面面。 Attention 的本质是什…...

实习记录——第十天

今天啥也不想说了,ctf里面还有道题目还没做,这里就不写了,把日报奉上,懂得都懂: 2.2日总结: 早上对xx银行的招聘网站做了渗透测试,对招聘网点赞处做重放看是否会多次点赞,对收藏处考…...

Java实现学生信息管理系统:从Excel中提取数据的实用方法

在Java中实现学生信息管理系统并从Excel中读取数据,通常适用于以下场景: 数据迁移和集成:如果你有一个现存的学生信息管理系统,该系统可能使用数据库或其他存储方式,但你想将这些数据迁移到新的系统。Excel文件可能提…...

幻兽帕鲁服务器怎么一键删除游戏存档?(阿里云服务器)

目前通过阿里云一键部署的幻兽帕鲁服务器,已经支持一键清除游戏存档了,已经不需要你再去手动找到游戏存档文件夹,去手动删除了。首先打开阿里云的“计算巢服务器”控制台 进入之后,选择你的幻兽帕鲁服务实例,点击进入详…...

Cambalache in Ubuntu

文章目录 前言apt install flatpak这很ok后记 前言 gtkmm4相比gtkmm3有很多改革, 代码也干净了许多, 但在windows上开发 有ui设计器那自然方便很多, 但glade又不支持gtkmm4, windows上装Cambalache很是困难. 各种问题都找不到答案.于是 我用VMware虚拟机Ubuntu20.xx安装Cambal…...

洛谷P1540 机器翻译

参考代码 #include<iostream> #include<queue> using namespace std; int nums[1010]; int main(){queue<int> q;int M,N;cin>>M>>N;int res0;while(N--){int tmp;cin>>tmp;if(nums[tmp]1)continue;if(q.size()<M){q.push(tmp);res;nu…...

python-自动化篇-运维-可视化-绘图库-matplotlib

文章目录 Matplotlibmatplotlib开发环境搭建绘制基础绘制直线绘制折线设置标签文字和线条粗细绘制一元二次方程的曲线yx^2绘制正弦曲线和余弦曲线散点图绘制柱状图绘制饼状图绘制直方图等高线图绘制三维图 Matplotlib Matplotlib 是一个Python的 2D绘图库。通过 Matplotlib&am…...

【译】在 Mac 上加速 PyTorch 训练

写在前面 为什么突然深度介入大模型领域了 因为最近在评估大模型用于行业应用&#xff0c;通过 OpenCompass 排行榜了解到了很多大模型&#xff0c;像文心一言是自己深度试用过的&#xff0c;趁着这次评估&#xff0c;也体验或者通过其他团队的介绍了解了通义千问、清华智谱、…...

如何在Windows部署GoLand并通过SSH远程连接Linux服务器

文章目录 1. 安装配置GoLand2. 服务器开启SSH服务3. GoLand本地服务器远程连接测试4. 安装cpolar内网穿透远程访问服务器端4.1 服务器端安装cpolar4.2 创建远程连接公网地址 5. 使用固定TCP地址远程开发 本文主要介绍使用GoLand通过SSH远程连接服务器&#xff0c;并结合cpolar内…...

Netty源码三:NioEventLoop创建与run方法

1.入口 会调用到父类SingleThreadEventLoop的构造方法 2.SingleThreadEventLoop 继续调用父类SingleThreadEventExecutor的构造方法 3.SingleThreadEventExecutor 到这里完整的总结一下&#xff1a; 将线程执行器保存到每一个SingleThreadEventExcutor里面去创建了MpscQu…...

【讲座分享】| 复旦大学张奇教授——《自然语言发表论文如何打怪升级?NLP顶会论文发表》

文章目录 1 基础关1.1 基础书籍1.2 提高书籍1.3 课程链接1.4 编程实战 2 阅读关2.1 分层过滤2.2 集团作战&#xff0c;信息获取2.3 论文如何泛读 3 动机 方向关3.1 快速发论文3.2 好的研究 4 写作关4.1 论文写作流程4.2 从读者角度出发4.3 每一部分怎么写4.3.1 Abstract摘要4.3…...

面试八股文(3)

文章目录 1.HashSet如何检查重复2.comparable和Comparator区别3.ConcurrentHashMap和Hashtable区别4.线程和进程5.并发与并行的区别6.为什么使用多线程7.使用多线程可能带来问题8.线程的生命周期和状态9.什么是上下文切换10.线程死锁11.产生死锁四个条件12.如何避免死锁 1.Hash…...

Kubernetes WebHook 入门 -- 入门案例: apiserver 接入 github

博客原文 文章目录 k8s 集群配置介绍Admission WebhookWebHook 入门实践: github 认证接入web 服务器Dockerfile 镜像制作amd64x86_64构造镜像检验镜像 Makefilewebhook 接入 apiserverwebhook.yamlapiserver 挂载 webconfig在 github 中创建认证 token将 token 添加到 kubecon…...

办公软件巨头CCED、WPS面临新考验,新款办公软件异军突起

办公软件巨头CCED、WPS的成长经历 众所周知&#xff0c;CCED和WPS在中国办公软件领域树立了两大知名品牌的地位。然而&#xff0c;它们的成功并非一朝一夕的成就&#xff0c;而是历经了长时间的发展与积淀。 在上世纪80年代末至90年代初&#xff0c;CCED作为中国大陆早期的一款…...

unity角色触摸转向

1、挂载脚本到角色的父物体A上 2 、以屏幕左边的触摸为移动&#xff0c;右边为转向操作 3、加载角色时&#xff0c;将角色的父物体设置为A&#xff0c;须将角色的位置和角度置0 using System; using System.Collections; using System.Collections.Generic; using UnityEngin…...

世界顶级汽车品牌源代码遭泄露 详解源代码凭据安全解决方案

源代码凭据安全&#xff0c;您别忽视 !!! 一、事件回顾 2024年1月29日&#xff0c;RedHunt 实验室的研究员Lohit爆料&#xff1a;某世界顶级的豪华汽车品牌源代码面临泄露风险&#xff01;人为错误致GitHub令牌事故引发重大安全担忧。 RedHunt Labs在一次互联网扫描时&#x…...

2025年6月6日第一轮

2025年6月6日 The rapid in Chiese industdy is developnig e,and it is From be in a enjoy a deep is developing The drone industry in China is developing The drone industy in china develops rapidly and is in a leading position in in the world. The dro…...

vue3: bingmap using typescript

项目结构&#xff1a; <template><div class"bing-map-market"><!-- 加载遮罩层 --><div class"loading-overlay" v-show"isLoading || errorMessage"><div class"spinner-container"><div class&qu…...

榕壹云健身预约系统:多门店管理的数字化解决方案(ThinkPHP+MySQL+UniApp实现)

随着全民健身热潮的兴起&#xff0c;传统健身房在会员管理、课程预约、多门店运营等方面面临诸多挑战。针对这一需求&#xff0c;我们开发了一款基于ThinkPHPMySQLUniApp的榕壹云健身预约系统&#xff0c;为中小型健身机构及连锁品牌提供高效、灵活的数字化管理工具。本文将详细…...

Redis 缓存问题及其解决方案

1. 缓存雪崩 概念&#xff1a;缓存雪崩是指在缓存层出现大范围缓存失效或缓存服务器宕机的情况下&#xff0c;大量请求直接打到数据库&#xff0c;导致数据库压力骤增&#xff0c;甚至可能引发数据库宕机。 影响&#xff1a;缓存雪崩会导致系统性能急剧下降&#xff0c;甚至导…...

AI系统应用开发工程师

以下是对AI系统应用开发与运维岗位的梳理整合&#xff0c;从企业、岗位、任务、能力等维度进行分类呈现&#xff0c;便于清晰对比两者的工作侧重&#xff1a; 一、代表性企业对比 分类企业名称应用开发方向中移系统集成有限公司、科大讯飞河北科技有限公司、华为技术服务有限…...

全面理解 Linux 内核性能问题:分类、实战与调优策略

在 Linux 系统&#xff08;特别是嵌入式或服务器环境&#xff09;中&#xff0c;性能问题往往错综复杂、表象多变。只有对常见性能问题进行系统归类、理解其症状与根源&#xff0c;才能有效定位和解决。本文将围绕八大类核心性能问题&#xff0c;结合实战示例&#xff0c;逐类分…...

【LLM大模型技术专题】「入门到精通系列教程」LangChain4j与Spring Boot集成开发实战指南

LangChain4j和SpringBoot入门指南 LangChain4jLangchain4j API语言模型消息类型内存对象ChatMemory接口的主要实现设置 API 密钥SpringBoot Configuration配置ChatLanguageModelStreamingChatLanguageModel初始化ChatModel对象模型配置分析介绍说明通过JavaConfig创建ChatModel…...

GIC700组件

GIC700包含了几个重要的组件,它们使用一个内部的GIC互联,用于在不同的组件之间使用AXI5-Stream接口进行路由。 1. Distributor(GICD) gicd是GIC700中所有组件之间的主要通信节点。它作为SPI的管理者以及维护LPI的cache,并且与其它chip上的GIC700组件进行通信。当支持GIC…...

Java 类型参数 T、R 、 O 、K、V 、E 、? 区别

在 Java 泛型和函数式编程中&#xff0c;T、R 和 O 都是类型参数&#xff08;Type Parameters&#xff09;&#xff0c;它们的主要区别在于命名约定和上下文含义&#xff0c;而不是语言层面的区别。它们可以互换使用&#xff0c;但通常遵循一定的命名习惯以提高代码可读性。 1.…...

<2>-MySQL库的操作

目录 一&#xff0c;创建数据库 二&#xff0c;查看字符集和校验规则 三&#xff0c;修改数据库 四&#xff0c;删除数据库 五&#xff0c;备份和恢复数据库 六&#xff0c;查看连接 一&#xff0c;创建数据库 创建一个名为bin_db的数据库&#xff0c;并设置字符集为utf8…...