Amazon 客户评论
该数据集包含超过 1.5 亿条 Amazon 商品的客户评论。数据以存储在 AWS S3 中的 snappy 压缩 Parquet 文件形式提供,压缩后总大小为 49GB。下面我们逐步演示如何将其导入 ClickHouse。
注意
下面的查询是在 Production 环境的 ClickHouse Cloud 实例上执行的。更多信息请参阅 "Playground 规格说明"。
加载数据集
- 在不将数据插入 ClickHouse 的情况下,我们可以直接在原处对其进行查询。先取出几行数据,看看它们的样子:
这些行如下所示:
- 让我们在 ClickHouse 中定义一个名为
amazon_reviews的新MergeTree表来存储这些数据:
- 下面的
INSERT命令使用了s3Cluster表函数,它可以利用集群中所有节点并行处理多个 S3 文件。我们还使用通配符来插入所有名称以https://datasets-documentation.s3.eu-west-3.amazonaws.com/amazon_reviews/amazon_reviews_*.snappy.parquet开头的文件:
提示
在 ClickHouse Cloud 中,集群名称为 default。请将 default 更改为你的集群名称……或者如果你没有集群,可以使用 s3 表函数(而不是 s3Cluster)。
- 该查询执行时间很短——平均每秒大约处理 300,000 行数据。大约 5 分钟内你就应该能看到所有行都已插入:
- 查看数据占用的空间大小:
原始数据约为 70GB,在 ClickHouse 中压缩后仅占约 30GB。
示例查询
- 现在来运行一些查询。下面是数据集中最有帮助的前 10 条评论:
注意
此查询使用 projection 来提升性能。
- 以下是在 Amazon 上评论数最多的前 10 款产品:
- 以下是每个产品每个月的平均评论评分(这是一道真实的 Amazon 求职面试题!):
- 以下是每个产品类别的总投票数。该查询速度很快,因为
product_category是主键的一部分:
- 让我们查找在评论中 "awful" 这个单词出现最频繁的产品。这是一个很大的任务——需要解析超过 1.51 亿个字符串,只为查找这一个单词:
注意观察针对如此大规模数据的查询耗时。查询结果本身读起来也很有趣!
- 我们可以再次运行相同的查询,不过这一次在评论中搜索 awesome: