亚马逊客户评价
这个数据集包含超过 1.5 亿条关于亚马逊产品的客户评价。这些数据以 snappy 压缩的 Parquet 文件形式存储在 AWS S3 中,压缩后的总大小为 49GB。让我们逐步了解如何将其插入到 ClickHouse 中。
备注
下面的查询是在 生产 实例的 ClickHouse Cloud 上执行的。有关更多信息,请参见 "Playground specifications".
加载数据集
- 在不将数据插入 ClickHouse 的情况下,我们可以直接查询它。让我们抓取一些行,以查看它们的样子:
这些行看起来像:
- 让我们定义一个名为
amazon_reviews的新MergeTree表,以在 ClickHouse 中存储这些数据:
- 以下
INSERT命令使用s3Cluster表函数,允许使用集群的所有节点并行处理多个 S3 文件。我们还使用通配符插入任何以https://datasets-documentation.s3.eu-west-3.amazonaws.com/amazon_reviews/amazon_reviews_*.snappy.parquet开头的文件:
提示
在 ClickHouse Cloud 中,集群的名称是 default。如果没有集群,将 default 更改为您集群的名称……或者使用 s3 表函数(而不是 s3Cluster)。
- 该查询的时间不长——平均约 30 万行每秒。大约 5 分钟内,您应该会看到所有行插入:
- 让我们查看一下我们的数据占用了多少空间:
原始数据大约为 70GB,但在 ClickHouse 中压缩后占用大约 30GB。
示例查询
- 让我们运行一些查询。以下是数据集中前 10 条最有帮助的评论:
备注
该查询使用了一个 projection 来加速性能。
- 这是在亚马逊上评论最多的前 10 种产品:
- 这是每个产品每月的平均评价评分(实际的 亚马逊面试问题!):
- 这是每个产品类别的投票总数。该查询速度很快,因为
product_category在主键中:
- 让我们找出在评论中出现“awful”这个词频率最高的产品。这是一项大任务——需要解析超过 1.51 亿个字符串以寻找一个单词:
注意对于如此大量数据的查询时间。结果也非常有趣!
- 我们可以再次运行相同的查询,这次在评论中搜索 awesome: