亚马逊客户评价
此数据集包含超过 1.5 亿条亚马逊产品的客户评价。数据以 snappy 压缩的 Parquet 文件形式存储在 AWS S3 中,总大小为 49 GB(压缩后)。让我们逐步了解如何将其插入到 ClickHouse 中。
备注
以下查询是在 生产 实例的 ClickHouse Cloud 上执行的。
加载数据集
- 在不将数据插入 ClickHouse 的情况下,我们可以就地查询它。让我们获取一些行,以便看看它们的样子:
行的样子如下:
- 让我们定义一个新的
MergeTree
表amazon_reviews
来存储这些数据到 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
)。
- 这个查询不会花太长时间——每秒大约 300,000 行。大约 5 分钟后,您应该会看到所有行被插入:
- 让我们看看我们的数据占用了多少空间:
原始数据约为 70G,但在 ClickHouse 中压缩后仅占用约 30G:
示例查询
- 让我们运行一些查询……以下是数据集中最有帮助的前10条评论:
注意这个查询需要处理全部 151M 行,但耗时不到一秒!
- 以下是 Amazon 上评论最多的前10款产品:
- 以下是每个产品每个月的平均评论评分(实际上是 Amazon 职位面试问题!):
它计算了每个产品的所有月平均值,但我们只返回了 20 行:
- 下面是每个产品类别的总投票数。这个查询快速,因为
product_category
在主键中:
- 让我们找到在评论中 "awful" 一词出现频率最高的产品。这是一项大任务 - 需要解析超过 151M 字符串查找单一单词:
这个查询只花了 4 秒 - 非常令人印象深刻 - 结果也很有趣:
- 我们可以再运行相同的查询,只不过这次我们在评论中搜索 awesome: