数仓分层

数据仓库分层

来源

https://www.bilibili.com/video/BV1t54y1r7Mc?p=79

参考文章:https://blog.csdn.net/rlnLo2pNEfx9c/article/details/122426579

数仓建模:https://blog.csdn.net/rlnLo2pNEfx9c/article/details/122402191

离线数仓

所谓数仓建模:就是应该建哪些表,表与表之间的关系是怎样的,表里都应该有哪些字段

所谓分层,就是每一层放不同的表,比如ODS,DWD分别方不同的表

ODS(Operation Data Store)原始数据层

  • ODS层的数据来源

    • 业务系统产生的原始数据,比如下单以后产生的订单,用户浏览页面形成的行为日志,爬虫等一系列数据源的数据

    • 开发中几乎都不会直接从ODS层拿数据,因为这里有隐私数据;

ETL(Extract-Transform-Load)

将数据从来源端经过抽取(extract)转换(transform)加载(load)至目的端的过程。是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程。

对原有分散的数据库数据抽取、清理的基础上经过系统加工、汇总和整理得到的。必须消除源数据中的不一致性

目的是将企业中的分散、凌乱、标准不统一的数据整合到一起,为企业的决策提供分析依据。

  • 主要的数据处理是:去空值、去极值(比方取款300亿)、去业务极值、部分数据脱敏、维度退化等即对业务数据传过来的表进行维度退化和降维(如:商品一级二级、省市县、年月日等)。

DWD(Data WareHouse detail)明细数据层

所谓这层的数据清洗(比如去除空值,去除脏数数据[手机号码、身份证号码长度不合法]以及数据脱敏)

维度退化:百度数仓建模

说白了这一层就是再对ODS层的数据再次进行整理,因为ODS层的数据可能会比较乱,包括日志的解析(日志在ODS是一个字符串)

这层会做维度建模,事实表(dwd_fact)、维度表(dwd_dim)两种

  • DWD层的数据来源

    • ODS层的数据到DWD层,需要对数据进行清洗做ETL操作(比如去除空值,去除脏数数据[手机号码、身份证号码长度不合法]以及数据脱敏)

    • 维度退化:百度数仓建模

  • DWD层会做维度建模,事实表(dwd_fact)、维度表(dwd_dim)两种

  • 小结

    • 这一层就是再对ODS层的数据再次进行整理,因为ODS层的数据可能会比较乱,包括日志的解析(日志在ODS是一个字符串)

DWS(Data WareHouse Service)数据服务层

  • DWS会对以DWD的数据为基础,根据不同的指标进行轻度汇总,比如今天有多少活跃用户。。

DWT(Data WareHouse Topic)数据主题层

主题,比如用户,地区,说白了就是对象

  • 这层是以DWS层的数据为基础,根据不同的主题进行汇总

  • 按照一定的主题域进行组织主题是一个抽象的概念,是指用户使用数据仓库进行决策时所关心的重点方面,一个主题通常与多个操作型信息系统相关。每一个主题基本对应一个宏观的分析领域。

    比如保险公司的数据,有养老保险、医疗保险、汽车保险;这个保险就是一个主题

  • 比如:银行的数据仓库的主题:客户

ADS(Application Data store)数据应用层

为各种统计报表提供数据

azkaban

使用azkaban去调度每一层?百度下

数据仓库为什么要分层

  • 把复杂问题简单化

    • 将复杂的任务分解层多层来完成,每一层只处理简单的任务,方便定位问题

  • 减少重复开发

    • 规范数据分层,通过中间层数据,能够减少极大的重复计算,增加一次计算结果的复用性

  • 隔离原始数据

    • 不论是数据的异常还是数据的敏感性,使真实数据与统计数据解耦开

posted @ 2022-05-10 09:50  无敌大牛牛  阅读(225)  评论(0编辑  收藏  举报