数据仓库分层解析(详细)

目录

一、数据仓库为什么要分层

二、数据仓库怎么分层

1、ODS(Operational Data Store):数据源层

2、DW(Data Warehouse): 数据仓库层

2.1、DWD(Data Warehouse Detail):数据明细层

2.2、DWM(Data WareHouse Midddle):数据中间层

2.3、DWS(Data WareHouse Service):数据服务层

3、ADS(Application Data Service):数据应用层

4、其它

4.1、DIM(Dimension): 维表层

4.2、DM(Data Mart):数据集市层

三、数据建仓基本流程

四、不同产品分层案例

1、阿里Dataphin(智能数据建设与治理)

2、帆软FineDataLink(一站式数据集成平台) 

3、电信天翼云DataWings(大数据管理平台)

4、从奥软件(ETL数据集成套件)

 一、数据仓库为什么要分层

数据仓库分层是一种组织和管理数据仓库的结构化方法,它将数据仓库划分为不同的层次或级别,每个层次具有特定的功能和目的。这种分层方法有助于管理数据仓库中的数据流程、数据处理和数据访问,并提供一种清晰的结构来支持数据管理和分析需求。

一个好的分层架构,要有以下好处:

1 清晰数据结构 :

数仓每一层都有对应的作用,方便在使用时更好的定位与了解。

2 数据血缘追踪:

清晰知道表或任务上下游,方便排查问题,知道下游哪个模块在使用,提升开发效率以及后期管理维护。

3 减少重复开发:

提高数据复用性,完善好数据仓库的中间层,减少后期不必要的开发,从而减少资源消耗,保障口径、数据统一。

4 复杂问题简单化:

将复杂问题拆解成多个步骤来完成,每一层处理单一步骤,当数据问题出现时,只需从问题出现处开始修复。

5、屏蔽原始数据的影响

数据仓库对接的源系统众多,且每个源系统的表命名、字段命名、字段含义等各有不同,通过数据仓库的分层设计,从底层来规范和屏蔽所有这些复杂性,保证下游数据用户使用数据的便捷和规范。如果源系统发生变更,只需要再相应的数据仓库层来处理,对下游用户透明无感。

数据仓库分层用空间换时间,通过大量的预处理来提升应用系统的用户体验(效率),因此数据仓库会存在大量冗余的数据;不分层的话,如果源业务系统的业务规则发生变化将会影响整个数据清洗过程,工作量巨大。
通过数据分层管理可以简化数据清洗的过程,把一个复杂的工作拆成了多个简单的工作,把一个大的黑盒变成了一个白盒,每一层的处理逻辑都相对简单和容易理解,这样比较容易保证每一个步骤的正确性,当数据发生错误的时候,往往我们只需要溯源并局部调整某个步骤即可。

二、数据仓库怎么分层

1、ODS(Operational Data Store):数据源层

ODS 层是最接近数据源的一层,又叫贴源层,考虑后续可能需要追溯数据问题, 因此对于这一层就不建议做过多的数据清洗工作,原封不动地接入原始数据即可, 至于数据去噪、去重、异常值处理等过程可以放在后面的 DWD 层来做!

定义:ODS 是操作型系统的一个副本,用于存储从生产系统中抽取的原始数据,通常是实时或接近实时更新的。
功能:ODS 层存储了数据的初始状态,保留了操作型系统中的数据结构和详细内容,主要用于支持操作型系统的实时查询和处理需求。
特点:数据更新频繁,保留了数据的操作历史,适合需要快速响应和高频查询的应用场景。

 ODS 层的数据主要来自于组织内部的业务应用系统,如企业资源计划(ERP)、客户关系管理(CRM)、销售、采购、库存管理系统等。这些系统产生的数据通常是实时、操作性的,包含了组织的日常业务活动的详细信息,ODS 层通常会集成来自多个业务应用系统的数据,以提供一个全面的、整合的数据视图。这有助于消除数据孤岛,确保业务数据的一致性和完整性

2、DW(Data Warehouse): 数据仓库层

数据仓库层是数据仓库核心层,在这里把从 ODS 层中获得的数据按照主题建立各种数据模型。该层又依次细分为DWD、DWM、DWS

2.1、DWD(Data Warehouse Detail):数据明细层

该层一般保持和 ODS 层一样的数据粒度,并且提供一定的数据质量保证。DWD层要做的就是将数据清理、整合、规范化,把脏数据、垃圾数据、规范不一致的、状态定义不一致的、命名不规范的数据处理掉。
同时,为了提高数据明细层的易用性,该层会采用一些维度退化手法,将维度退化至事实表中,减少事实表和维表的关联。
另外,在该层也会做一部分的数据聚合,将相同主题的数据汇集到一张表中,提高数据的可用性 。

  • 定义:DWD 是数据仓库的主要存储层,用于存放经过清洗、整合、加工后的详细数据。
  • 功能:DWD 层主要完成了数据的清洗、去重、数据格式转换等工作,确保数据质量和一致性,并且保留了数据的详细信息。
  • 特点:支持数据的历史追溯,提供了基础数据的单一版本,适合进行数据挖掘、分析和报表等操作。

