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

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

Этот набор данных содержит более 150 миллионов отзывов клиентов о продуктах Amazon. Данные хранятся в сжатых с помощью snappy файлах формата 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. Мы можем выполнить тот же запрос снова, за исключением того, что на этот раз мы ищем замечательный в отзывах: