数据仓库是一个集中式存储和管理结构化数据的平台,而数仓分层则是根据数据的来源、功能和应用,将其分为不同的逻辑层级。这些层级通常包括:数据接入层、数据仓库层、数据集市层和数据应用层。每一层都有其特定的功能和作用。
数据接入层(ODS层),所有进入数据的数据首先会接入ODS层。一般来说ODS层的数据是多复杂多样的。从数据粒度上看ODS层是粒度最细的数据层。
数据仓库层(DWD层),数据明细层的数据应是经过ODS清洗,转后后的一致的、准确的、干净的数据。DWD层数据粒度通常和ODS的粒度目同,不同的是该层的数据质量更高,字段更全面等。
数据集市层(DWS层),面向主题来组织数据的,通常是星形或我雪花结构的数据。从数据粒度来说,这层的数据是轻度汇总级的数据,已经不存在明细数据了。
数据应用层(ADS层),它是完全为了满足具体的分析需求而构建的数据,也是星形或雪花结构的数据。从数据粒度来说是高度汇总的数据。其汇总的目标主要是按照应用需求进行的。
为什么要进行数仓分层,数仓分层能带来哪些便捷?
提高数据质量:通过分层,我们可以对数据进行清洗、验证和整合,确保每个层级的数据都是准确和可靠的;
提高效率:分层结构使得数据处理变得更为高效。数据从底层到顶层,逐渐被加工和提炼,每一步都为最终的数据应用做好准备;
规范管理:分层结构为数据的管理提供了清晰的框架,使得数据的存储、查询和使用都更加规范;
支持多种应用:通过分层,我们可以为不同的数据应用提供定制化的数据结构,满足各种业务需求。
数仓层内部的划分不是为了分层而分层,分层是为了解决数据任务及工作流的组织、数据的流向、读写权限的控制、不同需求的满足等各类问题。对于上面分层罗列,是种通用的建设分层逻辑。可能你也看到有四层的,有六层的,甚至更多的,比如DWD,DWB,DIM,DWM,MID.......虽然每层你知道什么意思,但是有时候不是很清楚这些层之间的分割线是什么,出现复杂的业务反而让我们无法下手手。所以各个业务不同,需要合适自己的就好。