Перейти к основному содержанию
В ноябре 2021 года YouTube убрал публичный счетчик дизлайков у всех видео. Хотя авторы по-прежнему могут видеть число дизлайков, зрителям теперь видно только, сколько лайков получило видео.
Набор данных содержит более 4,55 миллиарда записей, поэтому не копируйте бездумно приведенные ниже команды, если ваши ресурсы не рассчитаны на такой объем. Приведенные ниже команды были выполнены на инстансе Production в ClickHouse Cloud.
Данные представлены в формате JSON, их можно скачать с archive.org. Мы также разместили эти данные в S3, чтобы их можно было быстрее загрузить в инстанс ClickHouse Cloud. Ниже описаны шаги по созданию таблицы в ClickHouse Cloud и вставке данных.
Приведенные ниже шаги также легко подойдут для локальной установки ClickHouse. Единственное отличие — нужно использовать функцию s3 вместо s3cluster (если только у вас не настроен cluster — в этом случае замените default на имя вашего cluster).

Пошаговые инструкции

1

Исследование данных

Посмотрим, как выглядят данные. Табличная функция s3cluster возвращает таблицу, поэтому мы можем выполнить DESCRIBE для результата:
ClickHouse определяет следующую схему на основе JSON‑файла:
2

Создайте таблицу

На основе автоматически определённой схемы мы уточнили типы данных и добавили первичный ключ. Создайте следующую таблицу:
3

Вставка данных

Следующая команда загружает записи из файлов S3 в таблицу youtube.
Будет вставлен большой объём данных — 4,65 миллиарда строк. Если вам не нужен весь набор данных, просто добавьте предложение LIMIT с нужным количеством строк.
Несколько замечаний о нашей команде INSERT:
  • Функция parseDateTimeBestEffortUSOrZero удобна, когда входящие поля даты могут быть в неправильном формате. Если fetch_date не удастся корректно разобрать, ему будет присвоено значение 0
  • Столбец upload_date содержит корректные даты, но в нём также встречаются строки вроде “4 hours ago”, которые, конечно, не являются корректной датой. Мы решили сохранять исходное значение в upload_date_str и пытаться разобрать его с помощью toDate(parseDateTimeBestEffortUSOrZero(upload_date::String)). Если разбор не удастся, мы просто получим 0
  • Мы использовали ifNull, чтобы избежать значений NULL в нашей таблице. Если входящее значение равно NULL, функция ifNull заменяет его на пустую строку
4

Подсчитайте количество строк

Откройте новую вкладку в SQL Console ClickHouse Cloud (или новое окно clickhouse-client) и наблюдайте, как растет счетчик. Вставка 4,56 млрд строк займет некоторое время — в зависимости от ресурсов вашего сервера. (Без какой-либо дополнительной настройки параметров это занимает около 4,5 часов.)
5

Изучение данных

После вставки данных подсчитайте, сколько дизлайков у ваших любимых видео или каналов. Давайте посмотрим, сколько видео загрузил ClickHouse:
Приведённый выше запрос выполняется так быстро, потому что мы выбрали uploader в качестве первого столбца первичного ключа, — поэтому ему пришлось обработать всего 237k строк.
Давайте посмотрим на лайки и дизлайки видео в ClickHouse:
Ответ выглядит следующим образом:
Вот поиск видео, в полях title или description которых есть ClickHouse:
Этот запрос должен обработать каждую строку, а также разобрать данные в двух строковых столбцах. Даже в этом случае мы получаем неплохую производительность — 4,15 млн строк/с:
Результаты будут выглядеть так:

Вопросы

Если кто-то отключает комментарии, уменьшает ли это вероятность того, что люди действительно будут нажимать «Нравится» или «Не нравится»?

Когда комментарии отключены, чаще ли люди ставят «Нравится» или «Не нравится», чтобы выразить своё отношение к видео?
Похоже, что включение комментариев связано с более высоким уровнем вовлеченности.

Как менялось количество видео с течением времени — примечательные события?

Заметен всплеск числа авторов, загружающих видео, примерно в период COVID-19.

Больше субтитров с течением времени и когда именно

С развитием технологий распознавания речи создавать субтитры для видео стало проще, чем когда-либо; когда YouTube добавил автоматические субтитры в конце 2009 года, произошёл ли тогда скачок?
Результаты показывают всплеск в 2009 году. По-видимому, в то время YouTube убирал функцию субтитров от сообщества, которая позволяла загружать субтитры для чужих видео. Это вызвало очень успешную кампанию, побудившую авторов добавлять субтитры к своим видео для слабослышащих и глухих зрителей.

Лидеры по загрузкам в динамике

Как меняется доля лайков с ростом числа просмотров?

Как распределяются просмотры?

Последнее изменение 3 июля 2026 г.