5.1 离线数仓—DWS层设计分析

本文详细分析了离线数据仓库DWS层的设计,包括设计要点、存储格式和命名规范,并通过实例展示了DWS层的构建过程,如派生指标表格、汇总表设计及数据装载的优化思路,探讨了避免重复计算和粒度调整的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前言

下面以一个例子说明DWS层的分析和设计

一、DWS层设计分析

1.设计要点

1.1 设计依据

DWS层的表要依赖于前面的指标体系。

1.2 存储格式

DWS层的数据存储格式为orc列式存储+snappy压缩。

1.3 命名规范

DWS层表名的命名规范为:dws_数据域_统计粒度_业务过程_统计周期(1d/nd/td)
注:1d表示最近1日,nd表示最近n日,td表示历史至今

二、DWS层举例分析

1.思维导图构建

以最近1、7、30日各品牌订单数和最近1、7、30日各品牌下单人数为例,画出思维导图如下:
在这里插入图片描述

2.构建派生指标表格

根据思维导图,创建派生指标表格如下:
在这里插入图片描述

3.汇总表的确定

相同的业务过程、统计周期和统计粒度,它们可以放到一张表中,如下图相同颜色的即这三部分相同,但是统计周期是1、7、30日可以分为1d和nd两个部分,所以共有8张表。
在这里插入图片描述

4.最近1日汇总表的设计

对3中前两行最近1日汇总表进行设计。
首先,确定表名:dws_trade_tm_order_1d
其次,字段的确定:
1)初始想法品牌id下单次数下单人数,这三个字段。不方便的地方:如果要进行展示不能只把品牌id展示出来,所以最好要包含一些维度属性字段
2)改进想法:除了品牌id下单次数下单人数这三个字段,加一些别的派生指标,为了以后能够统计更多的指标,例如下单件数order_num、下单金额order_total_amount等,如下图:
在这里插入图片描述

5.最近1日汇总表数据装载

select
  tm_id,
  tm_name,
  count(*),
  count(distince(user_id)),
  sum(sku_num),
  sum(split_total_amount)
from
(
  select
    sku_id,
    user_id,
    sku_num,
    split_total_amount
  from dwd_trade_order_detail_inc
  where dt='2020-06-14&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值