离线数仓 (八) --------- 数仓分层


一、为什么要分层

分层说明:

ODS 层:原始数据层,存放原始数据,直接加载原始日志、数据,数据保持原貌不做处理。

DWD 层:对 ODS 层数据进行清洗 (去除空值,脏数据,超过极限范围的数据)、脱敏等。保存业务事实明细,一行信息代表一次业务行为,例如一次下单。

DIM 层:维度层,保存维度数据,主要是对业务事实的描述信息,例如何人,何时,何地等。

DWS 层:以 DWD 为基础,按天进行轻度汇总。一行信息代表一个主题对象一天的汇总行为,例如一个用户一天下单次数。

DWT 层 : 以 DWS 为基础,对数据进行累积汇总。一行信息代表一个主题对象的累积行为,例如一个用户从注册那天开始至今一共下了多少次单。

ADS 层 : 为各种统计报表提供数据。

在这里插入图片描述

仓库为什么要分层?

A、把复杂问题简单化:将复杂的任务分解成多层来完成,每一层只处理简单的任务,方使定位问题。

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

C、隔离原始数据:不论是数据的异常还是数据的敏感性,使真实数据与统计数据解耦开。

二、数据集市和数据仓库区别

数据集市 (Data Market),现在市面上的公司和书籍都对数据集市有不同的概念。

数据集市则是一种微型的数据仓库,它通常有更少的数据,更少的主题区域,以及更少的历史数据,因此是部门级的,一般只能为某个局部范围内的管理人员服务。

数据仓库是企业级的,能为整个企业各个部门的运行提供决策支持手段。

在这里插入图片描述

三、数仓命名规范

1. 表命名

  • ODS 层命名为 ods_表名
  • DIM 层命名为 dim_表名
  • DWD 层命名为 dwd_表名
  • DWS 层命名为 dws_表名
  • DWT 层命名为 dwt_表名
  • ADS 层命名为 ads_表名
  • 临时表命名为 tmp_表名

2. 脚本命名

  • 数据源_to_目标_db/log.sh
  • 用户行为脚本以 log 为后缀,业务数据脚本以 db 为后缀

3. 表字段类型

  • 数量类型为 bigint
  • 金额类型为 decimal(16, 2),表示:16位有效数字,其中小数部分2位
  • 字符串(名字,描述信息等)类型为 string
  • 主键外键类型为 string
  • 时间戳类型为 bigint
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

在森林中麋了鹿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值