# 第三阶段模块一 **Repository Path**: old_he/module-1-of-the-third-stage ## Basic Information - **Project Name**: 第三阶段模块一 - **Description**: No description available - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-01-12 - **Last Updated**: 2021-01-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 第三阶段模块一 #### 思路 1. ODS层和DWD层按照讲义的步骤将作业数据导入数仓; 2. 遇到一个问题,作业的数据每天的前28行是无效数据,在使用JSON反序列化的时候要注意去除; 3. 在做DWS层的时候,由于虚拟机性能的问题,一直无法成功运行Hive SQL; 4. 思路是先按照讲义中建立每日活跃会员表; 5. 在每日活跃会员的基础上运行以下SQL; 5.1 首先排序,用序号减去日期将连续登陆筛选出来; ``` select device_id, dt, date_sub(dt,rank_num) as login_day from (select device_id, dt, row_number() over( partition by device_id order by dt) as rank_num from dws_member_start_day)a ``` 5.2 上面SQL结果中login_day一样的表示连续登陆,对login_day分组计数,计数大于3的即为连续登陆3天; ``` select device_id from (select device_id, date_sub(dt,rank_num) as login_day from (select device_id, dt, row_number() over( partition by device_id order by dt) as rank_num from dws_member_start_day)a ) b group by device_id,login_day having count(*)>=3 ```