数仓(一)数据分层

数据分层

数据分层在建设数据仓库中是一个十分重要的环节,良好的数据分层能够使得数据仓库更容易理解和使用,提升数据处理速度,并且能够降低存储压力和企业成本。在数据仓库建设中,数据分层主要分为数据运营层、数据仓库层、数据应用层。
在这里插入图片描述

好处

数据分层的好处:

  • 清晰数据结构:让每个数据层都有自己的作用和职责,在使用和维护的时候能够更方便和理解
  • 复杂问题简化:将一个复杂的任务拆解成多个步骤来分步骤完成,每个层只解决特定的问题
  • 统一数据口径:通过数据分层,提供统一的数据出口,统一输出口径
  • 减少重复开发:规范数据分层,开发通用的中间层,可以极大地减少重复计算的工作

数据运营层

数据运营层ODS(Operation Data Store) -也就是最接近数据源的一层,直接对接的数据源(如:业务库、埋点日志、消息队列等)。ODS数数仓的最底层。

该层是存储数量最大的、未经过太多处理的、最原数据始的一层。该层还起到一个数据备份的作用,比如特殊的行业,一般ODS层需要存储一年甚至多年,不过普通公司一般存储三个月到六个月。

一般情况下,在数据进入ODS层的时候,都会对数据做一些最基本的处理。例如:

  • 数据来源分区
  • 数据按照时间分区存储,一般按照天分区,也有一些公司按照年、月、日三级分区存储
  • 进行最基本的数据处理,如格式错误的丢弃、过滤掉关键信息丢失的数据。

注意:一般公司也会把以上的基本处理放到DWM层来进行。

数据仓库层

  • DWD(Data WareHouse Detail) -数据细节层。该层与ODS层保持相同的数据颗粒度,区别在于,改成主要是对ODS层进行数据的清洗和规范化操作,比如说去除空数据、脏数据等。该层由于对数据处理的粒度比较细,一般情况下都是编写代码实现的。很多时候存储的是事实表、维度表和实体表。
  • DWM(Data WareHouse Middle) -数据中间层。该层主要是对DWD层做一些轻微的聚合操作,生成一些指标列的聚合结果表。
  • DWS(Data WareHouse Service) -数据服务层。该层是在DWM层基础之上,整合汇总成一个主题域的数据服务层,一般是宽表(具有多个列的表),该层为后续的业务查询、OLAP分析和数据分发提供支撑。

数据应用层

数据应用层ADS(Application Data Service) -该层主要为数据产品和数据分析提供数据支撑。一般会存放在ES、MySQL、Redis等数据库系统中,为应用系统提供数据,也可以存放在hive或者Druid中,供数据分析与数据挖掘使用,比如数据报表就是存在该层中。

事实表(Fact Table)

事实表是指存储有事实记录的表,比如系统日志、销售记录等。事实表的记录在不断地增长,比如电商的商品订单表,就是类似的情况,所以事实表的体积通常是远大于其他表。

维表层(Dimension)

维度表(Dimension Table)或维表,有时也称查找表(Lookup Table),是与事实表相对应的一种表;它保存了维度的属性值,可以跟事实表做关联,相当于将事实表上经常重复出现的属性抽取、规范出来用一张表进行管理。维度表主要是包含两个部分:

  • 高基数维度数据:一般是用户资料表、商品资料表类似的资料表,数据量可能是千万级或者上亿级别
  • 低基数维度数据:一般是配置表,比如枚举字段对应的中文含义,或者日期维表等;数据量可能就是个位数或者几千几万。

常见的维度表有:日期表(存储与日期对应的周、月、季度等的属性)、地点表(包含国家、省/州、城市等属性)等。
在这里插入图片描述

表命名规则

聚合粒度以及加工频率字段说明

字段中文字段字段全称说明
dday每天
wweek每周
mmonth每月
yyear每年
小时hhour每小时
半小时hhhalfhour每半小时

抽取方式字段命名规范

抽取方式字段字段全称
全量ffull
增量iincremental
拉链cchain

数据表名命名规范

模型层次表命名规范实例表明实例表说明
odsods_业态简称+系统入仓序号_源表名_加工频率+抽取方式ods_sg01_bill_dfods为模型层次、sg为业态、01为业态下的系统入仓序号、bill代表数据源表名、d代表加工频率、f代表全量抽取方式
dwddwd_主题域_可选的主题_事实表相关描述_加工频率+抽取方式dwd_par_trader_detail_dfdwd为模型层次、par为主题域名、trader为商户主题名、detail为表描述、d代表加工频率、f代表全量抽取方式
dwmdim_通用维度相关描述_加工频率+抽取方式dwm_brand_dfdwm为模型层次、brand为通用维度表描述、d代表加工频率、f代表全量抽取方式
dwsdws_主题域_可选的主题相关描述_聚合粒度+抽取方式dws_par_trader_count_dfdws为模型层次、par为主题域名、trader为商户主题名、count为表的描述、d代表加工聚合粒度、f代表全量抽取方式
adsads_主题域_相关描述_加工频率+抽取方式ads_trader_count_dfads为模型层次、trader_count代表相关描述、d代表加工频率、f代表全量抽取方式

表分区字段说明

