开发者学堂课程【新电商大数据平台2020最新课程:电商项目之 DWD 用户启动日志表 SQL 实现(下)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/640/detail/10524
电商项目之 DWD 用户启动日志表 SQL 实现(下)
时间段可以分为四个字段,早上,上午,下午 ,晚上,通过这四个字段来判断时间,用户行为日志表里面有一个时间是ct,取时间戳,时间戳保留到毫秒,转换下在经过计算操作,先把时间转换下。
先取 ct,放两个值,这职业是要做的时间戳,小时是 HH,这么解析一定报错,需要转换一下。
用 cast 单独去计算找到时间,转换成一个 int 类型,默认是 string 类型。
Jet hive. exec. dynamic. partition-true;
set hive. exec. dynamic. partition, mode=nonstrict;
insert. overwrite table _nshop. dwd_nshop_actlog_launch partition( bdp_day="20200321")
select
customer id,
device_num,
device_type,
os,
os_version,
manufacturer,
carrier,
network_type,
area code,
from_unixtime(cast(ct/1000 as int), 'yyyMMdd’),
ct,
bdp_day
from ods_nshop. ods_nshop_01_useractlog
where
bdp_day=20200321
and
action='02'
试一下是06,当然取的时候也可以取时分秒,去 yyyMMdd,20190908,这是一个时间。
时间段没必要过于纠结,时间段加一个判断,当他是某个值的时候,可以重新处理。这个时间段后面再加,用SQL进行操作表的时候,或处理的时候,比较有意义。
现在的数据需要跑任务,把数据插入到 dwd 用户行为日志表当中,加入需要写 insert 或者 into,动态传入一下,这里面还需要一个字段,还需要一个生产时间,直接获取 ct。
如果用动态穿插的方式,字段就不匹配了,里面多了一个字段,需要把最后一个字段充当分析字段。上面有 bdp 的字段,配置相应的参数,开启动态穿插。
现在是没有开启的,先开启动态穿插,复制一下,可以设置分区字段的数量。
运营一下,把两个机制开启,创建一个 user,需要配置一个文件夹,然后看是否有,再跑一下。有3个 job,本地模式比较好,比较慢。