数据集市搭建

数据集市

深刻理解数据集市概念

数据集市,存在于数仓之中,可以理解为是数仓的一个分层,市面上数仓分层繁多,大致为 ODS层镜像层,DWD明细层,DWS宽表层,DIM维度层,ADS指标体系层,APP应用层,DM数据集市层。
除去ODS层,APP、ADS层,中间的DWD、DWS统称为中间层,在数仓中,有个规定,就是中间层不可跨域,而DM层,是凌驾于ADS层,更贴近应用的层级,而这一层,是可以跨域的,并且可以理解成,是可跨域的宽表层。
该层主要是加工多维度冗余的宽表,解决什么问题呢?解决复杂的查询问题,多角度分析的汇总表。
面向用户、面向多个不同场景使用,以方便使用为准,将业务相近,或者相关的,粒度相同的APP层应用表,或者没有APP,但是频繁查询的数据,整合到一张宽表中,方便用户能够快速查询,不需要再进行多次JOIN操作,减少MR底层Shuffle的一个过程。结合数仓中,高内聚,低耦合的思想。宽表,主要考虑高内聚,放松低耦合的要求。深刻理解:数据集市,是比ADS、APP层,更加贴合应用的一个层面。

具体表结构 CASE :
字段英文名 字段中文名
pro_id 省份ID
pro_name 省份名称
gop_name 后端汇总品类
lev1_goods_id 后端一级类目ID
lev2_goods_id 后端二级类目ID
lev3_goods_id 后端三级类目ID
lev4_goods_id 后端四级类目ID
lev1_goods_name 后端一级类目name
lev2_goods_name 后端二级类目name
lev3_goods_name 后端三级类目name
lev4_goods_name 后端四级类目name
sale_cnt 中台订单销量
gmv 中台GMV
all_sale_cnt 对角巷销量
all_sale_gmv 对角巷GMV
mr_sale_cnt 仓销量
mr_sale_gmv 仓GMV

CASE 解析:
维度不做解释,其中指标可以看出来自不同的域,比如订单来自交易域,对角巷来自交易域,而仓,却来自仓储域,那么针对这种跨域的指标,合成的表,我们就放到数据集市中。可以深刻理解为,数据集市,更加贴合应用。

伪代码实现
-- 代码均为伪代码

-- set mapreduce.input.fileinputformat.split.maxsize = 10485760 --10M/TASK 读取

insert overwrite table dm_jc_di partition(dt = '当前时间')

select
	 nvl(pro_id,-999999) pro_id
	,nvl(city_id,-999999) city_id
	,nvl(gop_name,-999999) gop_name
	,nvl(lev1_goods_id,-999999) lev1_goods_id
	,nvl(lev2_goods_id,-999999) lev2_goods_id
	,nvl(lev3_goods_id,-999999) lev3_goods_id
	,nvl(lev4_goods_id,-999999) lev4_goods_id
	,nvl(lev1_goods_name,-999999) lev1_goods_name
	,nvl(lev2_goods_name,-999999) lev2_goods_name
	,nvl(lev3_goods_name,-999999) lev3_goods_name
	,nvl(lev4_goods_name,-999999) lev4_goods_name
	,sum(zt_sale_cnt) zt_sale_cnt
	,sum(zt_price_amt) zt_price_amt
	,sum(dj_sale_cnt) dj_sale_cnt
	,sum(dj_price_amt) dj_price_amt
	,sum(c_sale_
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值