大数据学习之PB级音乐数据中心数仓综合项目(1)-理论知识和项目需求、歌曲热度与歌手热度排行

一、理论知识和项目需求

1.课程介绍

2.数据库与ER建模_数据库三范式

3.数据库与ER建模_ER实体关系模型

4.数据库与维度建模_数据仓库(DATA WAREHOUSE)

5.数据库与维度建模_数据库与数据仓库区别

6.数据库与维度建模_数据仓库的发展历程

7.数据库与维度建模_维度建模

8.数据库与维度建模_维度建模案例

9.数据库与维度建模_数仓分层设计一

10.数据库与维度建模_数仓分层设计二

11.数据库与维度建模_数仓分层设计案例

12.项目需求_项目介绍

数据中心项目中包含业务系统数据和用户行为日志数据。
业务数据即业务系统产生的业务数据,例如:系统中产生的订单、登录、点歌、广告展示等数据。
1
用户行为数据例如:用户在实体机器上操作的行为都是用户行为数据,点击、收藏、扫码等事件。
2
公司针对以上数据进行分析的结果主要有两个应用:
一是针对 BI 系统,商业智能中主要展示更多的报表给公司的运营人员参照。例如:每日歌曲点唱量,每日营收,
机器分布,实时 pv,uv ,用户留存率、漏斗模型等。
1
另一个应用是数据服务,数据服务主要是针对分析后结果数据以接口的形式提供给业务系统来访问,例如 : 推荐系
统,根据歌曲来推荐歌曲,根据歌手来推荐歌曲或者根据用户来推荐歌曲。
2
本项目模块划分:
歌曲热度与歌手热度排行
1
机器相信信息统计
2
日活跃用户统计
3
商户营收统计
4
地区营收统计
5
实时统计所有用户的 PV/UV
6
实时统计歌曲热度

13.项目需求_项目架构

14.项目需求_集群配置_项目人数_周期

15.项目需求_数据来源及采集

以上两种设备产生的数据可以分为两类数据:
是产生的订单数据,会记录到业务数据库。后期直接通过 sqoop 直接抽取 MySQL 中的数据到 HDFS
1
是通过 http 请求,上传到专门采集数据的日志服务器上,每天由运维人员将数据打包上传到数据中心平台某个目
录下,然后由定时任务定时来执行 Spark 任务拉取数据,上传至 HDFS 中。这里读取压缩数据使用 SparkCore 进行
处理,处理之后将数据以 parquet 格式或者 json 格式存储在 HDFS 中即可。

16.项目需求_数仓模型设计

内部数据源:主要有 MySQL 和客户端上传 json 数据。 MySQL 使用 Sqoop 抽取
数据到 HDFS 中,导入 ODS 层。客户端产生日志到客户端服务器,客户端服务
器由运维人员每天将数据压缩成包导入到 HDFS 路径中,然后再经过
SparkCore SparkSQL 处理后导入 ODS 层。
EDS(Enterprise Data Store)/DW(Data Warehouse ) 层:
EDS 层负责信息集成、轻度汇总类数据。简单理解就是将事务性的数据组织
成便于分析的仓库维度建模类型的数据,做一些轻度聚合,类似 Hive 中的宽
表。例如:将 ODS 层数据进行清洗,如果主题是用户主题,那么就按照用户
id 为粒度将数据组织在一起。如果主题是机器,那么就按照机器 id 为粒度将
数据组织在一起。
以上 ODS 层和 EDS 层使用 Spark 代码处理数据,然后利用 SparkSQL 读取 ODS
层数据,保存到 Hive EDS 层。
DM(Data Mart) 层:
DM 层的数据有一部分是存储在 Hive 表中,或者保存分析结果到 MySQL
HBase 等。 EDS 层数据是 parquet 格式的数据,放在 Hive 的主要原因是后期使
Kylin 查询一些业务,数据放 MySQL 的都是结果数据,放在 HBase 的原因
是涉及到大表的明细查询。
以上数据仓库模型的设计表对应关系都在 数据仓库模型 .xlsx” 文件中。

二、歌曲热度与歌手热度排行

17.歌曲热度与歌手热度排行_需求描述

18.歌曲热度与歌手热度排行_需求分析一

