Featured image of post 初识数仓分层

初识数仓分层

最近在给公司的大数据项目写操作手册,整理学习一下数仓分层的专有名词

前言

最近在给公司的大数据项目写操作手册,又不得不涉及到数仓分层的一些专有名词和概念。这次专门整理学习一下,加深理解记忆。

为什么要分层

  • 清晰数据结构: 每一个数据分层都有它的作用域,这样我们在使用表的时候能更方便地定位和理解。
  • 数据血缘追踪: 我们最终给业务呈现的是一张能直接使用的业务表,但它的来源有很多,如果一张来源表出了问题,能够快速准确地定位到问题,并清楚它的危害范围。
  • 复杂问题简单化: 将一个复杂的任务分解成多个步骤来完成,每一层只处理单一的步骤,比较简单和容易理解。而且便于维护数据的准确性,当数据出现问题后,可以不用修复所有数据,可以从有问题的步骤开始修复。
  • 提高数据的复用性: 规范数据分层,通过的中间层数据,能够极大减少重复计算,增加一次计算结果的复用性。
  • 隔离原始数据: 不论是数据的异常还是数据的敏感性,使真实数据和统计数据解耦开。

数仓分层结构

  1. ODS 层 (Operational Data Store) 原始数据层
    ODS 层存放业务系统获取的最原始的数据,是其他上层数据的源数据。
  2. DWD 层 (Data Warehouse Detail) 明细数据层
    对 ODS 层的数据进行清洗转换(去除空值,脏数据和异常数据),数据脱敏(对一些个人信息进行处理,比如电话号码和账户密码)等操作。该层的数据易用性较高,是可以直接给上层使用的。
  3. DWS 层 (Data Warehouse Service) 服务数据层
    把 DWD 层的数据进行轻度汇总,一般聚集到以用户当日,商品当日的粒度。比如一个商品当日的浏览量,收藏数,评论数等等。
  4. DWT 层 (Data Warehouse Topic) 主题数据层
    把 DWS 层的数据按主题进行汇总,比如用户一个月的活跃天数,某个商品一个月的成交金额等等。
  5. ADS 层 (Application Data Store) 应用数据层
    面向实际的数据需求,以 DWD 层、DWS 层或 DWT 层的数据为基础,组成的各种统计报表。

愚见

由于是第一次接触大数据方面的知识,脑补了一个例子来帮助理解记忆,如果存在不准确的地方,还请见谅,欢迎指正。

以网易云音乐举例:

  • 我们每日在使用网易云的时候,都会产生很多数据。比如说你今天听了哪些歌,你喜欢的歌,你创建的歌单,你收藏了哪些歌单等等。这时,数据还保存在网易云的数据库里,也就是业务端。
  • 晚上 12 点,网抑云时间到了。生而为人…… 噢不是,新的一天了。意味着昨天的数据记录不会再更改了,你今天听的歌不会算到昨日听歌总时长里。在凌晨这种服务器压力比较小的时间段里,他们会把这一天的数据从业务端采集到 ODS 层。
  • 这里的数据还不具备可用性,在经过清洗转换等等操作之后,数据来到了 DWD 层。
  • DWD 层的数据经过轻度汇总,以日为粒度来到 DWS 层,可以通过一张表就查询出某个用户当天听歌的总时长,最晚听歌时间等等,而不用去庞大的数据库中费力地搜索。
  • DWT 层在 DWS 层的基础上,汇总出一个月的数据。当然也可以根据业务需求,创建其他的主题。
  • 最后,由 ADS 层进行报表统计或展示。
  • 到了年末,你的网易云就会推送一份年度使用报告,告诉你今年听了 4213 首歌,听歌的总时长达到 269 小时,以及最常听的 top10,在 9 月 31 日这天,你把《好心分手》循环了 12 遍。

参考资料

数仓分层
数据仓库系列(三)数仓分层的意义价值及如何设计数据分层
电商数仓 -(数仓分层概念 + 数仓理论)

使用 Hugo 构建 主题 StackJimmy 设计
发表了 33 篇文章・ 总计 66.74 k 字
本站总访问量 · 总访客数
本博客已稳定运行 🧡