在DWD层,数据经过了更加深入的清洗、转换和加工处理,以满足业务需求和分析目的。这包括数据清洗、数据整合、数据转换、数据计算、数据标准化等操作,以确保数据的质量、一致性和可用性。DWD 层通常采用关系型数据库(如Oracle、SQL Server、MySQL等)或者大数据存储系统(如Hadoop、Spark等)来存储数据。与ODS层相比,DWD 层的数据存储结构更为规范和固定,通常采用规范化的数据模型来支持复杂的查询和分析

2.2、DWM(Data WareHouse Midddle):数据中间层

该层会在 DWD 层的数据基础上,数据做轻度聚合,生成一系列的中间表, 提升公共指标的复用性,减少重复加工。
直观来讲,就是对通用的核心维度进行聚合操作,算出相应的统计指标。
在实际计算中,如果直接从 DWD 或者 ODS 计算出宽表的统计指标,会存在计算量太大并且维度太少的问题,因此一般的做法是,在 DWM 层先计算出多个小的中间表,然后再拼接成一张 DWS 的宽表。由于宽和窄的界限不易界定,也可以去掉 DWM 这一层,只留 DWS 层,将所有的数据再放在DWS也可。

2.3、DWS(Data WareHouse Service):数据服务层

DWS 层为公共汇总层,会进行轻度汇总粒度比明细数据稍粗,基于 DWD 层上的基础数据,整合汇总成分析某一个主题域的服务数据。
DWS 层应覆 盖 80% 的应用场景。又称数据集市或宽表。 按照业务划分,如主题域流量、订单、用户等,生成字段比较多的宽表,用于提供后续的业务查询,OLAP 分析,数据分发等。
一般来讲,该层的数据表会相对比较少,一张表会涵盖比较多的业务内容,由于其字段较多,因此一般也会称该层的表为宽表

  • 定义:DWS 是在DWD层的基础上进行聚合、汇总和计算的存储层
  • 功能:DWS 层对数据进行了聚合、汇总和预计算,以提高数据查询的效率和性能,并且支持复杂的分析和查询操作。
  • 特点:数据存储结构更优化,通常包括了数据的历史汇总和聚合信息,适合于需要复杂分析和报表的应用场景。

DWS 通常是指数据仓库的存储层,它是整个数据仓库系统的核心组成部分。DWS 层存储了经过清洗、转换和整合的数据,以支持各种数据分析、报表和决策需求。DWS层产生我们常讲的“大宽表”,DWS 层通常采用专门的数据存储系统或者数据库管理系统(DBMS)来存储数据,例如关系型数据库(如Oracle、SQL Server、MySQL等)、大数据存储系统(如Hadoop、Spark等)、云数据仓库(如AWS Redshift、Google BigQuery、Azure Synapse Analytics等)等。存储在 DWS 层的数据结构通常是规范化或者半规范化的,以支持复杂的数据分析和查询。

3、ADS(Application Data Service):数据应用层

主要是提供给数据产品和数据分析使用的数据,一般会存放在 ES、 PostgreSql、Redis 等系统中供线上系统使用,也可能会存在Hive或者Druid中供数据分析和数据挖掘使用。比如我们经常说的报表数据,一般就放在这里。

  • 定义:ADS 是数据仓库的最上层,为业务系统和应用提供服务接口和数据访问服务。
  • 功能:ADS 层通过接口和服务提供数据访问和数据服务,将数据仓库的数据集成到业务应用中,为业务决策和应用提供支持。
  • 特点:面向业务应用和最终用户,提供了数据的访问接口和服务,支持业务应用的快速开发和部署。

ADS 层通常位于数据仓库架构的顶层,用于支持高级数据分析、数据挖掘和机器学习等高级分析任务的一个重要组成部分。它包含了经过进一步加工和转换的数据,以支持更复杂和更深入的数据分析和洞察, ADS 层通常采用专门的数据存储系统或者数据库管理系统(DBMS)来存储数据,例如关系型数据库(如Oracle、SQL Server、MySQL等)、大数据存储系统(如Hadoop、Spark等)、云数据仓库(如AWS Redshift、Google BigQuery、Azure Synapse Analytics等)等。存储在 ADS 层的数据通常是高度规范化或者半规范化的,以支持复杂的数据分析和挖掘任务。存储在 ADS 层的数据通常会被用于生成各种类型的数据可视化和报告,以帮助用户直观地理解和解释数据分析的结果。这包括仪表板、报表、图表、图形等,为用户提供一个直观、易于理解的数据展示平台。

