数据仓库-数仓架构

1 数据仓库建设方法论

1.1 项目背景

数据仓库将建设成为融通全公司数据资产,提供便捷数据分析和数据服务,支持全公司数字化经营与创新。

1.2 数据仓库概述

数据仓库是一个面向主题的、集成的、相对稳定的、反映有历史变化的数据集合,用于支持数字化运营、数字化管理等数据业务。

具有以下特点:

  1. 包含公司生产过程中产生的全量业务数据
  2. 包含结构化与非结构化形式数据
  3. 来自于多个数据源、业务操作系统
  4. 保存一定的时间周期
  5. 按照企业内业务规则决定存储模型

数据仓库项目的建设工作是一项复杂的系统项目,涉及面非常广,实施难度也很大。实现数据与业务的充分融合,发挥数据真实价值并达到最大化,也需要一个过程,因此数据仓库建设需要有系统性的长期规划,在大数据建设的工作上也要有耐心、有恒心,在让设计兼顾完整性的同时,能够尽快的发挥作用,解决实际问题。

数据仓库项目不同于传统的在线交易系统项目,在线交易系统面向过程,需求确认,系统功能驱动项目的建设过程。数据仓库以数据为中心,面向分析。

1.3 建设方法论

为了更好的满足业务对数据模型的使用需求,同时满足企业级数据仓库的需要,采用上层业务驱动以及底层数据驱动相结合的方式,具体如图1-1所示。

在这里插入图片描述

图1-1 数据仓库建设方法论

底层数据驱动可以满足按照主题、系统进行整合数据,其更贴近业务源系统,以公共数据为主,从企业视角进行建设。

上层业务驱动可以满足按照特定应用对数据进行整合,由于其面向上层应用,扩展性较差,带有特定的口径以及维度,以满足业务方便些为主。

2 数据仓库体系架构

2.1 体系架构图

数据仓库分层架构按功能划分成六个区域,分别是数据缓冲层、数据贴源层、维度层、整合明细层、轻度汇总层和应用数据层,整体架构如图2-1所示。

在这里插入图片描述

图2-1 数据仓库架构

其中应用数据层按需建集市,比如:财务集市、供应链集市等。

2.2 数据仓库分层设计优点

数据分层是数据仓库设计中十分重要的一个环节,优秀的分层设计能够让整个数据体系更易理解和使用。具体来说,分层有如下的优点:

1、对不同粒度的数据进行分层存放,实现精细化管理;

2、保留业务数据多种粒度形态,用空间换时间,屏蔽业务需求变更对数仓的稳定性影响,快速响应需求;

3、解耦合分布执行,降低出问题的风险,一旦出现问题可以快速定位;

4、通过开发通用的数据模型,可避免重复开发,大大降低计算资源的使用;

5、把复杂问题简单化:分层也即利用“分而治之”的思想把复杂的问题简单化,更加清晰、易于理解。

2.3 各层设计原则

2.3.1 数据架构-贴源明细层[ODS]

1. 功能定义:即 Operational Data Store,ODS数据采用binlog实时增量同步,对于增量抽取的数据在ODS层至少需2种表,1种和生产保持1:1的全量表,1种是用于存放日增量数据的表。

1. 设计原则

a) 全量表与业务数据库数据完全一致,不做任何处理,对于生产数据先软删除再硬删除的数据(dba规范硬删除前需先软删除保留2天以上),生产硬删除后,数仓表不能同步删除(保留历史),此种场景,数仓ods全量表数据量会多出这部分标识了软删除的数据

b) 日增量表采用binlog同步生成,会记录当天所有的变化

c) ODS层数据原则上不对用户开放

2. 存储策略

a) 日增量表永久保存

b) 全量表保留最近7天并每个月月末最后一天保留一份快照,月末的快照数据永久保存

2.3.2 数据架构-维度层[DIM]

1. 功能定义:即 Dimension,该层按照主题划分对业务中维度类数据进行企业级整合,在保持原有粒度的基础上,完成一致性及标准化操作。

2. 设计原则

a) 以星型模型设计为主,按需采用雪花模型设计

b) 本层开始标准化

c) 本层完成数据清洗

d) 支持轻度业务变化的隔离

f) 消除了业务系统间数据的不一致性,保持原子粒度

g) 尽量沉淀出通用的维度属性

