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

Датасет YouTube с дизлайками

В ноябре 2021 года YouTube убрал публичное количество дизлайков со всех своих видео. Хотя создатели все еще могут видеть количество дизлайков, зрители могут увидеть только количество полученных видео лайков.

к сведению

Датасет содержит более 4.55 миллиарда записей, так что будьте осторожны, просто копируя и вставляя команды ниже, если ваши ресурсы не способны справиться с таким объемом. Команды ниже были выполнены на инстансе Production ClickHouse Cloud.

Данные находятся в формате JSON и их можно скачать с archive.org. Мы сделали эти же данные доступными в S3, чтобы их можно было более эффективно загрузить в инстанс ClickHouse Cloud.

Вот шаги для создания таблицы в ClickHouse Cloud и вставки данных.

примечание

Шаги ниже также легко работают на локальной установке ClickHouse. Единственное изменение будет заключаться в использовании функции s3 вместо s3cluster (если только у вас не настроен кластер — в этом случае измените default на имя вашего кластера).

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

  1. Давайте посмотрим, как выглядят данные. Функция таблицы s3cluster возвращает таблицу, поэтому мы можем DESCRIBE результат:

ClickHouse выводит следующую схему из JSON файла:

  1. На основе выведенной схемы мы очистили типы данных и добавили первичный ключ. Определите следующую таблицу:
  1. Следующая команда потоково передает записи из S3 файлов в таблицу youtube.
к сведению

Это вставляет много данных - 4.65 миллиарда строк. Если вы не хотите весь датасет, просто добавьте условие LIMIT с желаемым количеством строк.

Некоторые комментарии к нашей команде INSERT:

  • Функция parseDateTimeBestEffortUSOrZero удобна, когда входные поля даты могут быть не в правильном формате. Если fetch_date не будет правильно разобрано, оно будет установлено в 0
  • Колонка upload_date содержит действительные даты, но в ней также содержатся строки, такие как "4 часа назад" — что определенно не является действительной датой. Мы решили сохранить оригинальное значение в upload_date_str и попробовать разобрать его с помощью toDate(parseDateTimeBestEffortUSOrZero(upload_date::String)). Если разбор не удался, мы просто получаем 0
  • Мы использовали ifNull, чтобы избежать получения NULL значений в нашей таблице. Если входное значение NULL, функция ifNull устанавливает значение в пустую строку
  1. Откройте новую вкладку в SQL консоли ClickHouse Cloud (или новое окно clickhouse-client) и наблюдайте за увеличением количества. Вставка 4.56B строк займет некоторое время в зависимости от ваших ресурсов сервера. (Без каких-либо изменений в настройках это займет около 4.5 часов.)
  1. После вставки данных вы можете посчитать количество дизлайков под своими любимыми видео или каналами. Давайте посмотрим, сколько видео было загружено ClickHouse:
примечание

Запрос выше выполняется так быстро, потому что мы выбрали uploader в качестве первой колонки первичного ключа - так что ему нужно было обработать только 237k строк.

  1. Давайте посмотрим на лайки и дизлайки видео ClickHouse:

Ответ выглядит следующим образом:

  1. Вот поиск видео, в заголовке или описании которых есть ClickHouse:

Этот запрос должен обработать каждую строку и также разобрать две колонки строк. Даже в этом случае мы получаем хорошую производительность на уровне 4.15M строк/секунду:

Результаты выглядят так:

Вопросы

Если кто-то отключит комментарии, снизит ли это шанс, что кто-то действительно нажмет лайк или дизлайк?

Когда комментарии отключены, более вероятно, что люди поставят лайк или дизлайк, чтобы выразить свои чувства о видео?

Включение комментариев, похоже, коррелирует с более высоким уровнем вовлеченности.

Как изменяется количество видео с течением времени - заметные события?

На графике заметен всплеск загрузчиков около COVID.

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

С достижениями в области распознавания речи, создавать субтитры для видео стало легче, чем когда-либо, YouTube добавил автоматические субтитры в конце 2009 года - был ли тогда скачок?

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

Топ загрузчиков со временем

Как изменяется соотношение лайков, когда увеличиваются просмотры?

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