Reddit评论数据集
该数据集包含2005年12月到2023年3月在Reddit上公开可用的评论,包含超过140亿行的数据。原始数据以JSON格式存储在压缩文件中,行的格式如下:
感谢Percona提供的获取此数据集的动机,我们已将其下载并存储在S3桶中。
创建一个表格
备注
以下命令是在ClickHouse Cloud的生产实例上执行,最少内存设置为720GB。要在自己的集群上运行此命令,将s3Cluster
函数调用中的default
替换为你的集群名称。如果没有集群,则将s3Cluster
函数替换为s3
函数。
- 首先,我们将为Reddit数据创建一个表:
备注
S3中的文件名以RC_YYYY-MM
开头,其中YYYY-MM
从2005-12
到2023-02
。不过,压缩方式有几次变化,因此文件扩展名并不一致。例如:
- 文件名最初是
RC_2005-12.bz2
到RC_2017-11.bz2
- 然后变为
RC_2017-12.xz
到RC_2018-09.xz
- 最后变为
RC_2018-10.zst
到RC_2023-02.zst
加载数据
- 我们将从一月的数据开始,但如果你想简单地插入每一行,可以跳到下面的步骤8。以下文件包含来自2017年12月的8600万条记录:
- 这可能需要一些时间,具体取决于你的资源,但完成后请核实是否成功:
- 让我们看看2017年12月有多少个独特的子版块:
示例查询
- 该查询返回评论数量最多的前10个子版块:
- 这是2017年12月前10个作者(按发布的评论数排序):
加载整个数据集
- 我们已经插入了一些数据,但我们将重新开始:
- 这是一个有趣的数据集,看起来我们可以找到一些很好的信息,所以让我们插入2005年至2023年的整个数据集。出于实际考虑,从每年开始插入数据效果最好,首先是...
...最后是:
如果你没有集群,请使用s3
代替s3Cluster
:
- 为了验证它是否成功,以下是每年的行数(截至2023年2月):
- 让我们看看插入了多少行,以及该表使用了多少磁盘空间:
注意到磁盘存储的压缩大小约为未压缩大小的三分之一:
示例查询 - 每月的评论、作者和子板块
- 下面的查询显示了我们每个月的评论、作者和子板块的数量:
这是一个庞大的查询,需要处理所有 146.9 亿行数据,但我们仍然获得了令人印象深刻的响应时间(约 48 秒):
更多查询
- 这是2022年的前10个subreddit:
- 让我们看看2018到2019年间评论数量增长最多的subreddit:
看起来2019年,memes和teenagers在Reddit上很忙:
其他查询
- 还可以再来一个查询:让我们比较一下ClickHouse与其他技术如Snowflake和Postgres的提及情况。这个查询比较大,因为它必须搜索所有146.9亿条评论三次以查找子字符串,但性能实际上相当不错。(不幸的是,ClickHouse用户在Reddit上还不够活跃):