h) 维度拆分时兼顾存储空间占用

3. 存储策略

a) 日全量表存储7天

b) 拉链表每天存全量,保存7天,并每月一份全量,每月全量数据永久存储

2.3.3 数据架构-整合明细层[DWD]

1. 功能定义:即 Data Warehouse Detail,该层按照主题划分对业务数据进行企业级整合,在保持原有粒度的基础上,完成标准化以及数据预关联操作。

2. 设计原则

a) 星型模型建模,以逆范式宽表落地,多表整合

b) 保存明细数据

c) 本层开始标准化

d) 本层完成数据清洗

e) 支持轻度业务变化的隔离

f) 支持预关联及适当的预计算操作

g) 围绕核心过程业务数据,分主题进行组织和建设

h) 消除了业务系统间数据的不一致性,保持原子粒度

3. 存储策略

a) 日全量表存储7天

b) 拉链表每天存全量,保存7天,并每月一份全量,每月全量数据永久存储

2.3.4 数据架构-轻度汇总层[DWS]

1. 功能定义:即 Data Warehouse Summary,该层基于应用集市沉淀通用类属性、指标信息,面向应用系统、数据分析与数据挖掘的数据应用层。

2. 设计原则

a) 数据应用层共性轻度汇总需求下沉

b) 时间周期多以日、周、月汇总为主

c) 减少上层对DWD的直接依赖

d) 同时存在粗、细粒度的汇总加工数据

e)同一定义的统计指标不能存在多个表,避免相同定义指标口径不一致

3. 存储策略

a) 日全量表存储7天

b) 汇总表按需设置存储时间,最少不能少于7天

2.3.5 数据架构-数据应用层[ADM]

功能定义:即 Application Data Market,该层以项目或者应用扩展数据 ,细粒度占比低,粗粒度占比高, 侧重点为提供便捷的访问、分析和即席查询,数据应用层分基础层和对业务的应用层。

1. 基础层功能定义:即ADM Base,建立数据缓冲区,针对仓库内DIM、DWD和DWS层暂时无法满足的需求,基于仓库已接入数据或者新接入数据进行预汇总、预连接和预加工,快速响应上层集市数据需求。

2. 基础层设计原则

a) 体现集市数据个性化原则,在集市内部共享数据,集市间共性加工数据需下沉至数仓

b) 禁止跨集市调用,禁止逆向依赖上层数据

3. 基础层存储策略

c) 日全量表存储7天

a) 汇总表按需设置存储时间,最少不能少于7天

4. 应用层功能定义:即Report,该层为应用数据结果存放区。基于仓库维度层、明细汇总层和集市基础层数据聚合计算适用某个特定分析主题的数据,支撑外围应用。比如行长日报,监管报送,业务报表,业务系统调用等。

5. 应用层设计原则

a) 为上层应用提供数据服务

b) 除指标集市应用层数据可以被其他集市引用,原则上禁止跨集市依赖

c) 面向业务,以需求为导向,通常设计为大宽表,方便分析和使用

6. 应用层存储策略

a) 数据保留时间依据实际业务需求而定

数仓各层数据流向

a) ODS层的数据来源为数据平台通过工具直抽业务系统备份库的数据,或者通过数据库binlog同步的数据或者其它源头来源数据。

b) DWD层的数据来源为ODS层和DIM层,当DWD层实时表做维度冗余时需要从DIM层抽取数据,禁止从ODS层抽取,避免造成同一数据来源多处的情况,避免数据不一致。

c) DIM层的数据来源为ODS层。

d) DWS层的数据来源为DIM层和DWD层,不直接访问ODS层。

e) 多个应用集市间禁止数据依赖,除指标集市可以被其他集市引用。

f) 应用集市层的数据来源为DWD层、DIM层、DWS层,需周期性评估是否将DWD层数据加工到DWS层。

g) 应用集市层的基础层禁止逆向依赖应用层数据。

3 数据仓库各层数据库分配及权限管理

3.1 数仓各层数据库分配

数据仓库的数据库类型分为:正式库、临时库、开发库、敏感库。其使用场景如下:

Ø 正式库:集群作业日常跑批的操作库

Ø 临时库:集群作业日常跑批中间结果临时存放的操作库

Ø 开发库:上线人员数据验证,数据开发库

Ø 敏感库:集群作业日常涉及敏感数据解密的操作库

数据仓库各层,数据库规划如图3-1所示:

在这里插入图片描述

图3-1 数仓各层库规划

3.2 数据仓库各层用户及其权限控制明细

为了更好的把控数据安全,便捷、高效地对数据进行管理,将数据仓库用户权限类型分成系统级用户限权和个人级用户权限两部分,即将用户分成集群用户和个人用户,如图3-2所示。

在这里插入图片描述

图3-2 用户权限类型分类

两种用户类型针对不同数据库的权限有明确的区分,具体如下:

a) 正式库、临时库开通一个集群用户,集群用户拥有所有数据库操作权限。

b) 敏感库与正式库、临时库区分,单独开通一个集群用户,拥有敏感库的所有数据库操作权限。

c) 开发库开通个人级账号,个人级账号拥有开发库的所有权限,其它库按需设置读或者操作权限。

4 数据仓库存储策略

数据仓库中存在两大类型表,分别为事实表和维度表,这两种表的数据变化情况以及数据使用情况存在很大的差异性,且同一类别的表也有很大的差别。在模型物理化设计阶段,为每张数据模型规划一个合适的存储策略不仅能够保证数据模型的高效使用,也能够为数据平台节省大量的计算资源和存储资源。

4.1 存储策略介绍

在数据仓库中比较典型的存储策略有如下几种类型:

  1. 增量

a) 适用数据类型:日志类型只增不删不改的数据

  1. 全量

a) 适用数据类型:保留全量最新数据,不需要关注历史某一时间状态的数据

  1. 拉链

a) 适用数据类型:保留历史轨迹的数据,需要关注历史某一时间状态的数据。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

盘点十大免费低/无代码开发软件,数字化转型看这里

在数字化日益普及的当下,低代码开发技术逐渐受到大众的追捧。这种技术让缺乏编程经验的大众也能轻松创建应用程序和网站。通过直观的图形界面和拖拽功能,用户可以无需编写任何代码,轻松实现自己的开发需求。本文将为您介绍十大免费的低代码开…

Kubernetes Dashboard部署ImagePullBackOff问题处理

通常,出现ImagePullBackOff问题是由于Kubernetes集群无法拉取所需的镜像导致的。解决这个问题的方法通常包括以下步骤: 1. 检查Pod的描述信息: kubectl describe pod/[pod名称] --namespacekubernetes-dashboard 查看Events部分是否有关于…

再推新品,但华为智慧屏还在等一个契机

文 | 智能相对论 作者 | 佘凯文 在智能电动汽车狂潮下,昔日热闹的“智能电视”类市场(包括“智慧屏”、“智能屏”、“智慧电视”、“社交电视”等等五花八门的产品)愈发冷清——近些年来,家电行业内部呈现出的“分化”越发明显…

PatchMatchNet笔记

PatchMatchNet笔记 1 概述2 PatchmatchNet网络结构图2.1 多尺度特征提取2.2 基于学习的补丁匹配 3 性能评价 PatchmatchNet: Learned Multi-View Patchmatch Stereo:基于学习的多视角补丁匹配立体算法 1 概述 特点   高速,低内存,可以处理…

OpenLayer系列——【一】初识OpenLayer与OpenLayer视图操作

初识OpenLayer 1、初始化地图渲染 安装openlayer依赖 npm i ol首先准备一个容器用来渲染地图 <div id"map" ref"map" style"width: 100%; height: 100%" />导入依赖初始化地图 import ol/ol.css; import OSM from ol/source/OSM.js; …

最新AI创作系统ChatGPT系统运营源码+支持GPT-4多模态模型

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如…

浅谈智能安全配电装置应用在银行配电系统中

【摘要】银行是国家重点安全保护部分&#xff0c;关系到社会资金的稳定&#xff0c;也是消防重点单位。消防安全是银行工作的重要组成部分。在银行配电系统中应用智能安全配电装置&#xff0c;可以提高银行的智能控制水平&#xff0c;有效预防电气火灾。 【关键词】银行&#…

Python 集成 Nacos 配置中心

Python 集成 Nacos 配置中心 下载 Nacos 官方 pyhton 库 pip install nacos-sdk-python # 指定国内阿里云镜像源 pip3 install nacos-sdk-python -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com配置 Nacos 相关信息 Global:nacos:port: 8848…

