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