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

数据仓库数据分层详解

数据仓库中的数据分层是一种重要的数据组织方式,其目的是为了在管理数据时能够对数据有一个更加清晰的掌控。以下是数据仓库中的数据分层详解:

  1. 原始数据层(Raw Data Layer):这是数仓中最底层的层级,用于存储从各个数据源获取的原始数据。这些数据通常是未经处理和清洗的,包括来自数据库、日志文件、传感器等的数据。原始数据层的目的是保留数据的完整性和可追溯性,以备后续的数据处理和分析。
  2. 数据清洗层(Data Cleansing Layer):该层对原始数据进行清洗、去重、转换和标准化等处理。在这一层中,数据质量和一致性是关键考虑因素。清洗后的数据可以更好地支持后续的数据分析和建模。
  3. 集成层(Integration Layer):这一层是将来自不同数据源的数据进行整合和集成的层级。数据被转换为一致的格式和结构,以便于跨数据源的查询和分析。集成层通常包括数据仓库和数据集市等组件,数据被组织为维度和事实表的结构,以支持多维分析和报告。

此外,数据仓库中还有更细化的分层,例如数据明细层(DWD)、数据中间层(DWM)和数据服务层(DWS)等。这些分层使得数据仓库的设计更加复杂和精细,能够更好地满足不同的数据需求。

1、ODS层

数据仓库ODS层,即操作型数据存储层(Operational Data Store),是数据仓库的第一层,主要用来接收和存储数据源系统中的数据,同时保证数据的准确性和完整性。

数据源中的数据,经过ETL(即抽取、转换、装载)过程后,装入本层。这一层中的数据,大多是按照源业务系统的分类方式而分类的。ODS层会对数据进行简单的清洗、去重、格式转换等操作,为后续的数据处理提供基础数据。由于该层是最接近数据源的,因此不建议对该层数据做过多的数据清洗工作。

此外,ODS层的作用还包括支持数据仓库ETL过程,将ODS层中的数据转换为适合DW层使用的格式;支持历史数据追溯,以便用户进行历史趋势分析;以及减轻源系统负担,提高系统性能。

2、DWD层

数据仓库DWD层,即数据仓库明细层(Data Warehouse Detail),是数据处理的核心层,其主要任务是将ODS层中的数据进行清洗、加工、集成、聚合等操作,构建出符合业务需求的数据模型。

DWD层的主要目的是将业务数据库中的数据进行清洗和整合,形成相应的事实表。这些事实表是数据仓库维度建模的核心,紧密围绕业务过程来设计。DWD层会对业务方的整个业务过程进行分析,明确关键的业务步骤,并在满足业务需求的前提下,尽可能设计出更通用的模型。

在DWD层中,主要的事实表有三种类型:事务事实表、周期快照事实表和累积快照事实表。这些事实表为后续的决策层提供了精细化的数据支持。

3、DWB层

数据仓库DWB层,即数据仓库基础层(Data Warehouse Basic),位于数据仓库架构的中间位置,也是数据仓库中最核心的一层。

该层的主要任务是对DWD层中的数据进行进一步的加工和整合,以形成适合于决策分析的数据结构和粒度。在DWB层中,数据被进一步处理以满足不同决策分析需求的数据展示需求。这一层主要包括抽取、转换、加载和归并四个部分,需要对数据进行过滤、排序和校验等处理,以消除重复值并确保数据格式的统一性。同时,DWB层还可以根据不同的维度来建立多维数据模型,以支持灵活的数据查询和分析。

4、DWS层

数据仓库DWS层,即数据仓库服务层(Data Warehouse Service),是数据仓库架构中的关键组成部分,主要用于数据存储、数据处理、数据管理和数据查询。它是数据仓库的核心部分,具备高效的数据管理和存储能力。

在DWS层中,数据通常是按照主题和业务领域进行组织,以方便数据分析和查询。该层主要用于存储和管理数据,通过ETL操作等方式对数据进行加工和处理,为用户提供实时数据服务。此外,DWS层还可以提供各种类型的服务,如数据查询、统计、报表、分析等,以满足业务决策的需求。

从数据存储形式来看,DWS层主要采用列式存储方式,这种方式适合于批量查询和OLAP(联机分析处理)操作。而与之相对的是,ADS层(数据应用服务层)则主要采用行式存储方式,更适合于实时查询和OLTP(联机事务处理)操作。

