数据仓库分层理论

news2024/10/12 2:23:24

数据仓库的分层理论是数据仓库建设和设计的基础之一,目的是将不同类型、不同处理阶段的数据分层存放和管理,以提高数据处理的效率和灵活性,同时增强数据的可维护性和可扩展性。在数据仓库中,分层帮助我们理清从原始数据到最终业务数据的整个处理流程。一般而言,数据仓库的分层包括以下几个核心层次(不同公司的分层设置不同,但大体上一致):

1. ODS层(Operational Data Store,操作数据存储层)

ODS层是数据仓库中最底层的一部分,专门用于存储从业务系统中抽取出来的原始数据。

  • 特点:数据未经任何处理和转换,保留了业务系统中的细节,通常会按时间戳或批次存放。
  • 作用:
    • 数据归档:保存业务系统的原始数据副本,确保可以随时追溯到源数据。
    • 数据备份:如果源系统出现问题,可以从ODS层快速恢复业务数据。
    • 临时存储:为后续的数据清洗、转换和处理提供数据来源。

数据通常通过ETL(抽取、转换、加载)流程从业务系统导入ODS层。ODS层的数据具有较高的时效性,但并不直接用于业务报表或分析。

2. DWD层(Data Warehouse Detail,明细数据层)

DWD层是数仓分层结构中的第二层,主要负责存储清洗过的明细数据。与ODS层相比,DWD层的数据已经过初步处理,如数据清洗、标准化和格式转换等操作。

  • 特点:
    • 数据经过了基本的清洗、去重、补全等处理,但保留了所有的明细信息(即数据粒度不变)。
    • 在这一层次,数据的完整性和一致性得到了保证,但它仍是“事务性数据”,每个业务事件依然是独立的。
  • 作用:
    • 清洗与标准化:通过统一的规则对数据进行清洗,确保所有业务系统的数据格式一致,便于后续处理。
    • 保留细节:虽然数据已清洗,但所有原始的明细信息都被保留,适合需要按事务级别进行的分析。
    • 基础数据仓储:为后续的汇总和聚合操作提供基础数据。

DWD层的数据通常通过数据处理工具如Apache Spark、Hive等大规模数据处理平台进行批处理。

3. DWS层(Data Warehouse Summary,汇总数据层)

DWS层是数据仓库中的汇总层,主要负责存储经过聚合、汇总后的数据。与DWD层相比,DWS层的数据粒度通常较粗,是为了解决具体业务问题而进行的指标汇总。

  • 特点
    • 数据经过了大量的业务规则和逻辑处理,已经变成了汇总后的数据(如按天、按月的销售总额,客户的累计交易次数等)。
    • DWS层数据往往按照特定的业务需求进行聚合,具备一定的“统计性”和“指标性”。
  • 作用
    • 多维汇总:可以按时间、地区、产品、客户等维度对数据进行汇总,生成多维分析的基础数据。
    • 性能优化:通过提前进行汇总计算,减少在业务查询时的实时计算压力,提高响应速度。
    • 服务BI分析:为BI系统或报表系统提供数据支持,便于业务团队进行实时分析。

DWS层中的数据一般面向特定的业务指标,是业务部门直接使用的数据之一。

4. ADS层(Application Data Service,应用数据服务层)

ADS层是数据仓库分层理论中的最顶层,它是直接面向业务应用的数据层,提供具体的分析和应用服务。

  • 特点
    • 数据根据特定的业务需求进行了高度的聚合、转换,具备非常强的业务场景针对性。
    • ADS层的数据粒度最粗,通常是面向用户的高层级汇总数据(如指标、KPI等),已经可以直接用于业务决策或运营。
  • 作用
    • 业务场景驱动:ADS层的数据设计完全基于业务需求,例如日报、周报、月报中的关键指标数据,用户画像中的标签数据等。
    • 支持决策与应用:直接为BI报表、数据产品、应用系统提供数据支持,帮助业务用户进行数据决策。
    • 降低复杂性:通过提前计算和聚合,减少业务用户查询时的数据复杂性,提高查询性能。

在这一层,数据已经是完全为业务服务的最终结果,通常通过BI工具、报表、数据API等方式提供给业务团队或外部系统。


数据仓库分层的优势

