电商项目之用户启动 DWS 表 SQL 实现|学习笔记

简介: 快速学习电商项目之用户启动 DWS 表 SQL 实现

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

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


电商项目之用户启动 DWS 表 SQL 实现

 

用户启动 DWS

基于明细表进行公共汇总,根据对应的维度进行汇总,DWS 是单维度的,它只基于上面的某一个表,这个表就是DWD 刚创建的明细表。

启动次数是指计算用户的启动次数,在做数据分组的时候,不会按照 user id 分类,因为用户 ID 可能会有多个,它的启动次数相当于求它的 comment 有多少次。

这需要统一,当前用户启动多少次,另外的用户启动多少次,ID如果会变的话,这时候不能归为一类的 ID,在做的时候就会有问题,这时候虽然说是一个设备,但是每次 ID 都会变,所以在使用的时候,获取的是 log 表和 log 数据,所以获取的时候需要用统一的 ID,设备 ID 是比较统一的,根据设备号来进行 comment 聚合,然后再根据设备号进行分组。

单独将设备号拿出来,进行 comment,就可以求出启动的次数,用户用同一个设备启动多少次就是启动次数,这个不需要去除。在获取用户启动次数的时候不需要去除,只需要统计当前用户使用这个设备启动了多少次,这个时候相对来说比较简单一些,

如下进行操作

hives create database dws _nshop;oK

Time taken : 0.038 seconds

hive> create external table if not exists dws_nshop.dws_nshop_ulog_launch(

user_id string comment"用户id' ,

device_num string comment '设备号',

device_type string comment"设备类型",

os string comment"手机系统",

os_version string comment '手机系统版本',

manufacturer string comment"手机制造商',

carrier string commentT'电信运营商",

network_type string corenent "网络类型'

area_code string comment "地区编码",

launch_count int comment"启动次数">)

partitioned by (bdp_day string)

> stored as parquet

>location" /data/nshop/dws/user/dws_nshop_ulog_launch/ " ;

这张表依赖用户启动日志表,用户启动是对用户启动日志表进行工作汇总的力度支持,

接下来在笔记进行编写

Insert overwrite table dws_nshop.dws_nshop_ulog_launch partition( bdp_day= ' 2020032)

Elect

user_id ,

device_num ,

device_type,

os ,

os_version ,

manufacturer,

carrier ,

network_type,

area_code,

count(device_num) over(partition by device_num)as launch_countfrom dwd_nshop.dwd_nshop_actlog_launch

where

bdp_day= " 20200321"

相关文章
|
2月前
|
算法 数据挖掘 数据库
通过 SQL 快速使用 OceanBase 向量检索学习笔记
通过 SQL 快速使用 OceanBase 向量检索学习笔记
|
2月前
|
SQL 数据库
SQL 学习笔记 - 多表关系与多表查询
数据库多表关系包括一对多、多对多和一对一,常用外键关联。多表查询方式有隐式/显式内连接、外连接、子查询等,支持别名和条件筛选。子查询分为标量、列、行、表子查询,常用于复杂查询场景。
|
SQL 分布式计算 DataWorks
DataWorks操作报错合集之新建项目的元数据的sql报错,如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
173 0
|
SQL 关系型数据库 MySQL
Go语言项目高效对接SQL数据库:实践技巧与方法
在Go语言项目中,与SQL数据库进行对接是一项基础且重要的任务
262 11
|
监控 Java 开发者
揭秘Struts 2性能监控:选对工具与方法,让你的应用跑得更快,赢在起跑线上!
【8月更文挑战第31天】在企业级应用开发中,性能监控对系统的稳定运行至关重要。针对流行的Java EE框架Struts 2,本文探讨了性能监控的工具与方法,包括商用的JProfiler、免费的VisualVM以及Struts 2自带的性能监控插件。通过示例代码展示了如何在实际项目中实施这些监控手段,帮助开发者发现和解决性能瓶颈,确保应用在高并发、高负载环境下稳定运行。选择合适的监控工具需综合考虑项目需求、成本、易用性和可扩展性等因素。
152 0
|
SQL 存储 Oracle
MySQL 项目中 SQL 脚本更新、升级方式,防止多次重复执行
MySQL 项目中 SQL 脚本更新、升级方式,防止多次重复执行
257 0
|
SQL 运维 Oracle
SQL Server 项目中 SQL 脚本更新、升级方式,防止多次重复执行
SQL Server 项目中 SQL 脚本更新、升级方式,防止多次重复执行
265 0
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
|
SQL 存储 监控
SQL Server的并行实施如何优化?
【7月更文挑战第23天】SQL Server的并行实施如何优化?
528 13
解锁 SQL Server 2022的时间序列数据功能
【7月更文挑战第14天】要解锁SQL Server 2022的时间序列数据功能,可使用`generate_series`函数生成整数序列,例如:`SELECT value FROM generate_series(1, 10)。此外,`date_bucket`函数能按指定间隔(如周)对日期时间值分组,这些工具结合窗口函数和其他时间日期函数,能高效处理和分析时间序列数据。更多信息请参考官方文档和技术资料。
347 9