目录
百战程序员,全站22050+开发课程+文档 ,学习精选优质好课快人一步!观看视频 快捷键ALT+N

大数据全系列 教程

1869个小节阅读:467.1k

收藏
全部开发者教程

408考研

JAVA全系列 教程

面向对象的程序设计语言

Python全系列 教程

Python3.x版本,未来主流的版本

人工智能 教程

顺势而为,AI创新未来

大厂算法 教程

算法,程序员自我提升必经之路

C++ 教程

一门通用计算机编程语言

微服务 教程

目前业界流行的框架组合

web前端全系列 教程

通向WEB技术世界的钥匙

大数据全系列 教程

站在云端操控万千数据

AIGC全能工具班

A

A A

White Night

阅读(246)
赞(0)

需求分析

要完成昨日的歌曲热度与歌手热度分析,需要以下两类数据:

  • 用户在机器上的点歌行为数据

    这部分数据是用户在各个机器上当天的点歌播放行为数据,这些数据是运维每天零点打包以gz压缩文件的方式上传到HDFS平台,这里我们假定将数据currentday_clientlog.tar.gz每天凌晨定时上传到HDFS路径hdfs://mycluster/logdata中,这里在企业中应当上传到某个以天名称的结构目录下,通过Spark数据清洗将数据存放到Hive数仓ODS层中。关于用户在机器上的点歌行为数据参照“事件上报协议.docx”文档。

    日志内容格式:

    日志时间&机器id&事件类型&{json}&机器版本&机器UI软件版本

    终端向服务器通知歌曲播放操作(事件类型中的一种)

    CMD名称MINIK_CLIENT_SONG_PLAY_OPERATE_REQ
    访问方式终端主动请求
    参数类型json

    请求参数说明

    json属性是否必须说明
    optrate_type0:点歌, 1:切歌,2:歌曲开始播放,3:歌曲播放完成,4:录音试听开始,5:录音试听切歌,6:录音试听完成
    songid歌曲ID
    uid用户ID(无用户则为0)
    session_id局数ID
    mid机器ID
    dur_time总时长单位秒(operate_type:0时此值为0)
    play_time播放时长单位秒
    consume_type消费类型:0免费;1付费
    songname歌曲名
    pkg_id套餐ID类型
    order_id订单号.订单号组成规则, 类型+_(下划线)+由支付类型自定义的订单. 补偿套餐的order_ID是上局的comsum_id

    套餐ID类型定义

    pkg_id数字标识名称说明
    0单曲套餐 
    1包时套餐15分钟 
    2包时套餐30分钟 
    3包时套餐45分钟 
    4包时套餐60分钟 
    5包时套餐90分钟 
    98朗诵券单曲套餐 
    99客户端免费游戏模式套餐免费模式模拟ID,为了于真正消费套餐区分

    支付类型ID定义

    pay_typ数字标识名称说明
    0投币 
    1k金币 
    2k银币 
    3音乐积分 
    4微信支付 
    5支付宝支付 
    6免费券 
    7QQ支付 
    8友币支付 
    99上局余额上局死机余留,补套餐
  • 歌曲歌手的基本信息

    这些信息放在业务系统的关系型数据库MySQL的songdb.song表中。

    首先创建数据库实例songdb,然后将songdb.sql文件导入到该实例下。

    通过Sqoop每天定时全量覆盖抽取到数据仓库Hive中的ODS层中。关于song表的结构信息参看“数据仓库模型.xls”文件ODS,如下:

北京市昌平区回龙观镇南店村综合商业楼2楼226室

©2014-2023 百战卓越(北京)科技有限公司 All Rights Reserved.

京ICP备14032124号-2