数据仓库-数仓分层建设

ops/2024/10/20 16:28:38/

数仓分层设计的作用

支持数据的重用

通过在数据仓库中创建可重用的数据模型,可以减少数据的重复处理,提高数据的处理效率。

优化性能

通过在数据仓库的不同层次上进行数据聚合和汇总,可以提高查询性能,尤其是在面对大量数据时。

提高数据的一致性

通过在数据仓库中间层(如ODS层,操作数据存储层)确保数据的一致性,可以减少数据冗余和错误。

提高数据的可维护性

通过分层,可以容易地对数据进行维护和更新。每一层的数据都具有特定的用途和结构,这使得数据的管理和维护变得更加简单。

支持数据的可拓展性

随着业务的发展,数据量和复杂性可能会增加。分层设计可以更容易地扩展数据仓库,以适应不断变化的需求。

提高数据的可理解性

分层可以帮助用户更好地理解数据的结构和用途。每一层的数据都有明确的定义和目的,这有助于用户快速找到他们需要的数据。

提高数据处理的灵活性

分层设计允许数据在不同的层次上进行处理和分析。例如,可以在数据仓库的底层进行数据的清洗和转换,而在上层进行更复杂的分析和报告。

支持数据的完全性和权限管理

分层设计可以更容易地实现数据的安全性和权限管理。例如,敏感数据可以在较低的层次上进行处理,而只将汇总数据暴露给最终用户。

支持数据的审计和合规性

分层设计可以帮助企业遵守数据审计和合规性要求,因为每一层的数据都可以被单独监控和审计。

数仓各层建设思路

数据引入层 ODS(Operational Data Store)

结构与源系统保持一致的增量或者全量数据。作为DW数据的一个数据准备区,同时又承担基础数据的记录历史变化,之所以保留原始数据和源系统数据保持一致,方便后期数据核对需要。

数据明细层 DWD(Data Warehouse Detail)

对ODS层数据进行清洗转化,以业务过程作为建模驱动,基于每个具体的业务过程特点,构建最细粒度的明细事实表。可以结合企业的数据使用特点,基于维度建模思想,将明细事实表的某些重要属性字段做适当冗余,也即宽表化处理,构建明细宽表。

选择业务过程,声明粒度,确认维度,确定事实,关联维度,数据清洗和转换,数据存储策略,性能优化,命名规范,数据模型选择

汇总数据层 DWS (Data Warehouse Summary)

基于指标需求,构建初步汇总事实表,一般是宽表。基于上层的应用和产品的指标需求,构建公共粒度的汇总指标表。以宽表化手段物理化模型,构建命名规范、口径一致的统计指标,为上层提供公共指标。

公共维度层 DIM(Dimension)

建立一致数据分析维表,可以降低数据计算口径不统一的风险,同时可以方便进行交叉探查。以维度作为建模驱动,基于每个维度的业务含义,通过添加维度属性、关联维度等定义计算逻辑,完成属性定义的过程并建立一致的数据分析维表。

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

整合汇总成分析某一个主题域的服务数据,面向应用逻辑的数据加工。该层主要存放数据产品个性化的统计指标数据,这一层的数据直接对接数据的消费者,是产品、运营等角色可以直接感知理解的一层,大多数这一层的表都可以直接在BI上通过图表的形式直接透出。

DWS层一定需要建设吗?

当我们在做数据需求时,会不会有这样的疑问,我直接能从DWD层很方便的取出想要的数据,为什么还要多此一举建立DWS层的汇总表呢?那是不是意味着可以不用建立DWS层的表呢。答案是可以的。但是这有一个前提,就是业务场景不复杂。从短期来看可以快速满足数据需求的开发,但是长期来看,会存在如下的问题:

  • 对于复杂的业务场景而言,会出现很多跨域、跨事实的交叉探查,如果没有沉淀出DWS层的指标进行统一口径的收口,那么相同的指标会出现不同的口径和命名,其后果就是取数变得越来越不方便,而且容易造成业务怀疑数据是否正确的尴尬局面。
  • 公共指标没有统一计算,当每次需要相同的指标时,则需要重新计算一遍取数逻辑,不仅效率不高(需要关联表,指标计算),而且造成计算资源浪费。

还有一种情况我认为可以延迟DWS层的建设,当对源系统数据了解不足或需求变动频繁时。因为项目初期需求频繁变更时,会产生较高DWS层维护成本。所以等对数据或需求有整体把控时,陆续沉淀DWS层模型也不失为一种方案。


http://www.ppmy.cn/ops/127027.html

相关文章

TiDB替换Starrocks:业务综合宽表迁移的性能评估与降本增效决策

作者: 我是人间不清醒 原文来源: https://tidb.net/blog/6638f594 1、 场景 业务综合宽表是报表生成、大屏幕展示和数据计算处理的核心数据结构。目前,这些宽表存储在Starrocks系统中,但该系统存在显著的性能瓶颈。例如&#…

儿童饰品上架亚马逊美国站CPC认证的重要性

儿童饰品上架亚马逊美国站时,CPC(Childrens Product Certificate,儿童产品证书)认证的重要性不容忽视。以下是CPC认证在此过程中的几个关键重要性: 1. 法律合规性 在美国,所有面向12岁及以下儿童销售的产…

系统架构设计师教程 第9章 19.6 大数据架构设计案例分析 笔记

19.6 大数据架构设计案例分析 19.6.1 Lambda架构在某网奥运中的大数据应用 系统架构 基于Lambda架构,由数据集成层、数据存储层、数据计算层和数据应用层构成 数据集成层分为离线数据集成和实时数据集成。 实时数据集成集群采用Nginx和 Flume服务器对实时流数据…

【verilog】3_8-4_16数选器

文章目录 前言一、实验原理二、实验过程三、实验结果参考文献 前言 进行 实验 一、实验原理 二、实验过程 三、实验结果 代码 timescale 1ns/1ns module decoder_38_tb ; reg a; reg b; reg c; wire [7:0]data;decoder_38 u0 (.a(a),.b(b),.c(c),.data(data) ); init…

效果不错的论文介绍:Im2Flow2Act:-跨领域机器人操控技术

Im2Flow2Act: 跨领域机器人操控技术 简介 今天介绍一个比较惊艳的论文,Im2Flow2Act,可以预测应该怎么移动图象中的物体预测移动方法完成需要执行的动作任务。 Im2Flow2Act 是一个基于学习的机器人操控框架,旨在通过多种数据源为机器人提供操…

LabVIEW提高开发效率技巧----用户权限控制

在LabVIEW开发中,用户权限控制是一个重要的设计模块,尤其在多用户系统中,它可以确保数据安全并控制不同用户的操作权限。为了实现用户权限控制,可以通过角色与权限管理模块来进行设计和实施。以下将从多个角度详细说明如何在LabVI…

【目标检测论文解读复现NO.39】基于改进 YOLOv8 的轻量级复杂环境苹果叶片病害检测方法

前言 此前出了目标改进算法专栏,但是对于应用于什么场景,需要什么改进方法对应与自己的应用场景有效果,并且多少改进点能发什么水平的文章,为解决大家的困惑,此系列文章旨在给大家解读最新目标检测算法论文&#xff0c…

大数据-167 ELK Elasticsearch 详细介绍 特点 分片 查询

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…