电商项目之 DWD 用户启动日志表 SQL 实现(下)|学习笔记

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 快速学习电商项目之 DWD 用户启动日志表 SQL 实现(下)

开发者学堂课程【新电商大数据平台2020最新课程电商项目之 DWD 用户启动日志表 SQL 实现(下)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/640/detail/10524


电商项目之 DWD 用户启动日志表 SQL 实现(下)

 

时间段可以分为四个字段,早上,上午,下午 ,晚上,通过这四个字段来判断时间,用户行为日志表里面有一个时间是ct,取时间戳,时间戳保留到毫秒,转换下在经过计算操作,先把时间转换下。

image.png

先取 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,本地模式比较好,比较慢。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
3月前
|
人工智能 监控 算法
3D-Speaker:阿里通义开源的多模态说话人识别项目,支持说话人识别、语种识别、多模态识别、说话人重叠检测和日志记录
3D-Speaker是阿里巴巴通义实验室推出的多模态说话人识别开源项目,结合声学、语义和视觉信息,提供高精度的说话人识别和语种识别功能。项目包含工业级模型、训练和推理代码,以及大规模多设备、多距离、多方言的数据集,适用于多种应用场景。
585 18
3D-Speaker:阿里通义开源的多模态说话人识别项目,支持说话人识别、语种识别、多模态识别、说话人重叠检测和日志记录
|
3月前
|
Java Maven
java项目中jar启动执行日志报错:no main manifest attribute, in /www/wwwroot/snow-server/z-server.jar-jar打包的大小明显小于正常大小如何解决
在Java项目中,启动jar包时遇到“no main manifest attribute”错误,且打包大小明显偏小。常见原因包括:1) Maven配置中跳过主程序打包;2) 缺少Manifest文件或Main-Class属性。解决方案如下:
1008 8
java项目中jar启动执行日志报错:no main manifest attribute, in /www/wwwroot/snow-server/z-server.jar-jar打包的大小明显小于正常大小如何解决
|
7月前
|
SQL 关系型数据库 MySQL
【MySQL】根据binlog日志获取回滚sql的一个开发思路
【MySQL】根据binlog日志获取回滚sql的一个开发思路
|
3月前
|
SQL 存储 缓存
MySQL进阶突击系列(02)一条更新SQL执行过程 | 讲透undoLog、redoLog、binLog日志三宝
本文详细介绍了MySQL中update SQL执行过程涉及的undoLog、redoLog和binLog三种日志的作用及其工作原理,包括它们如何确保数据的一致性和完整性,以及在事务提交过程中各自的角色。同时,文章还探讨了这些日志在故障恢复中的重要性,强调了合理配置相关参数对于提高系统稳定性的必要性。
|
4月前
|
JSON Java 数据库
SpringBoot项目使用AOP及自定义注解保存操作日志
SpringBoot项目使用AOP及自定义注解保存操作日志
88 1
|
6月前
|
SQL 存储 缓存
高基数 GroupBy 在 SLS SQL 中的查询加速
本文详细介绍了SLS中的高基数GroupBy查询加速技术。
175 23
|
5月前
|
SQL 数据库
为什么 SQL 日志文件很大,我应该如何处理?
为什么 SQL 日志文件很大,我应该如何处理?
|
5月前
|
SQL 数据库
为什么SQL日志文件很大,该如何处理?
为什么SQL日志文件很大,该如何处理?
|
7月前
|
开发框架 .NET Docker
【Azure 应用服务】App Service .NET Core项目在Program.cs中自定义添加的logger.LogInformation,部署到App Service上后日志不显示Log Stream中的问题
【Azure 应用服务】App Service .NET Core项目在Program.cs中自定义添加的logger.LogInformation,部署到App Service上后日志不显示Log Stream中的问题
103 1
|
7月前
|
SQL Java 关系型数据库
SpringBoot 系列之 MyBatis输出SQL日志
这篇文章介绍了如何在SpringBoot项目中通过MyBatis配置输出SQL日志,具体方法是在`application.yml`或`application.properties`中设置MyBatis的日志实现为`org.apache.ibatis.logging.stdout.StdOutImpl`来直接在控制台打印SQL日志。
SpringBoot 系列之 MyBatis输出SQL日志