分层理论之所以广泛应用于数据仓库的设计中,原因在于它带来了许多重要的优势:

  1. 解耦与独立
    不同层级的数据彼此独立,层与层之间的职责分明,使得每个层级的数据可以专注于特定的任务。这种解耦设计使得每个层的数据可以独立维护和优化。
  2. 灵活性与可扩展性
    分层模型让数据仓库具备良好的扩展性。例如,新增一个业务需求时,只需要在应用层新增相关的聚合和服务逻辑,而不必修改底层的数据结构。
  3. 数据质量与一致性
    数据的清洗、转换过程按照严格的流程逐层进行,保证了数据从原始业务系统到最终应用数据的质量和一致性。
  4. 查询性能优化
    数据仓库分层后,业务系统所需的聚合和汇总工作可以提前完成,大幅减少实时查询时的计算压力,从而提高数据查询和响应的性能。
  5. 可维护性
    通过分层将数据处理逻辑分离开来,各层的处理逻辑较为独立,问题排查和修复也变得更加高效。数据仓库维护和管理的复杂度大大降低。
  6. 数据可追溯性
    每一层的数据都可以回溯到上一层的来源,因此能够追溯数据的加工过程,便于数据的校验和审计。

小结

数据仓库的分层理论是大规模数据处理系统中的一种经典设计方法。通过分层架构,数据从原始业务系统被逐层处理、清洗、转换和汇总,最终为具体的业务应用提供支持。分层结构不仅能够提升数据处理的效率和数据质量,还增强了系统的灵活性和可扩展性,是构建高效稳定的数据仓库的重要手段。

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

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

相关文章

【C++】第三节:类与对象(中)

1、类的6个默认成员函数 如果一个类中什么成员都没有,简称为空类。 空类中真的什么都没有吗?并不是,任何类在什么都不写时,编译器会自动生成以下6个默认成员函数。 默认成员函数:用户没有显式实现,编译器…

【网络安全】将两个 Self-XSS 转变为可利用的 XSS

未经许可,不得转载。 文章目录 Self-XSS-1Self-XSS-2Self-XSS-1 目标应用程序为某在线商店,在其注册页面的First Name字段中注入XSS Payload: 注册成功,但当我尝试登录我的帐户时,我得到了403 Forbidden,即无法登录我的帐户。 我很好奇为什么我无法登录我的帐户,所以我…

SpringBoot集成Redis基础知识

Redis是干什么用的 Redis是一个开源的内存数据库,因其高性能、高可用性和丰富的数据结构,被广泛应用于多种场景下的数据存储和处理需求。以下是Redis的主要用途: 缓存:Redis最常用的用途是作为高性能缓存层,以减轻数…

docker部署虚拟机

创建新的容器web02,-v表示目录映射,-p时端口映射,把宿主机目录挂载到容器中 docker run -itd -p 80:80 -v /data/webapps/www/:/usr/share/nginx/html/ --nameweb02 nginx:latest 此时我们在发布网站时只需要放在宿主机的目录里就可以了 解…

Python数据分析-学生表现预测

一、研究背景 随着教育水平的不断提升,学生的学习成绩和综合素质得到了越来越多的关注。除了传统的学术成绩外,课外活动、家长支持等因素也在很大程度上影响着学生的学习表现和未来发展。现代社会中,家长、教师、学校和研究人员都在努力寻找…

Spring Boot课程问答:技术难题轻松解决

4系统概要设计 4.1概述 本系统采用B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式,是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示: 图4-1系统工作原理…

如何将长链接缩短

在我们平时的网络活动中,经常会遇到需要将长链接缩短的情况。有细心的小伙伴会发现,平时收到的短信里面都会携带一个很短的链接,这就是将长链接缩短之后的效果。长链接不仅不美观,而且在社群、各种网络平台、短信等场景推送时&…

安装SNMP并zabbix监控

windos server 安装SNMP 通过server manage ,add roles and features 选择features-SNMP service,选择next或者install等待安装完成后,server manage-tools-component service进入service管理窗口选择service-SNMP service,并将服务状态改为自动启动和运…

【宽字节注入】

