Набор данных комментариев 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 ниже. Следующий файл содержит 86 миллионов записей за декабрь 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):