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

Reddit评论数据集

该数据集包含2005年12月到2023年3月在Reddit上公开可用的评论,包含超过140亿行的数据。原始数据以JSON格式存储在压缩文件中,行的格式如下:

感谢Percona提供的获取此数据集的动机,我们已将其下载并存储在S3桶中。

创建一个表格

备注

以下命令是在ClickHouse Cloud的生产实例上执行,最少内存设置为720GB。要在自己的集群上运行此命令,将s3Cluster函数调用中的default替换为你的集群名称。如果没有集群,则将s3Cluster函数替换为s3函数。

  1. 首先,我们将为Reddit数据创建一个表:
备注

S3中的文件名以RC_YYYY-MM开头,其中YYYY-MM2005-122023-02。不过,压缩方式有几次变化,因此文件扩展名并不一致。例如:

  • 文件名最初是RC_2005-12.bz2RC_2017-11.bz2
  • 然后变为RC_2017-12.xzRC_2018-09.xz
  • 最后变为RC_2018-10.zstRC_2023-02.zst

加载数据

  1. 我们将从一月的数据开始,但如果你想简单地插入每一行,可以跳到下面的步骤8。以下文件包含来自2017年12月的8600万条记录:
  1. 这可能需要一些时间,具体取决于你的资源,但完成后请核实是否成功:
  1. 让我们看看2017年12月有多少个独特的子版块:

示例查询

  1. 该查询返回评论数量最多的前10个子版块:
  1. 这是2017年12月前10个作者(按发布的评论数排序):

加载整个数据集

  1. 我们已经插入了一些数据,但我们将重新开始:
  1. 这是一个有趣的数据集,看起来我们可以找到一些很好的信息,所以让我们插入2005年至2023年的整个数据集。出于实际考虑,从每年开始插入数据效果最好,首先是...

...最后是:

如果你没有集群,请使用s3代替s3Cluster

  1. 为了验证它是否成功,以下是每年的行数(截至2023年2月):
  1. 让我们看看插入了多少行,以及该表使用了多少磁盘空间:

注意到磁盘存储的压缩大小约为未压缩大小的三分之一:

示例查询 - 每月的评论、作者和子板块

  1. 下面的查询显示了我们每个月的评论、作者和子板块的数量:

这是一个庞大的查询,需要处理所有 146.9 亿行数据,但我们仍然获得了令人印象深刻的响应时间(约 48 秒):

更多查询

  1. 这是2022年的前10个subreddit:
  1. 让我们看看2018到2019年间评论数量增长最多的subreddit:

看起来2019年,memes和teenagers在Reddit上很忙:

其他查询

  1. 还可以再来一个查询:让我们比较一下ClickHouse与其他技术如Snowflake和Postgres的提及情况。这个查询比较大,因为它必须搜索所有146.9亿条评论三次以查找子字符串,但性能实际上相当不错。(不幸的是,ClickHouse用户在Reddit上还不够活跃):