字符编码 url 编码 GBK编码 utf8 编码 宽字节注入 php中的转译函数 宽字节注入介绍 练习 正常输入没有回显: 没有回显 usernameadmin&passwordadmin 闭合单引号,依旧没有回显 usernameadmin and 11%23&passwordadmin利用宽字节尝试闭合,依旧…

嵌入式C语言中链表的插入实现方法

大家好,今天主要给大家分享一下,如何使用链表插入功能。 第一:嵌入式中链表具体实现 链表查找思路:从链表的a0起,判断是否为第i结点,若是则返回该结点的指针,否则查找下一结点,依次类推。 具体代码的链表插入实现: linklist Locate(linklist_t h, data_t x) { …

基于差分进化灰狼混合优化的SVM(DE-GWO-SVM)数据预测算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 4.1 DE优化 4.2 GWO优化 5.完整程序 1.程序功能描述 基于差分进化灰狼混合优化的SVM(DE-GWO-SVM)数据预测算法matlab仿真,对比SVM和GWO-SVM。 2.测试软件版本以及运行结果展示…

VMwareWorkstation安装KylinV10sp3(银河麒麟)系统教程

版本说明 VMware版本如下 OS版本如下 创建虚拟机 点击创建新的虚拟机 按图下所示选择,点击下一步 按照图下所示选择,点击下一步 按照图下所示选择,点击下一步 按照图下所示选择,点击下一步 设置虚拟机名称,点击下一步…

【RabbitMQ高级——过期时间TTL+死信队列】

1. 过期时间TTL概述 过期时间TTL表示可以对消息设置预期的时间,在这个时间内都可以被消费者接收获取;过了之后消息将自动被删除。RabbitMQ可以对消息和队列设置TTL。 目前有两种方法可以设置。 第一种方法是通过队列属性设置,队列中所有消…

Ubuntu安装Apache教程

系统版本:Ubuntu版本 23.04 Ubuntu是一款功能强大且用户友好的操作系统,而Apache是一款广泛使用的Web服务器软件。在Ubuntu上安装Apache可以帮助用户搭建自己的网站或者进行Web开发。为大家介绍如何在Ubuntu上安装Apache,并提供详细的教程和操…

青云AI算力创新:直击AI落地痛点 打造企业数智化基石

在当今这个数字化、智能化的时代,企业数字化转型、智能化升级应用实践在加速,AI算力已经成为企业数字化转型和智能化升级的重要基石,而AI算力在推动技术创新和业务增长中起到了关键作用。青云科技近日举办的AI算力发布会,标志着AI…

Numpy模块中的ndarray对象属性、数组的重塑、合并、分割

一、ndarray对象属性介绍 说明:ndim属性返回数组的维度,即数组有多少个轴。例如,一维数组的ndim为1,二维数组的ndim为2,以此类推。 示例1: # coding:utf-8 import numpy as np wnp.array([[1,2,3],[4,5,6…

Java如何保证线程T1,T2,T3 顺序执行?

文章目录 方案 1:使用 Thread.join()方案 2:使用 Lock 和 Condition方案 3:使用 CyclicBarrier方案 4:使用 Semaphore总结 博主介绍:全网粉丝10w、CSDN合伙人、华为云特邀云享专家,阿里云专家博主、星级博主…

初始操作系统篇(1)—— 操作系统的概念与分类

找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程(ಥ_ಥ)-CSDN博客 所属专栏: 操作系统 目录 操作系统的基本概念 操作系统的概念 操作系统的特征 并发 共享 虚拟 异步 操作系统的目标和功能 操作系统的发展与分…

T11:优化器对比实验

T11周:优化器对比实验 **一、前期工作**1.设置GPU,导入库 **二、数据预处理**1.导入数据2.检查数据3.配置数据集4.数据可视化 **三、构建模型****四、训练模型****五、模型评估**六、总结 🍨 本文为🔗365天深度学习训练营 中的学习记录博客&a…

QT实现Opencv图像处理

案例 基于QT的人脸识别 pro文件需要加以下代码 INCLUDEPATH E:/opencv/opencv3.4-qt-intall/install/include INCLUDEPATH E:/opencv/opencv3.4-qt-intall/install/include/opencv INCLUDEPATH E:/opencv/opencv3.4-qt-intall/install/include/opencv2 LIBS E:/opencv/o…