开发者学堂课程【新电商大数据平台2020最新课程:电商项目之用户交易宽表分析】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/640/detail/10545
电商项目之用户交易宽表分析
用户交易宽表分析
上节讲到用户关注表,通过公共维度实现了数据的聚合,为之后内容做准备。接着我们来讲解用户交易宽表。
那么用户交易的宽表我们应该去哪里寻找?
应该在交易主体域。首先看我们要求的值如用户 id、地区编码、订单数量、订单金额、订单运费金额、订单优惠金额、产生时间。
createexternaltableifnotexists dws_nshop.dws_nshop_user_orders(
user_id string comment '用户id',
area_code string comment '地区编码',
orders_count int comment'订单数量',
orders_pay DECIMAL (10,1) comment '订单金额',
orders_shipping DECIMAL(10,1) comment'订单运费金额',
orders_district DECIMAL(10,1)comment '订单优惠金额',
ct bigint comment '产生时间’
) partitioned by (bdp_day string)
stored as parquet
location '/data/nshop/dws/user/dws_nshop_user_orders/ '
这些都在交易订单明细流水表中,它都是在交易主体域下,
如图
那么现在就首先需要有交易订单明细流水表
dwd_nshop.dwd_nshop_orders_details,该表中有订单 id,也有用户 id,但是在这里取值时,尽量不要取customer_id。
用户交易宽表中的地区编码不存在,需要到用户基本信息表中查找,地区编码就是下图中的所在地区customer_natives string COMMENT
所以可以修改一下用户交易宽表
customer_natives string comment '地区编码'
此处地区编码可加可不加,但是此处取到就需要加,另外在用户基本信息表中取不到地区编码,它存在用户行为日志表中,所以在写用户交易宽表时写为所在区域。
即 customer_natives string comment '所在区域'
接下来来取值,现在用到的表中有用户基本信息表,订单明细流水表中没有所在地区,需要到用户基本信息表中寻找,就需要将两者的用户 id 连接才能取到。
其它的例如订单数量可以去求对应的 count,可以对 order 进行 count,再对用户进行分组,因为一个用户可能有多个订单。
订单金额运费金额优惠金额等等在交易订单明细流水表中已经存在,直接 sum 就可以。