Reddit 评论数据集
这个数据集包含从2005年12月到2023年3月的公开可用Reddit评论,数据量超过140亿行。原始数据为JSON格式,存储在压缩文件中,行数据如下所示:
特别感谢Percona提供的获取该数据集的动力,我们已将其下载并存储在S3桶中。
创建表
备注
以下命令在设置最低内存为720GB的ClickHouse Cloud生产实例上执行。要在您自己的集群上运行此命令,请将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月):
- 让我们看看插入了多少行以及表使用了多少磁盘空间:
请注意,磁盘存储的压缩量约为未压缩大小的1/3:
示例查询 - 每月的评论、作者和子版块
- 以下查询显示了每个月我们有多少评论、作者和子版块:
这是一个需要处理所有146.9亿行的大查询,但我们仍然得到了不错的响应时间(大约48秒):
更多查询
- 这是2022年评论数最多的前10个子版块:
- 让我们看看哪个子版块在2018到2019年期间评论数量增长最大:
看来2019年表情包和青少年在Reddit上很活跃:
其他查询
- 还有一个查询:让我们将ClickHouse的提及与其他技术进行比较,例如Snowflake和Postgres。这个查询很大,因为它必须在146.9亿条评论中搜索三次子字符串,但性能实际上相当出色。(不幸的是,ClickHouse用户在Reddit上尚不够活跃):