Набор данных комментариев Reddit
Этот набор данных содержит общедоступные комментарии на Reddit, начиная с декабря 2005 года и заканчивая мартом 2023 года, и включает в себя более 14 миллиардов строк данных. Исходные данные находятся в формате JSON в сжатых файлах, и строки выглядят следующим образом:
Благодарности Percona за мотивировку для загрузки этого набора данных, который мы скачали и храним в S3-ведре.
Создание таблицы
Следующие команды были выполнены на производственном экземпляре ClickHouse Cloud с минимальным объемом памяти, установленным на 720 ГБ. Чтобы запустить это в своем кластере, замените default
в вызове функции s3Cluster
на имя вашего кластера. Если у вас нет кластера, замените функцию s3Cluster
на функцию s3
.
- Давайте создадим таблицу для данных Reddit:
Имена файлов в S3 начинаются с RC_YYYY-MM
, где YYYY-MM
идет от 2005-12
до 2023-02
. Однако сжатие немного меняется несколько раз, поэтому расширения файлов не являются последовательными. Например:
- имена файлов изначально
RC_2005-12.bz2
доRC_2017-11.bz2
- затем они выглядят как
RC_2017-12.xz
доRC_2018-09.xz
- и, наконец,
RC_2018-10.zst
доRC_2023-02.zst
Загрузка данных
- Мы начнем с одного месяца данных, но если вы хотите просто вставить каждую строку - пропустите вперед к шагу 8 ниже. Следующий файл содержит 86M записей с декабря 2017 года:
- Это займет некоторое время в зависимости от ваших ресурсов, но когда это будет сделано, проверьте, что это сработало:
- Давайте посмотрим, сколько уникальных сабреддитов было в декабре 2017 года:
Примеры запросов
- Этот запрос возвращает 10 лучших сабреддитов (по количеству комментариев):
- Вот 10 лучших авторов в декабре 2017 года, по количеству опубликованных комментариев:
Загрузка всего набора данных
- Мы уже вставили некоторые данные, но начнем заново:
- Этот набор данных интересный, и похоже, что мы можем найти отличную информацию, так что давайте вставим весь набор данных с 2005 по 2023 год. По практическим причинам лучше вставлять данные по годам, начиная с...
...и заканчивая:
Если у вас нет кластера, используйте s3
вместо s3Cluster
:
- Чтобы проверить, что все сработало, вот количество строк по годам (по состоянию на февраль 2023 года):
- Давайте посмотрим, сколько строк было вставлено и сколько дискового пространства использует таблица:
Обратите внимание, что сжатие дискового хранилища составляет около 1/3 от несжатого размера:
Пример запроса - комментарии, авторы и сабреддиты по месяцам
- Следующий запрос показывает, сколько комментариев, авторов и сабреддитов у нас есть за каждый месяц:
Это значительный запрос, который должен обработать все 14.69 миллиардов строк, но мы все равно получаем впечатляющее время отклика (около 48 секунд):
Больше запросов
- Вот 10 самых популярных сабреддитов 2022 года:
- Давайте посмотрим, какие сабреддиты показали наибольший рост комментариев с 2018 по 2019 год:
Похоже, что мемы и подростки были активны на Reddit в 2019 году:
Другие запросы
- Еще один запрос: давайте сравним упоминания ClickHouse с другими технологиями, такими как Snowflake и Postgres. Этот запрос довольно громоздкий, потому что он должен трижды просмотреть все 14.69 миллиардов комментариев для поиска подстроки, но производительность действительно впечатляющая. (К сожалению, пользователи ClickHouse пока не очень активны на Reddit):