跳到主要内容
跳到主要内容

YouTube 视频不喜欢的数据集

在2021年11月,YouTube 从所有视频中删除了公开的 不喜欢 数量。虽然创作者仍可以看到不喜欢的数量,但观众只能看到视频收到的 喜欢 数量。

信息

该数据集包含超过 45.5 亿条记录,因此在没有足够资源处理该类型数据时,请小心直接复制和粘贴下面的命令。这些命令是在 生产 实例的 ClickHouse Cloud 上执行的。

数据为 JSON 格式,可以从 archive.org 下载。我们已经将相同的数据提供在 S3 中,以便能够更有效地下载到 ClickHouse Cloud 实例中。

以下是在 ClickHouse Cloud 中创建表并插入数据的步骤。

备注

下面的步骤同样适用于本地安装的 ClickHouse。唯一的变化是使用 s3 函数而不是 s3cluster(除非您配置了集群 - 在这种情况下,将 default 更改为您的集群名称)。

分步说明

  1. 让我们来看一下数据的样子。 s3cluster 表函数返回一个表,因此我们可以 DESCRIBE 结果:

ClickHouse 从 JSON 文件推断出以下模式:

  1. 根据推断出的模式,我们整理了数据类型并添加了主键。定义以下表:
  1. 以下命令将记录从 S3 文件流式传输到 youtube 表中。
信息

这将插入大量数据 - 46.5 亿行。如果您不想要整个数据集,简单地添加一个带有所需行数的 LIMIT 子句即可。

关于我们的 INSERT 命令的一些说明:

  • parseDateTimeBestEffortUSOrZero 函数在输入日期字段可能没有正确格式时非常方便。如果 fetch_date 无法被正确解析,将被设置为 0
  • upload_date 列包含有效日期,但也包含像 "4 hours ago" 这样的字符串 - 这显然不是有效日期。我们决定在 upload_date_str 中存储原始值,并尝试使用 toDate(parseDateTimeBestEffortUSOrZero(upload_date::String)) 来解析它。如果解析失败,我们只会得到 0
  • 我们使用了 ifNull 以避免表中出现 NULL 值。如果输入值为 NULLifNull 函数将其设置为空字符串。
  1. 在 ClickHouse Cloud 的 SQL 控制台中打开一个新标签(或新的 clickhouse-client 窗口),观察计数的增加。插入 45.6 亿行需要一些时间,具体取决于您的服务器资源。(不进行任何设置调整,大约需要 4.5 小时。)
  1. 数据插入完成后,继续计算您喜欢的视频或频道的不喜欢数量。让我们看看 ClickHouse 上传了多少个视频:
备注

上述查询运行如此快速,因为我们选择 uploader 作为主键的第一列 - 所以只需要处理 237k 行。

  1. 让我们查看 ClickHouse 视频的喜欢和不喜欢:

响应看起来像:

  1. 这是在 titledescription 字段中搜索 ClickHouse 的视频:

此查询必须处理每一行,同时还要解析两个字符串列。即便如此,我们在 415 万行/秒的速度下获得了良好的性能:

结果看起来像:

问题

如果某人禁用了评论,是否降低了人们实际点击喜欢或不喜欢的机会?

当评论被禁用时,人们是否更有可能通过喜欢或不喜欢来表达他们对视频的感受?

启用评论似乎与更高的参与率相关。

视频数量随时间变化 - 显著事件?

可见上传者在COVID期间的激增 非常明显

随时间推移更加多的字幕以及何时

随着语音识别的进步,创建字幕变得比以往任何时候都容易,YouTube 在 2009 年底增加了自动字幕功能 - 当时是跃升的开始吗?

数据结果显示 2009 年出现了激增。显然,在那时,YouTube 正在删除他们的社区字幕功能,这允许您为其他人的视频上传字幕。这促使了一个非常成功的活动,鼓励创作者为听障和耳聋观众的视频添加字幕。

随时间推移的最高上传者

随着观看次数增加,喜欢比例如何变化?

观看次数是如何分配的?