Отзыв клиента Amazon
Этот набор данных содержит более 150 миллионов отзывов клиентов о продуктах Amazon. Данные находятся в файлах Parquet сжатых с помощью snappy в AWS S3, общий размер которых составляет 49 ГБ (после сжатия). Давайте пройдемся по шагам, чтобы вставить его в ClickHouse.
Запросы ниже были выполнены на Production экземпляре 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 минут вы должны увидеть все строки вставленными:
- Давайте посмотрим, сколько места занимают наши данные:
Оригинальные данные занимали около 70 ГБ, но сжаты в ClickHouse они занимают около 30 ГБ:
Примеры запросов
- Давайте запустим несколько запросов... вот 10 наиболее полезных отзывов в наборе данных:
Обратите внимание, что запрос должен обработать все 151M строк, но занимает менее одной секунды!
- Вот 10 лучших продуктов на Amazon с наибольшим количеством отзывов:
- Вот средние рейтинги отзывов за месяц для каждого продукта (фактический вопрос на собеседовании Amazon!) :
Он вычисляет все средние значения за месяц для каждого продукта, но мы вернули только 20 строк:
- Вот общее количество голосов по категориям продуктов. Этот запрос выполняется быстро, потому что
product_category
находится в первичном ключе:
- Давайте найдем продукты, в отзывах о которых слово "ужасный" встречается чаще всего. Это большая задача - необходимо проанализировать более 151M строк в поисках единственного слова:
Запрос выполняется всего за 4 секунды - это впечатляюще - и результаты можно интересно почитать:
- Мы можем запустить тот же запрос снова, только на этот раз мы ищем потрясающее в отзывах: