数仓(一)数据分层

数据分层

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

好处

数据分层的好处:

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

数据运营层

数据运营层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

  • 3
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数仓分层中,其中一个重要的层级是stage层。在数仓中,stage层是指数据的初始加载和清洗阶段,也被称为原始数据层。\[1\]在传统金融/保险行业中,stage层通常包括ods层(操作数据存储层)、pdm层(物理数据模型层)和dm层(数据集市层)。\[1\]而在互联网金融/电商行业中,stage层通常包括odl层(在线数据存储层)、bdl层(业务数据湖层)、idl层(实时数据湖层)和adl层(分析数据湖层)。\[1\] 另外,数仓的应用层(ADS)也是一个重要的层级。应用层是各个业务方或部门基于DWD和DWS建立的数据集市,主要包含部门或业务方关心的明细层和汇总层的数据。\[2\]应用层的数据来源于DW层,用于支持各个业务方的数据分析和决策。 总结来说,数仓分层中,stage层是数据的初始加载和清洗阶段,应用层是各个业务方或部门基于DWD和DWS建立的数据集市。这些层级在不同行业和场景中可能有所差异,但整体的套路和目的是相似的。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* [数仓分层模型架构分享(2)](https://blog.csdn.net/BeiisBei/article/details/106285485)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [万字详解数仓分层设计架构 ODS-DWD-DWS-ADS](https://blog.csdn.net/uxiAD7442KMy1X86DtM3/article/details/127711444)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值