数仓分层设计

目录

一、分层目的

二、分层架构概览

三、详细分层设计

1.ODS (opreational data store)

2.DWD(data warehouse detail) 

3.DIM(dimension) 

4.DWS(data warehouse service) 

5.ADS(Application Data Service)


一、分层目的

数仓分层的目的是:逐层解耦,减少重复计算,降低烟囱式开发

越到底层,越接近业务发生的记录,越到顶层,越接近业务目标。

二、分层架构概览

 

三、详细分层设计

1.ODS (opreational data store)

  • 存放未经过处理的原始数据至数据仓库系统,结构上与源系统保持一致,是数据仓库的数据准备区。
  • 作用
    • ①保持数据原貌不做任何修改,起到备份数据的作用
    • ②数据采用压缩,减少磁盘存储空间
    • ③创建分区表,防止后续的全表扫描

2.DWD(data warehouse detail) 

DWD层是以业务过程为驱动,基于每个具体的业务过程特点,构建最细粒度的明细层事实表。

可以结合企业的数据使用特点,将明细事实表的某些重要维度属性字段做适当冗余,即宽表化处理。同时,为了提高数据明细层的易用性,该层会采用一些维度退化手法,将维度退化至事实表中,减少事实表和维表的关联,在该层也会做一部分的数据聚合,将相同主题的数据汇集到一张表中,提高数据的可用性。

维度建模一般按照以下5个步骤: 确定数据域→选择业务过程→声明粒度→确认维度→确定事实

(1).确定数据域(Domain)

数据域划分就是对数据分类。而基于不同的目的,有不同的分类标准。

设计时注意点:

1.不重不漏,确保每个表都在一个域里,且只在一个域里(精确定位)
2.每个域下都可以根据需要再分子域,不限定层级(最自由方便)
3.如果分子域就不能放表,表只放在最底层的域中(树状目录管理时更方便)
4.最好保证每个域下的子域数量或表数量在20个左右(太多了不方便记忆管理,太少了没必要划分)
5.不好划分的可归类为【其它】(减少域层级数量有理由理解记忆)
6.数据团队分域可以作为分工的标准(数据不重复、分工明确、界限清晰)
7.数据团队分域后,可以决定域内表的中间命名(看到表名时可以理解更多信息)

示例:

交易域

(2).选择业务过程

业务过程是一个不可拆分的行为事件

示例:

下单、支付、发货、确认收货 

(3).声明粒度 

声明粒度意味着精确定义事实表中的一行数据表示什么,应该尽可能选择最小粒度,以此来应各种各样的需求。

示例:

订单当中的每个商品项作为下单事实表中的一行,粒度为每次。

(4).确定维度 

维度就是看事情的角度,5W1H(when、where、who、what、why、how)

示例:

时间维度、地区维度、用户维度、商品维度

(5).确定事实

事实即业务中的度量值

示例:

订单金额、下单次数

dwd层主要做的事

1.统一标准

 字段格式命名统一,统一时间格式,单位统一

2.数据清洗

清洗掉脏数据,去除空值、过滤核心字段无意义的数据

3.维度退化

对业务数据传过来的表进行维度退化和降维。(商品一级二级三级、省市县、年月日)

3.DIM(dimension) 

基于维度建模理念思想,建立整个企业的一致性维度。降低数据计算口径和算法不统一风险。

示例:

1.维度退化(雪花型退化成星型)

地区表和省份表退化为地区维度表,商品表、品类表、spu表、商品三级分类、商品二级分类、商品一级分类表退化为商品维度表,活动信息表和活动规则表退化为活动维度表。

2.缓慢变化维

直接覆盖原值、新增维度列(旧列、新列)、新增维度行拉链(2个时间戳 开始时间 结束时间) 

4.DWS(data warehouse service) 

DWS层会在DWD层的数据基础上,对数据做横向的连接,纵向轻度的聚合操作,生成一系列的中间表,提升公共指标的复用性,减少重复加工。 

示例:

用户订单汇总表

用户id,商品id,当日订单数,当日退单数

5.ADS(Application Data Service)

存放数据产品个性化的统计指标数据。根据CDM与ODS层加工生成。

示例:

用户运营表

用户id,浏览次数,登陆次数,购买次数,退款次数,确认收货次数

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、项目简介 本项目教程以国内电商巨头实际业务应用场景为依托,同时以阿里云ECS服务器为技术支持,紧跟大数据主流场景,对接企业实际需求,对电商数仓的常见实战指标进行了详尽讲解,让你迅速成长,获取最前沿的技术经验。 二、项目架构 版本框架:Flume、DateHub、DataWorks、MaxCompute、MySql以及QuickBI等; Flume:大数据领域被广泛运用的日志采集框架; DateHub:类似于传统大数据解决方案中Kafka的角色,提供了一个数据队列功能。对于离线计算,DataHub除了供了一个缓冲的队列作用。同时由于DataHub提供了各种与其他阿里云上下游产品的对接功能,所以DataHub又扮演了一个数据的分发枢纽工作; 据上传和下载通道,提供SQL及MapReduce等多种计算分析服务,同时还提供完善的安全解决方案; DataWorks:是基于MaxCompute计算引擎,从工作室、车间到工具集都齐备的一站式大数据工厂,它能帮助你快速完成数据集成、开发、治理、服务、质量、安全等全套数据研发工作; QuickBI & DataV:专为云上用户量身打造的新一代智能BI服务平台。 三、项目场景 数仓项目广泛应用于大数据领域,该项目技术可以高度适配电商、金融、医疗、在线教育、传媒、电信、交通等各领域; 四、项目特色 本课程结合国内多家企业实际项目经验。从集群规模的确定到框架版本选型以及服务器选型,手把手教你从零开始搭建基于阿里云服务器的大数据集群。采用阿里云ECS服务器作为数据平台,搭建高可用的、高可靠的Flume数据采集通道,运用阿里云DateHub构建中间缓冲队列并担任数据分发枢纽将数据推送至阿里自主研发的DataWorks对数据进行分层处理,采用MaxCompute作为处理海量数据的方案,将计算结果保存至MySQL并结合阿里的QuickBI工作做最终数据展示。
数仓分层中,其中一个重要的层级是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、付费专栏及课程。

余额充值