要完成昨日的歌曲热度与歌手热度分析,需要以下两类数据:
用户在机器上的点歌行为数据
这部分数据是用户在各个机器上当天的点歌播放行为数据,这些数据是运
维每天零点打包以 gz 压缩文件的方式上传到 HDFS 平台,这里我们假定将
数据
currentday_clientlog.tar.gz
每天凌晨定时上传到 HDFS 路径
hdfs://mycluster/logdata
中,这里在企业中应当上传到某个以天名称的结构目录下,通过 Spark
据清洗将数据存放到 Hive 数仓 ODS 层中。关于用户在机器上的点歌行为数
据参照 事件上报协议 .docx” 文档。
日志内容格式:
日志时间 & 机器 id& 事件类型 &{json}& 机器版本 & 机器 UI 软件版本
终端向服务器通知歌曲播放操作 ( 事件类型中的一种 )
35 CMD 名称
MINIK_CLIENT_SONG_PLAY_OPERATE_REQ
访问方式
终端主动请求
参数类型
json
json 属性
是否
必须
说明
optrate_type
0: 点歌 , 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

19.歌曲热度与歌手热度排行_需求分析二

20.歌曲热度与歌手热度排行_需求分析三

21.歌曲热度与歌手热度排行_DATAGRIP安装激活

22.歌曲热度与歌手热度排行_配置HIVESERVER2

23.歌曲热度与歌手热度排行_DATAGRIP配置

24.歌曲热度与歌手热度排行_模型设计

hive > create database baizhan_music;
OK
Time taken: 0.664 seconds
hive > use baizhan_music;
OK
Time taken: 0.053 second
1
2
3
4
5
6
CREATE EXTERNAL TABLE IF NOT EXISTS
`TO_CLIENT_SONG_PLAY_OPERATE_REQ_D` (
`SONGID` string,
`MID` string,
`OPTRATE_TYPE` string,
`UID` string,
`CONSUME_TYPE` string,
`DUR_TIME` string,
`SESSION_ID` string,
`SONGNAME` string,
`PKG_ID` string,
`ORDER_ID` string
1
2
3
4
5
6
7
8
9
10
11
49 2
TO_SONG_INFO_D 歌库歌曲表
)
partitioned by ( data_dt string )
ROW FORMAT DELIMITED   FIELDS TERMINATED BY '\t'
LOCATION
'hdfs://mycluster/user/hive_remote/warehouse/dat
a/song/TO_CLIENT_SONG_PLAY_OPERATE_REQ_D' ;
12
13
14
15
CREATE EXTERNAL TABLE `TO_SONG_INFO_D` (
`NBR` string,
`NAME` string,
`OTHER_NAME` string,
`SOURCE` int,
`ALBUM` string,
`PRDCT` string,
`LANG` string,
`VIDEO_FORMAT` string,
`DUR` int,
`SINGER_INFO` string,
`POST_TIME` string,
`PINYIN_FST` string,
`PINYIN` string,
`SING_TYPE` int,
`ORI_SINGER` string,
`LYRICIST` string,
`COMPOSER` string,
`BPM_VAL` int,
`STAR_LEVEL` int,
`VIDEO_QLTY` int,
`VIDEO_MK` int,
`VIDEO_FTUR` int,
`LYRIC_FTUR` int,
`IMG_QLTY` int,
`SUBTITLES_TYPE` int,
`AUDIO_FMT` int,
`ORI_SOUND_QLTY` int,
50 `ORI_TRK` int,
`ORI_TRK_VOL` int,
`ACC_VER` int,
`ACC_QLTY` int,
`ACC_TRK_VOL` int,
`ACC_TRK` int,
`WIDTH` int,
`HEIGHT` int,
`VIDEO_RSVL` int,
`SONG_VER` int,
`AUTH_CO` string,
`STATE` int,
`PRDCT_TYPE` string )
ROW FORMAT DELIMITED   FIELDS TERMINATED BY '\t'
LOCATION
'hdfs://mycluster/user/hive_remote/warehouse/dat
a/song/TO_SONG_INFO_D'

25.歌曲热度与歌手热度排行_SQOOP数量全量同步

26.歌曲热度与歌手热度排行_SQOOP数量全量同步解决BUG

27.歌曲热度与歌手热度排行_项目搭建

28.歌曲热度与歌手热度排行_歌曲播放日志解析思路

29.歌曲热度与歌手热度排行_歌曲播放日志解析编码一

30.歌曲热度与歌手热度排行_歌曲播放日志解析编码二

31.歌曲热度与歌手热度排行_歌曲播放日志解析编码三

32.歌曲热度与歌手热度排行_歌曲播放日志解析编码四

33.歌曲热度与歌手热度排行_歌曲播放日志解析编码五

34.歌曲热度与歌手热度排行_歌曲播放日志解析编码六

