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

Reddit 评论数据集

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

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

创建表

备注

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

  1. 让我们为Reddit数据创建一个表:
备注

S3中的文件名以RC_YYYY-MM开头,YYYY-MM的范围从2005-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/3:

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

  1. 以下查询显示了每个月我们有多少评论、作者和子版块:

这是一个需要处理所有146.9亿行的大查询,但我们仍然得到了不错的响应时间(大约48秒):

更多查询

  1. 这是2022年评论数最多的前10个子版块:
  1. 让我们看看哪个子版块在2018到2019年期间评论数量增长最大:

看来2019年表情包和青少年在Reddit上很活跃:

其他查询

  1. 还有一个查询:让我们将ClickHouse的提及与其他技术进行比较,例如Snowflake和Postgres。这个查询很大,因为它必须在146.9亿条评论中搜索三次子字符串,但性能实际上相当出色。(不幸的是,ClickHouse用户在Reddit上尚不够活跃):