Hadoop离线数据分析平台实战——280新增用户和总用户分析
项目进度
模块名称 | 完成情况 |
---|---|
用户基本信息分析(MR)� | 未完成 |
浏览器信息分析(MR) | 未完成 |
地域信息分析(MR) | 未完成 |
外链信息分析(MR) | 未完成 |
用户浏览深度分析(Hive) | 未完成 |
订单分析(Hive) | 未完成 |
事件分析(Hive) | 未完成 |
业务总述
在本次项目中只有两个地方需要新用户数据和总用户数据,
分别为用户基本信息分析模块和浏览器分析模块,
它们的区别主要就是统计分析的维度不一样,
故我们可以将其放到一个mapreduce任务中计算。
最终的统计数据我们需要保持到mysql关系型数据库中,
我们直接通过自定义OutputFormat和OutputCollector类来实现写出到mysql的操作。
通过定义维度信息类和统计数据类来分别区分维度表和统计表,
定义一个DimensionConverter类来获取/填充维度表信息(有则获取id,无则插入,再获取id)。
计算规则
new_install_user计算规则:计算launch时间中,uuid的唯一个数。
total_user计算规则:同一个维度,前一天的总用户+当天新增用户。(只按照天来统计数据,但是提供按照其他时间维度统计的方式)
最终数据保存:stats_user和stats_device_browser。
涉及到的列(除了维度列和created列外):new_install_users和total_install_users。
涉及到其他表有dimension_platform、dimension_date、dimension_browser。
编码步骤
- 定义维度信息表对应的顶级父类。
⁃ 2. 指定数据库连接信息指定,搭建DimensionConverter获取维度id的类框架,根据具体的分析到时候再添加内容。� - 搭建自定义OutputFormat和OutputCollector类框架。
- 实现统计new_install_user的用户数
a. 自定义platform、date、browser维度类,以及操作这些类的工具类。
b. 实现MR - 实现统计total_user的用户数。
- 测试