Перейти к основному содержимому
Перейти к основному содержимому

Отзыв клиента Amazon

Этот набор данных содержит более 150 миллионов отзывов клиентов о продуктах Amazon. Данные находятся в сжимаемых файлах Parquet в AWS S3, общий размер которых составляет 49 ГБ (в сжатом виде). Давайте пройдем через шаги, чтобы вставить их в ClickHouse.

примечание

Запросы ниже были выполнены на Production экземпляре ClickHouse Cloud.

Загрузка набора данных

  1. Без вставки данных в ClickHouse мы можем выполнить запросы на месте. Давайте захватим несколько строк, чтобы увидеть, как они выглядят:

Строки выглядят следующим образом:

  1. Давайте определим новую таблицу MergeTree с именем amazon_reviews, чтобы хранить эти данные в ClickHouse:
  1. Следующая команда INSERT использует функцию таблицы s3Cluster, которая позволяет обрабатывать несколько файлов S3 параллельно, используя все узлы вашего кластера. Мы также используем подстановочный знак для вставки любого файла, который начинается с имени https://datasets-documentation.s3.eu-west-3.amazonaws.com/amazon_reviews/amazon_reviews_*.snappy.parquet:
подсказка

В ClickHouse Cloud имя кластера — default. Измените default на имя вашего кластера...или используйте функцию таблицы s3 (вместо s3Cluster), если у вас нет кластера.

  1. Этот запрос не занимает много времени — в среднем около 300 000 строк в секунду. Через 5 минут вы должны увидеть все строки, вставленные:
  1. Давайте посмотрим, сколько места занимают наши данные:

Исходные данные занимали около 70 ГБ, но в ClickHouse они занимают около 30 ГБ:

Примеры запросов

  1. Давайте выполним несколько запросов... вот 10 самых полезных отзывов в наборе данных:

Обратите внимание, что запрос должен обработать все 151M строк, но занимает меньше одной секунды!

  1. Вот 10 самых популярных продуктов на Amazon с наибольшим количеством отзывов:
  1. Вот средние оценки отзывов по месяцам для каждого продукта (настоящий вопрос на собеседовании в Amazon!):

Он вычисляет все месячные средние значения для каждого продукта, но мы вернули только 20 строк:

  1. Вот общее количество голосов по категориям продуктов. Этот запрос быстрый, потому что product_category находится в первичном ключе:
  1. Давайте найдем продукты, в которых слово "ужасный" встречается чаще всего в отзыве. Это большая задача — нужно проанализировать более 151M строк в поисках одного слова:

Запрос выполняется всего за 4 секунды — что впечатляет — и результаты очень интересны:

  1. Мы можем снова выполнить тот же запрос, но на этот раз будем искать великолепный в отзывах: