【数据仓库基础(二)】数据仓库架构

news2024/11/30 20:19:20

文章目录

  • 一. 基本架构
  • 二. 主要数据仓库架构
    • 1. 数据集市架构
      • 1.1. 独立数据集市
      • 1.2. 从属数据集市
      • 1.3. Inmon企业信息工厂架构
    • 2. Kimball数据仓库架构
    • 3. 混合型数据仓库架构
  • 三. 操作数据存储(ODS)

一. 基本架构

架构是指系统的一个或多个结构。结构中包括软件的构建(指软件的设计与实现),软件的外部可以看到属性以及它们之间的相互关系。

我们把数据仓库架构理解成构成数据仓库的组件及其之间的关系,如下图:
在这里插入图片描述

图中显示的整个数据仓库环境包括操作型系统数据仓库系统两大部分。

操作型系统的数据

操作型系统的数据由各种形式的业务数据组成,这其中可能有关系数据库、TXT或CSV文件、HTML或XML文档,还可能存在外部系统的数据,比如网络爬虫抓取来的互联网数据等,数据可能是结构化、半结构化、非结构化的。这些数据经过抽取、转换和装载(ETL)过程进入数据仓库系统。

 
ETL过程
这里把ETL过程分成了抽取和转换装载两个部分。

抽取(E)
抽取过程负责从操作型系统获取数据,该过程一般不做数据聚合和汇总,但是会按照主题进行集成,物理上是将操作型系统的数据全量或增量复制到数据仓库系统的RDS中。

转换装载(TL)
转换装载过程将数据进行清洗、过滤、汇总、统一格式化等一系列转换操作,使数据转为适合查询的格式,然后装载进数据仓库系统的TDS中。

相关概念

RDS(RAW DATA STORES)
是原始数据存储的意思。
 
容错
因为ETL过程的bug或系统中的其他错误是不可避免的,保留原始数据使得追踪并(因为能够重复执行,所以)修改这些错误成为可能。
 
不影响业务系统的运行
有时数据仓库的用户会有查询细节数据的需求,这些细节数据的粒度与操作型系统的相同。有了RDS,用户可以查询RDS里的数据而不必影响业务系统的正常运行。

TDS(TRANSFORMED DATA STORES)
是转换后的数据存储。
这是真正的数据仓库中的数据。大量的用户会在经过转换的数据集上处理他们的日常查询。
 
自动化调度组件的作用是自动定期重复执行ETL过程。
不同角色的数据仓库用户对数据的更新频率要求也会有所不同,财务主管需要每月的营收汇总报告,而销售人员想看到每天的产品销售数据。

 

二. 主要数据仓库架构

数据仓库技术演化过程中,产生了几种主要的架构方法,包括数据集市架构、Inmon企业信息工厂架构、Kimball数据仓库架构和混合型数据仓库架构。

1. 数据集市架构

数据集市是按主题域组织的数据集合,用于支持部门级的决策。有两种类型的数据集市:独立数据集市和从属数据集市。

1.1. 独立数据集市

独立数据集市集中于部门所关心的单一主题域,数据以部门为基础部署,无须考虑企业级别的信息共享与集成。例如,制造部门、人力资源部门和其他部门都各自有他们自己的数据集市。

一个典型的独立数据集市架构如图所示。
在这里插入图片描述

独立数据集市的特点:

  1. 因为一个部门的业务相对于整个企业要简单,数据量也小得多,所以部门的独立数据集市具有周期短、见效快的特点。

  2. 每个部门相互独立构建,可能出现数据重叠、不一致等
    如果从企业整体的视角来观察这些数据集市,你会看到每个部门使用不同的技术,建立不同的ETL的过程,处理不同的事务系统,而在多个独立的数据集市之间还会存在数据的交叉与重叠,甚至会有数据不一致的情况。

  3. 跨部门分析力不从心
    从业务角度看,当部门的分析需求扩展,或者需要分析跨部门或跨主题域的数据时,独立数据市场会显得力不从心。而当数据存在歧义,比如同一个产品,在A部门和B部门的定义不同时,将无法在部门间进行信息比较。

 

1.2. 从属数据集市

从属数据集市的数据来源于数据仓库。数据仓库里的数据经过整合、重构、汇总后传递给从属数据集市。

在这里插入图片描述

建立从属数据集市的好处主要有:

● 性能:当数据仓库的查询性能出现问题,可以考虑建立几个从属数据集市,将查询从数据仓库移出到数据集市。
● 安全:每个部门可以完全控制他们自己的数据。
● 数据一致:因为每个数据集市的数据来源都是同一个数据仓库,有效消除了数据不一致的情况

 

1.3. Inmon企业信息工厂架构

介绍了两种数据集市,我们看下Inmon企业是如何构建数据仓库的
在这里插入图片描述

● 应用系统:
这些应用是组织中的操作型系统,用来支撑业务。操作型系统也叫源系统,为数据仓库提供数据。

● ETL过程:
ETL过程从操作型系统抽取数据,然后将数据转换成一种标准形式,最终将转换后的数据装载到企业级数据仓库中。ETL是周期性运行的批处理过程。

● 企业级数据仓库:
是该架构中的核心组件。企业级数据仓库是一个细节数据的集成资源库。其中的数据以最低粒度级别被捕获,存储在满足三范式设计的关系数据库中。(ing)

● 部门级数据集市:
面向主题数据的部门级视图,数据从企业级数据仓库获取。数据在进入部门数据集市时可能进行聚合。数据集市使用多维模型设计,用于数据分析。
重要的一点是,所有的报表工具、BI工具或其他数据分析应用都从数据集市查询数据(提升效率),而不是直接查询企业级数据仓库。

 

2. Kimball数据仓库架构

在这里插入图片描述

Kimball与Inmon两种架构的主要区别在于核心数据仓库的设计和建立。Kimball的数据仓库包含高粒度的企业数据,使用多维模型设计,这也意味着数据仓库由星型模式的维度表和事实表构成。

分析系统或报表工具可以直接访问多维数据仓库里的数据。

Kimball的数据集市是一个逻辑概念,只是多维数据仓库中的主题域划分,并没有自己的物理存储,也可以说是虚拟的数据集市。

 

3. 混合型数据仓库架构

在这里插入图片描述
所谓的混合型结构,指的是在一个数据仓库环境中,联合使用Inmon和Kimball两种架构

从架构图可以看到,这种架构将Inmon方法中的数据集市部分替换成了一个多维数据仓库,而数据集市则是多维数据仓库上的逻辑视图。

使用这种架构的好处是,既可以利用规范化设计消除数据冗余,保证数据的粒度足够细;又可以利用多维结构更灵活地在企业级实现报表和分析。(一般的企业都应该是这样设计的?)

 

三. 操作数据存储(ODS)

操作数据存储又称为ODS,是Operational Data Store的简写,其定义是这样的:一个面向主题的、集成的、可变的、当前的细节数据集合,用于支持企业对于即时性的、操作性的、集成的全体信息的需求。

操作型数据存储在某些方面具有类似于数据仓库的特点,但在另一些方面又显著不同于数据仓库。

  • 和数据仓库一样,是面向主题的。
  • 和数据仓库一样,其数据是完全集成的。
  • 数据是当前的,这与数据仓库存储历史数据的性质明显不同。ODS具有最少的历史数据(一般是30天到60天),而尽可能接近实时地展示数据的状态。
  • 数据是可更新的,这是与静态数据仓库又一个很大的区别。ODS就如同一个事务处理系统,当新的数据流进ODS时,受其影响的字段被新信息覆盖。
  • 数据几乎完全是细节数据,仅具有少量的动态聚集或汇总数据。通常将ODS设计成包含事务级的数据,即包含该主题域中最低粒度级别的数据。
  • 在数据仓库中,几乎没有针对其本身的报表,报表均放到数据集市中完成;与此不同,在ODS中,业务用户频繁地直接访问ODS。

在一个数据仓库环境中,ODS具有如下几个作用

  • 充当业务系统与数据仓库之间的过渡区
    数据仓库的数据来源复杂,可能分布在不同的数据库,不同的地理位置,不同的应用系统之中,而且由于数据形式的多样性,数据转换的规则往往极为复杂。如果直接从业务系统抽取数据并做转换,不可避免地会对业务系统造成影响。而ODS中存放的数据从数据结构、数据粒度、数据之间的逻辑关系上都与业务系统基本保持一致,因此抽取过程只需简单的数据复制而基本不再需要做数据转换,大大降低了复杂性,同时最小化对业务系统的侵入。
     
  • 转移部分业务系统细节查询的功能
    某些原来由业务系统产生的报表、细节数据的查询能够在ODS中进行,从而降低业务系统的查询压力。
     
  • 完成数据仓库中不能完成的一些功能
    用户有时会要求数据仓库查询最低粒度级别的细节数据,而数据仓库中存储的数据一般都是聚合或汇总过的数据,并不存储每笔交易产生的细节数据。
    这时就需要把细节数据查询的功能转移到ODS来完成,而且ODS的数据模型是按照面向主题的方式组织的,可以方便地支持多维分析。即数据仓库从宏观角度满足企业的决策支持要求,而ODS层则从微观角度反映细节交易数据或者低粒度的数据查询要求。

 
 
参考:《Hadoop构建数据仓库实践》

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

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

相关文章

stride与padding对输出尺寸的计算

公式: 练习: 图1: input4,filter3,padding0,stride1 output2 图2: input5,filter3,padding0,stride2 output2 图3: input6,filter3&am…

设计模式之观察者模式、访问者模式与模板方法模式

目录 观察者模式 简介 优缺点 结构 实现 运用场景 访问者模式 简介 优缺点 结构 实现 运用场景 模板方法模式 简介 优缺点 结构 实现 运用场景 观察者模式 简介 又叫发布-订阅模式,定义对象间一种一对多的依赖关系,使得每当一个对象改…

Android 应用程序通过MediaPipe 图片识别

MediaPipe 中使用目标检测模型可以实现实时检测图像或视频中的物体,并标记出物体的位置和类别。MediaPipe 中的目标检测模型基于机器学习算法,经过训练以识别特定的物体类别; 以下是在 Android 应用程序中集成 MediaPipe Object Detection 的…

SpringMVC应用

文章目录 一、常用注解二、参数传递2.1 基础类型String2.2 复杂类型2.3 RequestParam2.4.路径传参 PathVariable2.4 Json数据传参 RequestBody2.5 RequestHeader 三、方法返回值3.1 void3.2 Stringmodel3.3 ModelAndView 一、常用注解 SpringMVC是一个基于Java的Web框架&#…

Nacos启动连接mysql报错

问题 Nacos启动后,访问http://localhost:8848/nacos/index.html一直访问不了,查看nacos安装目录下的logs/config-fatal.log日志文件发现连接mysql报错,但是通过客户端连接工具测试mysql连接正常;核心报错如下: Cause…

【线程池】面试被问到线程池参数如何配置时该如何回答

前言 没有基于业务场景,直接抛出这个问题,等同于耍流氓。 八股文告诉我们CPU密集型就核心数1,IO密集型就核心数*2,那么真实业务中该怎么去配置呢。 方法论还是有的 1.需要分析线程池执行的任务的特性: CPU 密集型还是 …

【操作】安防监控/视频汇聚/视频云存储EasyCVR平台AI智能分析网关V3接入教程2.0

TSINGSEE的边缘计算硬件智能分析网关V3内置多种AI算法模型,包括人脸、人体、车辆、车牌、行为分析、烟火、入侵、聚集、安全帽、反光衣等等,可应用在安全生产、通用园区、智慧食安、智慧城管、智慧煤矿等场景中。将网关硬件结合TSINGSEE青犀的视频汇聚/安…

数据结构-01 数据结构基本概念,算法时间复杂度,空间复杂度

0 数据结构概述 四门课的关系 1 绪论 数据对象、数据元素、数据项关系 1.1 数据结构的基本概念 1.2 算法和算法评价 小练习 空间复杂度中的递归调用 n只是传入 n也是数组,计算存储数组flag的空间大小

HTTPS协议和SOCKS5协议的区别

HTTPS协议和SOCKS5协议是两种不同的网络协议,它们在传输数据的方式、安全性和使用场景等方面都有所不同。下面将介绍HTTPS协议与SOCKS5协议的区别。 传输数据的方式 HTTPS协议是一种基于HTTP协议的安全协议,它使用SSL/TLS协议对数据进行加密和解密。在传…

Kafka3.0.0版本——消费者(独立消费者消费某一个主题数据案例__订阅主题)

目录 一、独立消费者消费某一个主题数据案例1.1、案例需求1.2、案例代码1.3、测试 一、独立消费者消费某一个主题数据案例 1.1、案例需求 创建一个独立消费者,消费firstTopic主题中数据,所下图所示: 注意:在消费者 API 代码中必…

时序预测 | MATLAB实现CNN-LSTM卷积长短期记忆神经网络时间序列预测(风电功率预测)

时序预测 | MATLAB实现CNN-LSTM卷积长短期记忆神经网络时间序列预测(风电功率预测) 目录 时序预测 | MATLAB实现CNN-LSTM卷积长短期记忆神经网络时间序列预测(风电功率预测)预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1…

Matlab 如何把频谱图的纵坐标设置为分贝刻度

Matlab 如何把频谱图的纵坐标设置为分贝刻度 Matlab代码如下: % 如何把频谱图的纵坐标设置为分贝刻度 % % pr2_2_6 clc; clear; close all;load pr2_2_6_sndata1.mat % 读入数据 X fft(y); % FFT n2 1:L/21; % 计算正频率…

天翼云不做备案接入,如何绑定域名,不用80端口,443端口。

443,80端口不开启。 第一步: 宝塔更改web端口 搞个复杂的端口。 第二步: 在天翼云策略组上面开启修改过的web端口。 第三步:接入cdn,端口改成修改过的端口。

EVA: Visual Representation Fantasies from BAAI

本文做个简单总结,博主不是做自监督领域的,如果错误,欢迎指正。 链接 Code: Official:baaivision/EVA MMpretrain:open-mmlab/mmpretrain/tree/main/configs/eva02 Paper: EVA01:…

LAMP搭建WordPress

L linux A apache hhtpd M mysql/maridb P PHP1、 安装php yum -y install php php-fpm php-server php-mysql1.1、 启动php-fpm并自启 systemctl enable php-fpm --now[rootecs-1cee ~]# systemctl status php-fpm ● php-fpm.service - The PHP FastCGI Process ManagerLoa…

Ae 效果:CC Cross Blur

模糊和锐化/CC Cross Blur Blur & Sharpen/CC Cross Blur CC Cross Blur(CC 交叉模糊)可以通过单独控制水平和垂直方向的模糊程度来创建独特的交叉模糊效果,可以产生类似光线交错的视觉外观。 ◆ ◆ ◆ 效果属性说明 Radius X 半径 X 用…

CSS笔记(黑马程序员pink老师前端)盒子阴影,文字阴影

盒子阴影 属性值为box-shadow,盒子阴影不占空间,不影响盒子之间的距离. 值说明h-shadow必需,水平阴影位置,允许为负值v-shadow必需,水平阴影位置,允许为负值blur可选,模糊距离,数值越大影子越模糊spread可选,影子的尺寸color可选,影子的颜色inset可选, 将外阴影改为内阴影(省…

Python调试学习资料

Python调试学习资料 python -m pdb example.py网络资源 Python代码调试的几种方法总结Python 程序如何高效地调试?Python Debugging With Pdbpdb — The Python DebuggerThe Python Debugger (pdb)Python Debugger with Examples

Redis常用命令和Java操作Redis教程

Redis介绍 关系型数据库(RDBMS)非关系型数据库(NoSql)MysqlRedisOracleMongo dbDB2MemCachedSQLServer Redis是一个基于内存的key-value结构的数据库。 特点: 基于内存存储,读写性能高适合存储热点数据(…

Java8特性-Lambda表达式

📕概述 在Java 8中引入了Lambda表达式作为一项重要的语言特性,可以堪称是一种语法糖。Lambda表达式使得以函数式编程的方式解决问题变得更加简洁和便捷。 Lambda表达式的语法如下: (parameters) -> expression (参数) -> {代码}其中&…