Перейти к основному содержимому
Перейти к основному содержимому

Набор данных комментариев Reddit

Этот набор данных содержит общедоступные комментарии на Reddit, охватывающие период с декабря 2005 года по март 2023 года, и включает более 14 млрд строк данных. Исходные данные находятся в формате JSON в сжатых файлах, и строки выглядят следующим образом:

Спасибо Percona за мотивацию для получения этого набора данных, который мы загрузили и храним в бакете S3.

Создание таблицы

примечание

Следующие команды были выполнены на производственной инстанции ClickHouse Cloud с минимальной памятью, установленной на уровне 720 ГБ. Чтобы запустить это на своем собственном кластере, замените default в вызове функции s3Cluster на имя вашего кластера. Если у вас нет кластера, замените функцию s3Cluster на функцию s3.

  1. Давайте создадим таблицу для данных 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

Загрузка данных

  1. Мы начнем с одного месяца данных, но если вы хотите просто вставить каждую строку - пропустите вперед к шагу 8 ниже. Следующий файл содержит 86 млн записей за декабрь 2017 года:
  1. Это займет некоторое время, в зависимости от ваших ресурсов, но когда это завершится, проверьте, все ли прошло успешно:
  1. Давайте посмотрим, сколько уникальных сабреддитов было в декабре 2017 года:

Примеры запросов

  1. Этот запрос возвращает топ-10 сабреддитов (по количеству комментариев):
  1. Вот топ-10 авторов в декабре 2017 года по количеству размещенных комментариев:

Загрузка всего набора данных

  1. Мы уже вставили данные, но начнем сначала:
  1. Этот набор данных интересный, и, похоже, мы можем найти много полезной информации, поэтому давайте вставим весь набор данных с 2005 по 2023 годы. По практическим причинам целесообразно вставлять данные по годам, начиная с...

...и заканчивая:

Если у вас нет кластера, используйте s3 вместо s3Cluster:

  1. Чтобы убедиться, что все прошло успешно, вот количество строк по годам (по состоянию на февраль 2023 года):
  1. Давайте посмотрим, сколько строк было вставлено и сколько дискового пространства использует таблица:

Обратите внимание, что сжатие дискового хранения составляет примерно 1/3 от несжатого размера:

Пример запроса - комментарии, авторы и сабреддиты по месяцам

  1. Следующий запрос показывает, сколько комментариев, авторов и сабреддитов у нас есть за каждый месяц:

Это значительный запрос, который должен обработать все 14,69 миллиарда строк, но мы все равно получаем впечатляющее время отклика (около 48 секунд):

Больше запросов

  1. Вот топ-10 сабреддитов 2022 года:
  1. Давайте посмотрим, какие сабреддиты имели наибольшее увеличение комментариев с 2018 по 2019 год:

Похоже, что мемы и подростки были очень активны на Reddit в 2019 году:

Другие запросы

  1. Еще один запрос: давайте сравним упоминания ClickHouse с другими технологиями, такими как Snowflake и Postgres. Этот запрос довольно объёмный, так как ему необходимо трижды просканировать все 14.69 миллиардов комментариев на наличие подстроки, но производительность на самом деле довольно впечатляющая. (К сожалению, пользователи ClickHouse пока не очень активны на Reddit):