5、ADS层

数据仓库ADS层,即应用数据服务层(Application Data Store),是数据仓库架构的顶层,主要用于为各种应用提供数据服务。

ADS层一般以业务或者部门来划分库,可以为各个业务线创建一个数据库。该层的数据是基于底层数据(如DWD层或DWS层的数据)生成的业务报表数据,可以直接作为数据仓库的输出,导出到外部的操作型系统中,如MySQL、HBase等。在数据仓库的分层架构中,ADS层是数据应用的最后一层,提供的是结果类型的数据,这些数据可以直接用于展示或进一步的分析。

同时,ADS层的数据抽离分析程度最高,因此是需求最明确的一层。它根据业务需求来决定数据维度和结果,以满足各种应用的数据需求。

数据仓库分层的主要优势包括:

  1. 把复杂问题简单化:将复杂的任务分解成多层来完成,每一层只处理简单的任务,方便定位问题。
  2. 减少重复计算:规范数据分层,通过的中间层数据,能够减少极大的重复计算,增加一次计算结果的复用性。
  3. 隔离原始数据:不论是数据的异常还是数据的敏感性,使真实数据与统计数据解耦开。

相关文章:

数据仓库数据分层详解

数据仓库中的数据分层是一种重要的数据组织方式,其目的是为了在管理数据时能够对数据有一个更加清晰的掌控。以下是数据仓库中的数据分层详解: 原始数据层(Raw Data Layer):这是数仓中最底层的层级,用于存…...

unity内存优化之AB包篇(微信小游戏)

1.搭建资源服务器使用(HFS软件(https://www.pianshen.com/article/54621708008/)) using System.Collections; using System.Collections.Generic; using UnityEngine;using System;public class Singleton<T> where T : class, new() {private static readonly Lazy<…...

白话模电:3.三极管(考研面试与笔试常考问题)

一、三极管的简单判断 1.判断三极 1)给了图 左边是b,有箭头是e,剩下是c 2)给了电位 b:中间值&#xff0c;e:较近值(离中间值)&#xff0c;c:较远值(离中间值) 2.判断流向 bc同向(共同流向“|”或共同流离“|”)&#xff0c;e与bc反向 3.判断材料 4.判断类型 5.判断能否构…...

LeetCode 395. 至少有K个重复字符的最长子串

解题思路 一道滑动窗口题型&#xff0c;不过滑动窗口的长度是不同种类元素的个数。 这里需要定义两个变量 cnt,overk。overk表示的是满足大于k的字符数, cnt表示的是该窗口中不同元素的个数且cnt>1&&cnt<26。 相关代码 class Solution {public int longestSub…...

C#重新认识笔记_ FixUpdate + Update

C#重新认识笔记_ FixUpdate Update Update: 刷新频率不一致,非物理对象的移动&#xff0c;简单的刷新可用&#xff0c; FixedUpdate: 刷新频率一致,按照固定频率刷新&#xff0c;一般调用FixedUpdate之后&#xff0c;会立即进入必要的物理计算中,因此&#xff0c;任何影响刚…...

Django 解决新建表删除后无法重新创建等问题

Django 解决新建表删除后无法重新创建等问题 问题发生描述处理办法首先删除了app对应目录migrations下除 __init__.py以外的所有文件:然后&#xff0c;删除migrations中关于你的app的同步数据数据库记录最后&#xff0c;重新执行迁移插入 问题发生描述 Django创建的表&#xf…...

Qt教程 — 3.3 深入了解Qt 控件:Input Widgets部件(2)

目录 1 Input Widgets简介 2 如何使用Input Widgets部件 2.1 QSpinBox组件-窗口背景不透明调节器 2.2 DoubleSpinBox 组件-来调节程序窗口的整体大小 2.3 QTimeEdit、QDateEdit、QDateTimeEdit组件-编辑日期和时间的小部件 Input Widgets部件部件较多&#xff0c;将分为三…...

数据分析-Pandas的直接用Matplotlib绘图

数据分析-Pandas的直接用Matplotlib绘图 数据分析和处理中&#xff0c;难免会遇到各种数据&#xff0c;那么数据呈现怎样的规律呢&#xff1f;不管金融数据&#xff0c;风控数据&#xff0c;营销数据等等&#xff0c;莫不如此。如何通过图示展示数据的规律&#xff1f; 数据表…...

Jmeter---分布式

分布式&#xff1a;多台机协作&#xff0c;以集群的方式完成测试任务&#xff0c;可以提高测试效率。 分布式架构&#xff1a;控制机&#xff08;分发任务&#xff09;与多台执行机&#xff08;执行任务&#xff09; 环境搭建&#xff1a; 不同的测试机上安装 Jmeter 配置基…...

安卓基础面试题

自定义view Android自定义View-CSDN博客 view和viewgroup View和ViewGroup的区别- view的事件分发 事件分发详解---历史最容易理解 组件化 Android-组件化开发 什么是ANR Android ANR详解-CSDN博客 Android性能优化 Android 优化-CSDN博客 Aroute 原理 Arouter框架原理…...

如何在 Linux ubuntu 系统上搭建 Java web 程序的运行环境

如何在 Linux ubuntu 系统上搭建 Java web 程序的运行环境 基于包管理器进行安装 Linux 会把一些软件包放到对应的服务器上&#xff0c;通过包管理器这样的程序&#xff0c;来把这些软件包给下载安装 ubuntu系统上的包管理器是 apt centos系统上的包管理器 yum 注&#xff1a;…...

Redis实现分布式锁源码分析

为什么使用分布式锁 单机环境并发时&#xff0c;使用synchronized或lock接口可以保证线程安全&#xff0c;但它们是jvm层面的锁&#xff0c;分布式环境并发时&#xff0c;100个并发的线程可能来自10个服务节点&#xff0c;那就是跨jvm了。 简单分布式锁实现 SETNX 格式&…...

SCI 图像处理期刊

引用 一区 1. IEEE TRANSACTIONS ON PATTERN ANALYSIS AND MACHINE INTELLIGENCE 顶刊:是 出版商:IEEE 2. IEEE Transactions on Multimedia 顶刊:是 出版商:IEEE 3. Information Fusion 顶刊:是 出版商:ELSEVIER 4.IEEE TRANSACTIONS ON IMAGE PROCESSING 顶刊:是 出版商:I…...

数据结构-红黑树

1.容器 容器用于容纳元素集合&#xff0c;并对元素集合进行管理和维护&#xff0e; 传统意义上的管理和维护就是&#xff1a;增&#xff0c;删&#xff0c;改&#xff0c;查&#xff0e; 我们分析每种类型容器时&#xff0c;主要分析其增&#xff0c;删&#xff0c;改&#xff…...

双指针、bfs与图论