4、其它

4.1、DIM(Dimension): 维表层

如果维表过多,也可针对维表设计单独一层,维表层主要包含两部分数据:

  • 高基数维度数据:一般是用户资料表、商品资料表类似的资料表。数据量可能是千万级或者上亿级别。
  • 低基数维度数据:一般是配置表,比如枚举值对应的中文含义,或者日期维表。 数据量可能是个位数或者几千几万
  • 定义:DIM 是建立在DWD或DWS层之上的维度建模层。
  • 功能:DIM 层主要用于提供与业务相关的维度模型,包括事实表和维度表,用于支持多维分析(OLAP)和数据挖掘操作。
  • 特点:数据以维度为核心进行组织,支持复杂的多维分析和数据挖掘,适合决策支持系统和业务智能应用。

4.2、DM(Data Mart):数据集市层

基于DW的基础数据,整合汇总成一个个数据集市,数据集市通常是面向部门的某个主题域的报表数据。比如用户留存表、用户活跃表、商品销量表、商品营收表等等。

三、数据建仓基本流程

参考:如何确定数仓构建的目标与需求_智能数据建设与治理 Dataphin(Dataphin)-阿里云帮助中心

四、不同产品分层案例

1、阿里Dataphin(智能数据建设与治理)

资料地址:如何进行技术架构选型_智能数据建设与治理 Dataphin(Dataphin)-阿里云帮助中心什么是数仓分层,各层有哪些用途_智能数据建设与治理 Dataphin(Dataphin)-阿里云帮助中心

2、帆软FineDataLink(一站式数据集成平台) 

资料地址:ETL/ELT|数据融合|数据清洗-FineDataLink数据集成平台

3、电信天翼云DataWings(大数据管理平台)

资料地址: 

大数据管理平台 DataWings-天翼云
数仓分层-大数据管理平台 DataWings-用户指南-数据建模-数仓规划 - 天翼云

4、从奥软件(ETL数据集成套件)

资料地址:上海数据仓库建设_数据中心建设_主数据元数据管理_数仓建设公司-从奥软件(上海)有限公司

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

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

相关文章

智慧城管云平台源码,微服务vue+element+springboot+uniapp技术架构,数字化综合执法办案系统

智慧城管综合执法系统源码,包括PC端和移动端。微服务架构,vueelementspringbootuniapp技术框架开发。智慧城管建立了统一的城管执法案件数据库、法律法规库、档案信息库等,支持简易程序案件、一般程序案件、行政强制管理等执法业务的办理&…

VUE实现多个弹窗优先级变化实现思路

在开发复杂的单页应用(SPA)时,我们经常会遇到需要管理多个浮动窗口(或称“弹窗”、“面板”)的场景。一个核心的用户体验要求是:用户当前操作的窗口应该总是在最顶层。本文将结合代码示例,总结一…

集成算法和kmeans

一、集成算法(Ensemble Learning) 1. 基本概念 集成学习通过构建并结合多个学习器(基分类器/回归器)来完成学习任务,旨在通过集体决策提升模型性能,类似于“多个专家的综合判断优于单个专家”。 2. 结合策略…

图数据库性能与可扩展性评估

