电商分析平台
zisuu
这个作者很懒,什么都没留下…
展开
-
大数据之spark大型电商平台分析平台(一)--项目前言
电商分析平台该项目是我根据尚硅谷大数据电商分析平台视频做的笔记,总共分成了大概十个需求,每个需求我都用一篇文章来解析文章目录项目整体概述课程简介本课程是一套完整的企业级电商大数据分析系统,在当下最为热门的Spark生态体系基础上构建企业级数据分析平台,本系统包括离线分析系统与实时分析系统,技术栈涵盖Spark Core,Spark SQL,Spark Streaming与Spark性能调优,并在课程中穿插Spark内核原理与面试要点,能够让学员在实战中全面掌握Spark生态体系的核心技术框架.原创 2020-05-26 18:33:54 · 1307 阅读 · 1 评论 -
1.项目搭建及,commons模块解析,离线实时数据准备
项目搭建github下载源码使用idea创建maven项目,并创建如下四个模块复制源码中的pom.xml,修改你的环境版本号复制mock,commons模块到你的项目中common模块解析conf基于文件的配置生成器,会读取resources下的commerce.properties,并返回所有配置信息 */object ConfigurationManager { // 创建用于初始化配置生成器实例的参数对象 private val params = new原创 2020-05-26 18:19:52 · 836 阅读 · 0 评论 -
电商平台分析平台----需求十:总结
实时计算部分总结实时计算部分无非是对某一个需求进行统计,整体框架:1.改变基本数据结构,变为(key,1L),可以用map或者transform进行改变2. 累加操作,三种选择reduceByKey—适合用于实时更新数据库数据updateStateByKey[]----适合用于较长时间的实时累加统计,需要设置checkPointreduceByKeyAndWindow—适合用于短时间内的实时累加统计,如一小时内数据封装入库,常用keyCountStream.原创 2020-05-26 18:32:11 · 872 阅读 · 0 评论 -
电商平台分析平台----需求九:实时统计之最近一小时广告点击量实时统计
做什么?通过Spark Streaming的窗口操作(reduceByKeyAndWindow)实现统计一个小时内每个广告每分钟的点击量需求解析:关于reduceByKeyAndWindow的知识详情看这篇文章步骤解析1.转化key为dateTime_adid //1.转化key为dateTime_adid val key2TimeMinute=adRealTimeFilterDstream.map{ case(log)=>{ val logS原创 2020-05-26 18:31:40 · 630 阅读 · 0 评论 -
电商平台分析平台----需求八:实时统计之各省份广告top3排名
做什么?根据需求七中统计的各省各城市累计广告点击量,创建SparkSQL临时表,通过SQL查询的形式获取各省的Top3热门广告。需求分析在需求七中,我们已经实时统计了各省各城市广告的点击量,并且key的格式是(date_province_city_adid),现在我们只需要把Key变为(date_province_city),再用reduceByKey进行累加最后利用sparkSQL创建临时表,进行排序即可步骤分析:1.转化key的格式 //1.转化key为date_province_a原创 2020-05-26 18:31:17 · 436 阅读 · 1 评论 -
电商平台分析平台----需求七:实时统计之各省各城市广告点击量实时统计
做什么?收到kafka的数据,实时统计各省各城市各广告的广告点击量需求分析kafka收到的数据仍然是需求六中的数据,思路也是相同的,即将数据变成(key,1L),再去改变总的数量不同的地方是:key现在变为 (date_province _city_adid)数量的统计不能再用reduceByKey,而是改为sparkStreaming中的updateStateByKey,其作用是对当前批次的数据和以往的数据进行一个累加更新操作,从而避免一直查询数据库,(相似的还用window滑动操作)原创 2020-05-26 18:28:10 · 598 阅读 · 0 评论 -
电商平台分析平台----需求六:实时统计之黑名单机制
做什么?从Kafka获取实时数据,对每个用户的点击次数进行累加并写入MySQL,当一天之内一个用户对一个广告的点击次数超过100次时,将用户加入黑名单中。需求解析1.先从kafka得到数据,数据格式是:(timestamp province city userid adid),2.接着统计该批次的数据中不同用户对同一个广告的点击数量,即需要以timestamp_userId_adid为key进行reduceByKey3.更新mysql4.从mysql中原创 2020-05-26 18:27:02 · 796 阅读 · 0 评论 -
电商平台分析平台----需求五:计算给定的页面访问流的页面单跳转化率
做什么?我们需要去分析每一次的页面访问流程,也就是用户从进入网站到离开网站这个流程中所访问的页面顺序,也就是一个session中的页面访问顺序。假如一个session的页面访问顺序为1,2,3,4,5,那么他访问的页面切片就是1_2,2_3,3_4,4_5,如果得到所有session的切面切片m_n,就可以计算每一种页面切片的个数,即count(m_n),就可以计算每一个页面单跳转化率。需求解析这个需求不是很难,只需要统计一下两个页面间的跳转数量除于总的跳转数即可.问题的关键在于如何转化数据,如下原创 2020-05-26 18:26:38 · 581 阅读 · 0 评论 -
电商平台分析平台----需求四:Top10热门品类的Top10活跃Session统计
做什么?统计需求三中得到的Top10热门品类中的Top10活跃Session,对Top10热门品类中的每个品类都取Top10活跃Session,评判活跃Session的指标是一个Session对一个品类的点击次数。需求解析需要什么?Top10热门品类中的Top10活跃Session依据什么排序?一个Session对一个品类的点击次数需要怎样的原始数据?用户点击的商品为top10商品的其中一个----------filter算子怎么做?步骤解析获取点击过Top10品类的所有用原创 2020-05-26 18:25:55 · 566 阅读 · 0 评论 -
电商平台分析平台----需求三:热门top10商品
做什么?在符合条件的用户行为数据中,获取点击、下单和支付数量排名前10的品类。在Top10的排序中,按照点击数量、下单数量、支付数量的次序进行排序,即优先考虑点击数量。需求分析首先我们想要得到的是在符合条件的action中,统计排名前十的热门商品.并且排名的依据是根据点击数量、下单数量、支付数量的次序进行排序的.所以通过逆推:top10商品–>(id,(clickCount=83|orderCount=67|payCount=63))------>分别统计(id,clickCount=原创 2020-05-26 18:25:11 · 1138 阅读 · 0 评论 -
电商平台分析平台----需求二:按照比列随机抽取session
做什么?在符合过滤条件的session中,按照时间比例随机抽取100个session。当存在若干天的数据时,100个session抽取指标在天之间平均分配,在一天之中,根据某个小时的session数量在一天中总session数量中的占比决定这个小时抽取多少个session一个小时要抽取的session数量 = (这个小时的session数量/这一天的session数量) * 这一天要抽取的session数量需求解析明确一个小时抽取多少session后(假设为N个),根据数量产生N个随机数,这N个随机原创 2020-05-26 18:24:21 · 495 阅读 · 0 评论 -
需求一:各个范围Session步长、访问时长占比统计
做什么?统计各个范围Session步长、访问时长占比统计访问时长:session的最早时间与最晚时间之差。访问步长:session中的action操作个数。即:统计出符合筛选条件的session中,访问时长在1s3s、4s6s、7s9s、10s30s、30s60s、1m3m、3m10m、10m30m、30m,访问步长在1_3、4_6、…以上各个范围内的各种session的占比需求分析:对应的类:case class UserVisitAction(date: String,原创 2020-05-26 18:22:19 · 1190 阅读 · 0 评论 -
2.项目需求解析
前言本篇文章讲解的是电商分析平台中的各个模块需求,需求总体概述一 离线数据分析动作表解析:通过埋点采集到的用户行为数据被存储在了动作表里,我们关注用户的四种行为,即点击、搜索、下单、购买,用户每执行一次上述操作,就会产生一条日志,之后按照一定的时间单位(例如一天)被导入动作表中,也就是说,动作表中的一条数据对应用户的一次行为(点击、搜索、下单或者购买中的一种)二 实时数据分析实时数据主要用于统计用户点击广告需求详解用户访问Session分析用户访问session,是在电商平原创 2020-05-23 16:57:47 · 1320 阅读 · 0 评论