35.歌曲基本信息TO至TW思路分析

36.歌曲基本信息TO至TW编码一

37.歌曲基本信息TO至TW编码二

38.歌曲基本信息TO至TW编码三

39.歌曲基本信息TO至TW编码四

40.歌曲基本信息TO至TW编码五

41.歌曲基本信息TO至TW编码六

42.歌曲基本信息TO至TW编码七

43.歌曲基本信息TO至TW编码测试

44.歌曲特征N日统计思路分析

45.歌曲特征N日统计编码一

46.歌曲特征N日统计编码二

47.歌曲特征N日统计编码三

48.歌曲特征N日统计编码四

49.歌曲特征N日统计编码五

50.歌曲特征N日统计编码六

51.歌曲特征N日统计编码测试

52.歌曲影响力指数统计思路分析一

53.歌曲影响力指数统计思路分析二

54.歌曲影响力指数统计编码一

55.歌曲影响力指数统计编码二

56.歌曲影响力指数统计编码三

57.歌曲影响力指数统计编码四

58.歌曲影响力指数统计编码五

59.歌曲影响力指数统计编码测试

60.歌手影响力指数日统计思路分析

61.歌手影响力指数日统计编码一

62.歌手影响力指数日统计编码二

63.歌手影响力指数日统计编码三

64.歌手影响力指数日统计编码测试

65.AZKABAN配置任务流一

66.AZKABAN配置任务流二

67.AZKABAN配置任务流三

68.AZKABAN配置任务流四

69.AZKABAN配置任务流五

70.AZKABAN配置任务流六

71.AZKABAN配置任务流执行测试

72.SUPERSET数据可视化

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/22791.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构之队列

1. 队列的概念及结构 1.1 队列的概念 队列:只允许在一段进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out) 入队列:进行插入操作的一端称为队尾 出队列:进行删除操…

计算机网络-面试总结

计算机网络 从输入一个URL到页面加载完成的过程 整体流程 DNS查询过程SSL四次握手HTTP 的长连接与短连接 HTTP 的 GET 和 POST 区别浏览器访问资源没有响应,怎么排查? OSI七层参考模型 TCP/IP四层参考模型比较 TCP/IP 参考模型与 OSI 参考模型 TCP三次握手&四…

kafka消费能力压测:使用官方工具

背景 在之前的业务场景中,我们发现Kafka的实际消费能力远低于预期。尽管我们使用了kafka-go组件并进行了相关测试,测试情况见《kafka-go:性能测试》这篇文章。但并未能准确找出消费能力低下的原因。 我们曾怀疑这可能是由我的电脑网络带宽问题或Kafka部…

正式页面开发-登录注册页面

整体路由设计: 登录和注册的切换是切换组件或者是切换内容(v-if和 v-else),因为点击两个之间路径是没有变化的。也就是登录和注册共用同一个路由。登录是独立的一级路由。登录之后进到首页,有三个大模块:文章分类&…

Oracle 深入理解Lock和Latch ,解析访问数据块全流程

