Приведенные ниже запросы были выполнены на инстансе Production в ClickHouse Cloud. Подробнее см. в разделе
“Характеристики Песочницы ClickHouse”.
Загрузка набора данных
- Не выполняя вставку данных в ClickHouse, мы можем выполнять запросы к ним напрямую. Давайте выберем несколько строк, чтобы посмотреть, как они выглядят:
- Давайте создадим новую таблицу
MergeTreeс именемamazon_reviewsдля хранения этих данных в ClickHouse:
- Следующая команда
INSERTиспользует табличную функциюs3Cluster, которая позволяет параллельно обрабатывать несколько файлов S3, задействуя все узлы вашего кластера. Мы также используем подстановочный знак, чтобы выполнить вставку всех файлов, имена которых начинаются сhttps://datasets-documentation.s3.eu-west-3.amazonaws.com/amazon_reviews/amazon_reviews_*.snappy.parquet:
- Этот запрос выполняется быстро — в среднем около 300 000 строк в секунду. Примерно через 5 минут вы должны увидеть, что все строки вставлены:
- Давайте посмотрим, сколько места занимают наши данные:
Примеры запросов
- Выполним несколько запросов. Вот 10 самых полезных отзывов в наборе данных:
В этом запросе используется проекция для повышения производительности.
- Вот 10 товаров на Amazon с наибольшим числом отзывов:
- Вот средние оценки отзывов по месяцам для каждого товара (реальный вопрос с собеседования в Amazon!):
- Вот общее число голосов по каждой категории товаров. Этот запрос работает быстро, потому что
product_categoryвходит в primary key:
- Найдём товары, в отзывах к которым слово “awful” встречается чаще всего. Это ресурсоёмкая задача: нужно разобрать более 151 млн строк в поисках одного слова:
runnable
- Мы можем снова выполнить тот же запрос, но на этот раз будем искать awesome в отзывах:
runnable