高阶数据结构---树状数组

文章目录 楼兰图腾一个简单的整数问题 一个简单的整数问题2谜一样的牛 一、楼兰图腾OJ链接 二、一个简单的整数问题OJ链接 三、一个简单的整数问题2OJ链接 四、谜一样的牛OJ链接

Redis篇---第四篇

系列文章目录 文章目录 系列文章目录前言一、说一下 Redis 有什么优点和缺点二、Redis 缓存刷新策略有哪些?三、Redis 持久化方式有哪些?以及有什么区别?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章…

文件包含_具体场景、zip、php相关问题

具体场景—上传可控的文件 具体场景—远程文件包含 具体场景—伪协议

编译和链接

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 1. 翻译环境和运行环境 2. 翻译环境 2.1 预处理&#xff08;预编译&#xff09; 2.2 编译 2.2.1 词法分析&#xff1a; 2.2.2 语法分析 2.2.3 语义分析 2.3 汇编 2…

开发知识点-Git

团队协作-Git Giteegitee 创建仓库打开项目所在目录&#xff0c;右键选择Git Bush Here(你要确定电脑上已经安装了Git&#xff09;初始化本地仓库配置验证信息。 完美解决github访问速度慢介绍Git 与 SVN 区别IDEA 添加 gitee Gitee Git Gitee 大家都知道国内访问 Github 速度…

SOLIDWORKS知识点放送——什么是SOLIDWORKS布局草图?

什么是SOLIDWORKS布局草图&#xff1f;利用布局草图&#xff0c;我们可以“自顶向下”的设计出一个装配体。装配体用2D草图做个整体规划布局&#xff0c;利用此草图生成所有零件的基准。通过改变布局草图来更新装配体文件的内容。草图来定义零部件的大小、形状以及它在装配体的…

Vmware虚拟机创建快照、克隆和备份 创建文件夹共享方法

Vmware虚拟机备份 方法一&#xff1a;虚拟机快照备份 虚拟机 快照备份 像是Windows系统里的系统 还原点 功能&#xff0c;它能拍摄一张您虚拟机当前的状态&#xff0c;并将其保存起来&#xff0c;您可以随时通过恢复到快照功能将虚拟机还原到拍摄快照时的状态。 步骤1. 打开…

Linux环境下离线安装jdk1.8(内置最新的jdk安装包x64)

一、下载JDK 1.官网下载 官网地址&#xff1a;Java Downloads | Oracle 大多数人的Linux操作系统都是64位的&#xff0c;因此我们就选择64位的压缩包文件&#xff0c;jdk1.8_381是jdk1.8的最新版本。 2.百度网盘下载 链接&#xff1a;https://pan.baidu.com/s/1we_52oylG-el…

【uniapp】 video视频层级、遮挡其他弹窗或顶部导航 使用nvue覆盖

uniapp 顶部导航和弹窗被video遮挡解决办法 第一步&#xff1a;配置 subNVues {"path": "pages/index/index","style": {"navigationBarTitleText": "uni-app","navigationStyle": "custom","app-…

2023年,全球CIO最关注的问题是什么?

面对AI大潮&#xff0c;全球CIO们在焦虑什么&#xff1f;随着全球数字化转型步伐的加速&#xff0c;CIO的角色发生了哪些转变&#xff1f; 继2022年5月发布首份全球CIO报告之后&#xff0c;联想集团今年又发布了以“韧性的全球首席信息官&#xff08;The Resilient CIO&#xf…

VBA如何快速识别Excel单元格中的文本数字

Excel中一种非常特殊的数字&#xff0c;这些数字看似数字&#xff0c;其实是文本格式&#xff08;下文简称为文本数字&#xff09;&#xff0c;在单元格的左上角会有一个绿色小三角作为标志&#xff0c;如B1:B3单元格。 在编程时为什么需要区分普通数字和文本数字呢&#xff…

线下保薪班开启

大家都知道我们有线上班&#xff0c;对于想技能提升的同学来说&#xff0c;线上足以满足技能提升需求&#xff0c;对于想转行找工作&#xff0c;或者学生想就业的同学来说&#xff0c;线上却并不是一个好的选择&#xff0c;担心的可能有:担心自身基础较弱怕学不懂&#xff0c;担…