# AdRealTimeAnalysis **Repository Path**: salemanager/AdRealTimeAnalysis ## Basic Information - **Project Name**: AdRealTimeAnalysis - **Description**: 四川大学拓思艾诺广告流量实时分析项目 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2018-05-11 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AdRealTimeAnalysis 四川大学拓思艾诺广告流量实时分析项目 ## 需求 1. 实现实时的动态黑名单机制,将每天对某个广告点击超过100次的用户拉黑 2. 基于黑名单的非法广告点击流量过滤 3. 统计每天各省各城市各广告的点击流量实时统计(基于需求二) 4. 统计每天各省的top3热门广告(基于需求二) 5. 统计各个广告最近一个小时内的点击趋势:各个广告最近1小时内各分钟的点击量(基于需求二) 6. 实时计算每天各省城市各广告的点击量(基于需求二),更新到MySQL ## 实现思路 1. 实时计算各batch中的每天各用户对各广告的点击次数 2. 使用高性能方式将每天各用户对各广告的点击次数写入MySQL中(更新) 3. 使用filter过滤出每天对某个广告点击超过100次的黑名单用户,并写入MySQL中 4. 使用transform操作,对每个batch RDD进行处理,都动态加载MySQL中的黑名单生成RDD,然后进行join后,过滤掉batch RDD中的黑名单用户的广告点击行为 5. 使用updateStateByKey操作,实时计算每天各省各城市各广告的点击量,并时候更新到MySQL 6. 使用transform结合Spark SQL,统计每天各省份top3热门广告:首先以每天各省各城市各广告的点击量数据作为基础,首先统计出每天各省份各广告的点击量;然后启动一个异步子线程,使用Spark SQL动态将数据RDD转换为DataFrame后,注册为临时表;最后使用Spark SQL开窗函数,统计出各省份top3热门的广告,并更新到MySQL中 ## 其它 以下链接是一个从前端展示到后台数据交互流程的具体demo [WiFiProbeAnalysis](https://github.com/wanghan0501/WiFiProbeAnalysis)