视频网站的测试数据,用 Hive 真挺方便的。你只要搞懂它怎么用 SQL 跑在 Hadoop 上,多大数据问题就都能迎刃而解。这个实战项目主要就是围绕一个叫chbVideoOut的文件展开,里面是用户行为日志、视频 ID、观看时间等等,格式比较常见,CSV 那一套。

先建表,定义好字段结构,再用LOAD DATA命令把数据喂进去,嗯,几步搞定。比如你想看看谁的视频最受欢迎,直接一条GROUP BY配合ORDER BY的 SQL 就行,响应也快,代码也简单。

而且 Hive 支持分区,大文件香。按日期分区能省不少查询时间,像这样:

CREATE TABLE video_views_partitioned (
  userId INT,
  videoId INT,
  watchTime INT
) PARTITIONED BY (date DATE)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ',';

加个分区,指定文件路径,再LOAD DATA一下,查询范围缩小多,效率提升不少。你也可以建个视图,把常用的逻辑抽出来,比如用户总观看时间,后面要用就方便。

建议你先用本地 CSV 文件练练手,等熟练了再上 HDFS 环境也不迟。如果你对 Hive 刚上手,又想实战演练下,这套视频站点的测试数据挺合适的,SQL 风格、分区策略都能练到位。