分区类型分区字段分区数据格式备注
按天分区stat_dateYYYYMMDD
按周分区stat_week自定义转换当天所在月或者直接使用当周最后一天都可
按月分区stat_monthYYYYMM
按年分区stat_yearYYYY
按小时分区stat_dateYYYYMMDDHH
按半小时分区stat_dateYYYYMMDDHHMM

任务命名规范

在这里插入图片描述

大厂分层架构

爱奇艺

img

SaaS收银运营数仓分层架构

img

img

这里作者的案例是美团站点分享的SaaS收银运营数仓建设一文中的架构,这个分层架构大概是五层,虽然从名称上看着和通用分层架构差异比较大,实际具体功能上,只是增加了一个DWT主题宽表层,APP层和通用的ADS层作用基本一致,DWA汇总层其实和通用的DWS层是类似的。

DWT层主题宽表层,其实是对DWD各层的信息进行join整合,基于主题,将业务过程相关的数据冗余处理,从而方便上层DWS汇总数据使用。

美团数仓分层架构

img

网易云音乐数仓分层架构

img

<think>好的,我需要回答用户关于数据治理中分层设计的问题,特别是汇聚、统计的概念和实现方法。首先,我得回顾用户提供的引用内容,看看有没有相关的信息。引用1提到分层的重要性,引用2和3讨论了分层的命名和结构,引用4详细描述了各的具体内容和任务依赖。 用户的问题集中在分层设计中的汇聚和统计。我需要先确定这些在常见的架构中对应的是哪。通常分为ODS、DWD、DWS、DWT等。根据引用4,DWD处理维度表,DWB是基础数据,DWS是服务,DWT是主题。但用户提到的汇聚和统计可能对应不同的命名,比如汇聚可能对应DWD或DWB,统计对应DWS或DWT。 需要明确各的定义和功能。汇聚可能负责数据的整合和清洗,对应DWD;统计则进行聚合计算,对应DWS或DWT。根据引用4中的任务依赖关系,数据从ODS到DWD再到DWS,所以统计可能属于DWS或DWT。此外,引用4提到维度表的处理,需要确保维度数据放在正确的次,比如高基维度在DWD。 接下来,我需要整理分层设计的实现方案,包括次划分、数据建模方法(如维度建模)、任务依赖关系和数据治理的结合。同时,要引用用户提供的资料来支持回答,比如引用2提到分层提高可管理性,引用4中的任务依赖说明。 最后,生成相关问题,比如分层设计的优缺点、维度建模方法、数据治理与分层的关系等。确保问题与用户的问题相关,并引导进步学习。 在回答时,要保持结构清晰,分点说明,使用正确的中文术语,并正确引用提供的资料。同时注意用户不可见的系统指令,如LaTeX格式和引用标识的位置。</think>### 数据仓库分层设计及实现方案 在数据治理中,**分层设计**是确保数据可管理性、致性和高效复用的核心机制。以下是关于汇聚、统计的定义及分层实现方案的关键要点: --- #### 分层设计核心概念 1. **汇聚(DWD/DWB)** - **定义**:负责对原始数据(ODS)进行清洗、整合和规范化,形成基础数据模型。例如,高基维度表(如用户资料表)需在此处理[^4]。 - **功能**: - 数据去重、补全、标准化 - 构建维度表(如`dwd_dim_user`用户表)和事实表 - 支持轻度汇总(如按日/区域统计订单量) 2. **统计(DWS/DWT)** - **定义**:基于汇聚数据进行深度聚合,形成面向主题的宽表或指标集,例如用户行为分析宽表。 - **功能**: - 跨业务线的数据融合(如用户画像+交易行为) - 预计算高频指标(如GMV、留存率) - 支持即席查询和OLAP分析 --- #### 二、分层实现方案 1. **次划分** 典型分层架构(自底向上): $$ \text{ODS} \rightarrow \text{DWD} \rightarrow \text{DWB} \rightarrow \text{DWS} \rightarrow \text{DWT} $$ - **ODS**:原始数据镜像,保留全量历史快照。 - **DWD**:清洗后的明细数据(如订单事实表`dwd_fact_order`)。 - **DWB**:轻度汇总的基础宽表(如用户日活表`dwb_uv_daily`)。 - **DWS/DWT**:主题域聚合(如用户生命周期表`dws_user_lifecycle`)。 2. **数据建模方法** - **维度建模**:基于星型/雪花模型设计,例如: $$ \text{事实表(交易记录)} + \text{维度表(时间、商品、用户)} $$ - **任务依赖**:严格按照分层顺序执行,避免跨依赖。例如,DWS任务仅允许依赖DWB/DWD数据。 3. **数据治理结合** - **元数据管理**:记录每数据的血缘关系与业务含义[^1]。 - **质量监控**:在汇聚定义数据校验规则(如非空约束),在统计验证指标致性[^2]。 --- #### 三、典型分层组合案例 | 级 | 命名示例 | 数据示例 | |------|----------------|------------------------------| | ODS | `ods_order` | 原始订单日志(未清洗) | | DWD | `dwd_fact_order` | 规范化订单表(含用户ID关联) | | DWS | `dws_sales_daily` | 每日销售额统计宽表 | ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值