图数据库的性能与可扩展性直接决定业务场景(如实时风控、知识图谱分析)的落地效果,需结合业务场景特性(OLTP/OLAP)、技术指标(响应时间、吞吐量)和扩展能力(数据量/节点扩展&#xf…

树莓派常用的国内镜像源列表以及配置方法

1. 常用的镜像源使用下来发现清华源经常访问不到,阿里源比较好用。其他源还未测试。源名称URL清华源https://pypi.tuna.tsinghua.edu.cn/simple阿里云https://mirrors.aliyun.com/pypi/simple/中科大https://pypi.mirrors.ustc.edu.cn/simple/华为云https://repo.hu…

Transformer在文本、图像和点云数据中的应用——经典工作梳理

摘要 最近在整一些3D检测和分割的任务,接触了一下ptv3,在之前梳理的工作owlv2中用到了vit,去年年假阅读《多模态大模型:算法、应用与微调》(刘兆峰)时学习了Transformer网络架构及其在文本数据中的应用&am…

训练后数据集后部署PaddleOCR转trt流程

训练后的模型部署,首先要进行训练 0.训练流程见文章 PaddleOCR字符识别,训练自己的数据集全流程(环境、标注、训练、推理)-CSDN博客文章浏览阅读1.6k次,点赞53次,收藏23次。PaddleOCR是基于百度飞桨框架的…

《MLB美职棒》美国国球是橄榄球还是棒球·棒球5号位

USAs National Sport Showdown: MLB⚾️ vs NFL Ultimate Guide!从商业价值到文化基因,360解析美国体育王座之争!添加图片注释,不超过 140 字(可选)️ 历史定位 Historical Roots⚾️ MLB:The "Classi…

常见 Linux 网络命令梳理

在日常运维和排障工作中,网络相关命令是最常用的一类工具。无论是检查网络连通性,还是定位路由问题,又或是分析端口和服务占用,熟悉这些命令都能让我们更高效地解决问题。本文将从几个常见的维度来梳理 Linux 下的网络命令&#x…

Docker 搭建 Gitlab 实现自动部署Vue项目

1、配置要求: 硬件要求: CPU:双核或以上 内存:4GB或以上 软件要求:Centos6 或更高版本 2、gitlab镜像: # 中文版仓库 #docker pull twang2218/gitlab-ce-zh docker pull gitlab/gitlab-ce 3、gitlab部署目录 说明:为了跟其他容器区分,gitlab相关容…

如何解决机器翻译的“幻觉“问题(Hallucination)?

更多内容请见: 机器翻译修炼-专栏介绍和目录 文章目录 一、数据层面优化 二、模型架构改进 三、训练策略调整 四、评估与迭代 五、前沿方向与挑战 六、案例:WMT2023幻觉缓解方案 机器翻译中的“幻觉”(Hallucination)指模型生成与源文本语义无关、逻辑矛盾或事实错误的翻译…

基于STM32+NBIOT设计的宿舍安防控制系统_264

文章目录 1.1 项目介绍 【1】开发背景 【2】实现需求 【3】项目硬件模块组成 【4】设计意义 【5】国内外研究现状 【6】摘要 1.2 系统总体设计 【1】系统功能需求分析 【2】系统总体方案设计 【3】系统工作原理 1.3 系统框架图 1.4 系统功能总结 1.5 系统原理图 1.6 实物图 1.7…

SLAM文献之-Globally Consistent and Tightly Coupled 3D LiDAR Inertial Mapping

一、简介 该论《Globally Consistent and Tightly Coupled 3D LiDAR Inertial Mapping》是日本先进工业科学技术研究所(AIST)的Koide等人于2022年在IEEE国际机器人与自动化会议(ICRA)上发表的一篇论文。该研究提出了一种基于全局…

【STM32】HAL库中的实现(七):DMA(直接存储器访问)

DMA 是什么? DMA(Direct Memory Access)是 外设直接和内存之间数据搬运的机制,不需要 CPU 参与。 ✅ 举个例子:传统方式: ADC → CPU → RAM 使用 DMA:ADC → DMA → RAM(CPU 不需干…

【LeetCode热题100道笔记+动画】字母异位词分组

题目描述 给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 示例 1: 输入: strs = [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”] 输出: [[“bat”],[“nat”,“tan”],[“ate”,“eat”,“tea”]] 解释: 在 strs 中没有字符串可…

【Kafka】常见简单八股总结

为什么使用消息队列? 解耦: 我以我的一段开发经验举例: 【Kafka】登录日志处理的三次阶梯式优化实践:从同步写入到Kafka多分区批处理 我做过一个登录日志逻辑,就是在登录逻辑末尾,加一段写进数据库登录日志…

微信小程序连接到阿里云物联网平台

目录准备阶段阿里云配置下载mqtt.min.js文件小程序实现注意小程序配置服务器域名概述:介绍使用微信小程序连接到阿里云平台的快捷方法和完整过程。 阿里云平台建立设备,提供mqtt连接参数,小程序借助mqtt.min.js,也就是基于Github下…

2-3〔O҉S҉C҉P҉ ◈ 研记〕❘ 漏洞扫描▸AppScan(WEB扫描)

郑重声明: 本文所有安全知识与技术,仅用于探讨、研究及学习,严禁用于违反国家法律法规的非法活动。对于因不当使用相关内容造成的任何损失或法律责任,本人不承担任何责任。 如需转载,请注明出处且不得用于商业盈利。 …

LeetCode 刷题【47. 全排列 II】

47. 全排列 II 自己做 解1&#xff1a;检查重复 class Solution { public:void circle(vector<int> nums, vector<vector<int>> &res,int start){int len nums.size();if(start len - 1){ //到头了//检查重复bool is_exist fa…

Https之(一)TLS介绍及握手过程详解

文章目录简介 TLSTLS第一次握手1.Client HelloTLS第二次握手2.Server Hello3.Certificate4.Server Hello DoneTLS第三次握手5.Client Key Exchange6.Change Cipher Spec7.Encrypted Handshake MessageTLS第四次握手8.New Session Ticket9.Change Cipher Spec10.Encrypted Hands…