每天一道大厂SQL题【Day28】腾讯数据提取(一)搞笑类型视频的曝光点赞数据_需要产出字段 视频 id,视频创建者 user_id,视频创建者名称、当天曝光次数、当天点

加技术群讨论

点击下方卡片关注后 联系我进群

附表

用户行为表:t_user_video_action_d分区:ds(格式 yyyyMMdd) 主键:user_id、video_id

含义:一个 user 对一个视频的所有行为聚合,每天增量字段:

字段名字段含义类型
user_id用 户 idstring
video_id视 频 idstring
expose_cnt曝光次数int
like_cnt点赞次数int

视频表:t_video_d

分区:ds(格式 yyyyMMdd)主键:video_id

含义:当天全量视频数据字段:

字段名字段含义类型枚举
video_id视 频 idstring
video_type视频类型string娱乐、新闻、搞笑
video_user_id视频创建者 user_idstring
video_create_time视频创建时间bigint

作者表:t_video_user_d

分区:ds(格式 yyyyMMdd)主键:video_user_id

含义:当天全量视频创建者数据

字段名字段含义类型枚举
video_user_id视频创建者 user_idstring
video_user_name名称string
video_user_type视频创建者类型string娱乐、新闻、搞笑
-- 建表
create table if not exists t_user_video_action_d (
user_id	string comment "用户id", video_id	string comment "视频id", expose_cnt int comment "曝光次数", like_cnt	int comment "点赞次数"
)
partitioned by (ds string);

create table if not exists t_video_d (
video_id	string comment ' 视 频 id', video_type		string comment ' 视 频 类 型 ', video_user_id			string comment '视频创建者user_id', video_create_time bigint comment '视频创建时间'
)
partitioned by (ds string);

create table if not exists t_video_user_d (
video_user_id	string comment '视频创建者user_id', video_user_name string comment ' 名 称 ', video_user_type string comment '视频创建者类型'
)
partitioned by (ds string);

文末SQL小技巧

提高SQL功底的思路。
1、造数据。因为有数据支撑,会方便我们根据数据结果去不断调整SQL的写法。
造数据语法既可以create table再insert into,也可以用下面的create temporary view xx as values语句,更简单。
其中create temporary view xx as values语句,SparkSQL语法支持,hive不支持。
2、先将结果表画出来,包括结果字段名有哪些,数据量也画几条。这是分析他要什么。
从源表到结果表,一路可能要走多个步骤,其实就是可能需要多个子查询,过程多就用with as来重构提高可读性。
3、要由简单过度到复杂,不要一下子就写一个很复杂的。
先写简单的select from table…,每个中间步骤都执行打印结果,看是否符合预期, 根据中间结果,进一步调整修饰SQL语句,再执行,直到接近结果表。
4、数据量要小,工具要快,如果用hive,就设置set hive.exec.mode.local.auto=true;如果是SparkSQL,就设置合适的shuffle并行度,set spark.sql.shuffle.partitions=4;

后记

📢博客主页:https://manor.blog.csdn.net

📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
📢本文由 Maynor 原创,首发于 CSDN博客🙉
📢不能老盯着手机屏幕,要不时地抬起头,看看老板的位置⭐
📢专栏持续更新,欢迎订阅:https://blog.csdn.net/xianyu120/category_12182595.html

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

618545628)**

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值