Oracle 锁机制介绍 根据保护对象的不同,单实例Oracle数据库锁可以分为以下几大类: DML lock(data locks,数据锁):用于保护数据的完整性; DDL lock(dictionary locks,字典…

Codes 开源免费研发项目管理平台 2025年第一个大版本3.0.0 版本发布及创新的轻IPD实现

Codes 简介 Codes 是国内首款重新定义 SaaS 模式的开源项目管理平台,支持云端认证、本地部署、全部功能开放,并且对 30 人以下团队免费。它通过创新的方式简化研发协同工作,使敏捷开发更易于实施。并提供低成本的敏捷开发解决方案&#xff0…

aws(学习笔记第二十九课) aws cloudfront hands on

aws(学习笔记第二十九课) 使用aws cloudfront 学习内容: 什么是aws cloudfront练习使用aws cloudfront 1. 什么是aws cloudfront aws cloudfront的整体架构 这里可以看出,aws引入了edge location的概念,用户的client与edge location进行是…

写大论文的word版本格式整理,实现自动生成目录、参考文献序号、公式序号、图表序号

前情提要:最近开始写大论文,发现由于内容很多导致用老方法一个一个改的话超级麻烦,需要批量自动化处理,尤其是序号,在不断有增添删减的情况时序号手动调整很慢也容易出错,所以搞一个格式总结,记…

AWS - Redshift - 外部表读取 Parquet 文件中 timestamp 类型的数据

问题: 通过 Redshift Spectrum 功能可以读取 S3 中的文件,当读取 Parquet 文件时,如果列格式设置为 timestamp, 通过 psql 客户端读取会出现以下错误: testdb# select * from myspectrum_schema_0219.test_ns; ERROR…

单片机总结【GPIO/TIM/IIC/SPI/UART】

一、GPIO 1、概念 通用输入输出口;开发者可以根据自己的需求将其配置为输入或输出模式,以实现与外部设备进行数据交互、控制外部设备等功能。简单来说,GPIO 就像是计算机或微控制器与外部世界沟通的 “桥梁”。 2、工作模式 工作模式性质特…

25工程管理研究生复试面试问题汇总 工程管理专业知识问题很全! 工程管理复试全流程攻略 工程管理考研复试真题汇总

工程管理复试面试心里没底?别慌!学姐手把手教你怎么应对复试! 很多同学面对复试总担心踩坑,其实只要避开雷区掌握核心技巧,逆袭上岸完全有可能!这份保姆级指南帮你快速锁定重点,时间紧迫优先背…

具有整合各亚专科医学领域知识能力的AI智能体开发纲要(2025版)

整合各亚专科医学领域知识能力的AI代理的开发与研究 一、引言 1.1 研究背景 在科技飞速发展的当下,人工智能(AI)已成为推动各行业变革的关键力量,医疗领域也不例外。近年来,AI 在医疗行业的应用取得了显著进展,从医学影像诊断到疾病预测,从药物研发到个性化医疗,AI 技…

halcon 条形码、二维码识别、opencv识别

一、条形码 函数介绍 create_bar_code_model * 1.创建条码读取器的模板 * 参数一:通用参数的名称,针对条形码模型进行调整。默认值为空 * 参数二:针对条形码模型进行调整 * 参数三:条形码模型的句柄。 create_bar_code_model (…

企业级RAG开源项目分享:Quivr、MaxKB、Dify、FastGPT、RagFlow

企业级 RAG GitHub 开源项目深度分享:Quivr、MaxKB、Dify、FastGPT、RagFlow 及私有化 LLM 部署建议 随着生成式 AI 技术的成熟,检索增强生成(RAG)已成为企业构建智能应用的关键技术。RAG 技术能够有效地将大型语言模型&#xff…

游戏引擎学习第118天

仓库:https://gitee.com/mrxiao_com/2d_game_3 优化工作概述 这次我们正在进行一些非常有趣的工作,主要是对游戏进行优化。这是首次进行优化,我们正在将一个常规的标量C代码例程转换为内建指令,以便利用AIX 64位处理器的SIMD指令集进行加速…

pycharm中配置PyQt6详细教程

PyQt6 是 Qt 框架的 Python 绑定库,基于 Qt 6 开发,专为创建跨平台图形用户界面(GUI)应用程序设计。 本章教程,主要记录在pycharm中配置使用PyQt6的流程。 一、安装基础环境 在此之前,你需要提前安装好Python解释器,推荐使用anaconda创建虚拟环境。 conda create -n pyt…

Spring AOP

1.AOP概述 什么是AOP? Spring 俩大核心: Spring IoC 和 Spring AOP IoC 控制反转(把Bean的控制权交给Spring来进行管理) AOP(Aspect Oriented Programming)面向切面编程.它和面向对象编程不是互斥关系,而是面向对象编程的补充. 什么是⾯向切⾯编程呢? 切⾯就是指某⼀类特定问…

【多模态处理篇二】【深度揭秘:DeepSeek视频理解之时空注意力机制解析】

一、为啥要搞视频理解这事儿 咱先唠唠为啥视频理解这么重要哈。现在这互联网时代,视频那可是铺天盖地的。你刷短视频平台,看在线电影,玩游戏直播,到处都是视频。但是计算机它一开始可不懂视频里到底是啥意思,它看到的就是一堆像素点和声音信号。 视频理解呢,就是要让计…

Linux基本指令(三)+ 权限

文章目录 基本指令grep打包和压缩zip/unzipLinux和windows压缩包互传tar(重要)Linux和Linux压缩包互传 bcuname -r常用的热键关机外壳程序 知识点打包和压缩 Linux中的权限用户权限 基本指令 grep 1. grep可以过滤文本行 done用于标记循环的结束&#x…

DPVS-1:编译安装DPVS (ubuntu22.04)

操作系统 rootubuntu22:~# lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 22.04.3 LTS Release: 22.04 Codename: jammy rootubuntu22:~# 前置软件准备 apt install git apt install meson apt install gcc ap…