离线数仓—DWS层设计分析
前言
下面以一个例子说明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&#