1238. 日志统计 - AcWing题库 import java.util.*;class PII implements Comparable<PII>{int x, y;public PII(int x, int y){this.x x;this.y y;}public int compareTo(PII o){return Integer.compare(x, o.x);} }public class Main{static int N 100010, D, K;st…...

RabbitMQ高级-高级特性

1.消息可靠性传递 在使用RabbitMQ的时候&#xff0c;作为消息发送方希望杜绝任何消息丢失或者投递失败场景。RabbitMQ为我们提供了两种方式来控制消息的投递可靠性模式 1.confirm 确认模式 确认模式是由exchange决定的 2.return 退回模式 回退模式是由routing…...

Word粘贴时出现“运行时错误53,文件未找到:MathPage.WLL“的解决方案

在安装完MathType后&#xff0c;打开word复制粘贴时报错“运行时错误53,文件未找到&#xff1a;MathPage.WLL” 首先确定自己电脑的位数&#xff08;这里默认32位&#xff09; 右击MathType桌面图标&#xff0c;点击“打开文件所在位置”&#xff0c; 然后分别找到MathPage.W…...

html元素基本使用

前言 大家好&#xff0c;我是jiantaoyab&#xff0c;第一次学习前端的html&#xff0c;写一篇笔记总结常用的元素 语义化 例如只要是 不管字体的大小是怎么样&#xff0c;有没有加粗都是标题&#xff0c;元素显示到页面中的效果应该由css决定&#xff0c;这就是语义化。 文…...

PHP+golang开源办公系统CRM管理系统

基于ThinkPHP6 Layui MySQL的企业办公系统。集成系统设置、人事管理、消息管理、审批管理、日常办公、客户管理、合同管理、项目管理、财务管理、电销接口集成、在线签章等模块。系统简约&#xff0c;易于功能扩展&#xff0c;方便二次开发。 服务器运行环境要求 PHP > 7.…...

smartmontools-5.43交叉编译Smartctl

嵌入式系统的sata盘经常故障&#xff0c;需要使用smatctl工具监控和诊断sata故障。 1. 从网上下载开源smartmontools-5.43包。 2. 修改makefile进行交叉编译。 由于软件包中已经包含Makefile.am&#xff0c;Makefile.in。直接运行 automake --add-missing 生成Makefile。 3.…...

TPAMI 2025 | 港城大团队新作:强化学习引导 ODE 轨迹,提升图像复原性能

点击上方“小白学视觉”&#xff0c;选择加"星标"或“置顶” 重磅干货&#xff0c;第一时间送达在计算机视觉领域&#xff0c;图像恢复一直是核心研究方向之一——从模糊的监控画面中还原清晰细节、让水下拍摄的照片重现真实色彩、给低光照的夜景图像提亮增晰&#x…...

MelonLoader终极指南:7个步骤掌握Unity游戏模组加载器的完整教程

MelonLoader终极指南&#xff1a;7个步骤掌握Unity游戏模组加载器的完整教程 【免费下载链接】MelonLoader The Worlds First Universal Mod Loader for Unity Games compatible with both Il2Cpp and Mono 项目地址: https://gitcode.com/gh_mirrors/me/MelonLoader Me…...

基于MATLAB的智能车牌识别模型:实现定位、分割与识别一体化解决方案

基于MATLAB的车牌识别模型。 包括车牌识别系统&#xff0c;完成车牌定位、车牌字符分割和车牌字符识别。 用到灰度化、图像增强、边缘检测、车辆定位、分割车牌、车辆预处理、字符分割最后得到识别结果。 程序已调通&#xff0c;可直接运行。直接上干货&#xff01;今天带大家用…...

在Windows上直接安装Android应用:APK-Installer完整使用指南

在Windows上直接安装Android应用&#xff1a;APK-Installer完整使用指南 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否曾经想在Windows电脑上运行Android应用&…...

Proteus仿真跑通了,实物电路为啥不亮?C51单片机驱动LED的5个硬件避坑指南

Proteus仿真成功但实物电路不亮&#xff1f;C51单片机驱动LED的5个硬件避坑指南 当你第一次在Proteus中看到LED按照预期闪烁时&#xff0c;那种成就感难以言表。然而&#xff0c;这种喜悦往往在转向实物搭建时戛然而止——电路板上的LED要么纹丝不动&#xff0c;要么常亮不灭&a…...

mysql进阶--锁

锁的概述: 锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中&#xff0c;除传统的计算资源&#xff08;CPU、RAM、I/O&#xff09;的争用以外&#xff0c;数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问…...

关于2026年6月14日PMI认证考试的报名通知

尊敬的各位考生&#xff1a; 经PMI和中国国际人才交流基金会研究决定&#xff0c;中国大陆地区2026年第二期PMI认证考试6月14日举办。在基金会网站报名参加本次PMI认证考试的考生须认真阅读下文&#xff0c;知悉考试安排及注意事项&#xff0c;并遵守考试有关规定。 一、 报名注…...

自动化工具赋能工作流:如何用KeymouseGo提升效率与降低错误率

自动化工具赋能工作流&#xff1a;如何用KeymouseGo提升效率与降低错误率 【免费下载链接】KeymouseGo 类似按键精灵的鼠标键盘录制和自动化操作 模拟点击和键入 | automate mouse clicks and keyboard input 项目地址: https://gitcode.com/gh_mirrors/ke/KeymouseGo 在…...

MPU9250 I²C驱动库深度解析与嵌入式工程实践

1. MPU9250 IC驱动库技术解析与工程实践指南 MPU9250是InvenSense&#xff08;现为TDK子公司&#xff09;推出的高性能9轴运动传感器&#xff0c;集成3轴陀螺仪、3轴加速度计和3轴磁力计&#xff0c;广泛应用于无人机姿态解算、可穿戴设备运动追踪、机器人SLAM前端感知等嵌入式…...

实战指南:基于快马平台快速开发并部署班级宠物园应用官方下载门户

最近学校想推广一个班级宠物园的教育应用&#xff0c;需要快速搭建一个官方下载页面。作为技术负责人&#xff0c;我尝试用InsCode(快马)平台来快速实现这个需求&#xff0c;整个过程比想象中顺利很多。 项目规划与结构设计 首先明确页面需要包含的几个核心模块&#xff1a;顶部…...