Набор данных YouTube о дизлайках
В ноябре 2021 года YouTube убрал публичный дизлайк со всех своих видео. Хотя авторы по-прежнему могут видеть количество дизлайков, зрители могут только узнать, сколько видео получило лайков.
В наборе данных более 4.55 миллиардов записей, поэтому будьте осторожны, просто копируя и вставляя команды ниже, если ваши ресурсы не могут справиться с таким объемом. Команды ниже были выполнены на Production экземпляре ClickHouse Cloud.
Данные находятся в формате JSON и могут быть загружены с archive.org. Мы предоставили эти же данные в S3, чтобы их можно было более эффективно загрузить в экземпляр ClickHouse Cloud.
Вот шаги для создания таблицы в ClickHouse Cloud и вставки данных.
Шаги ниже также легко сработают на локальной установке ClickHouse. Единственное изменение будет заключаться в использовании функции s3
, вместо s3cluster
(если у вас нет настроенного кластера - в этом случае замените default
на имя вашего кластера).
Пошаговые инструкции
- Давайте посмотрим, как выглядят данные. Функция таблицы
s3cluster
возвращает таблицу, так что мы можемDESCRIBE
результат:
ClickHouse извлек следующую схему из JSON файла:
- На основе извлеченной схемы, мы очистили типы данных и добавили первичный ключ. Определите следующую таблицу:
- Следующая команда передает записи из 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
устанавливает значение в пустую строку
- Откройте новую вкладку в SQL Console ClickHouse Cloud (или новое окно
clickhouse-client
) и следите, как увеличивается счетчик. Вставка 4.56B строк займет некоторое время в зависимости от ресурсов вашего сервера. (Без каких-либо изменений в настройках это занимает около 4.5 часов.)
- После вставки данных, вперед и посчитайте количество дизлайков ваших любимых видео или каналов. Давайте посмотрим, сколько видео было загружено ClickHouse:
Запрос выше выполняется так быстро, потому что мы выбрали uploader
в качестве первого столбца первичного ключа - так что ему пришлось обработать только 237к строк.
- Давайте посмотрим на лайки и дизлайки видео ClickHouse:
Ответ выглядит так:
- Вот запрос на видео с ClickHouse в полях
title
илиdescription
:
Этот запрос должен обработать каждую строку и также разобрать два столбца строк. Даже в этом случае мы получаем приличную производительность на уровне 4.15M строк/сек:
Результаты выглядят так:
Вопросы
Если кто-то отключает комментарии, снижает ли это вероятность того, что кто-то нажмет "лайк" или "дизлайк"?
Когда комментирование отключено, в большей степени ли люди ставят лайки или дизлайки, чтобы выразить свои чувства по поводу видео?
Включение комментариев, похоже, связано с более высокой степенью вовлеченности.
Как меняется количество видео с течением времени - значимые события?
Всплеск числа загрузчиков вокруг COVID хорошо заметен.
Больше субтитров с течением времени и когда
С развитием распознавания речи стало проще создавать субтитры для видео, и YouTube добавил авто-капционирование в конце 2009 года - это был скачок?
Результаты данных показывают всплеск в 2009 году. По всей видимости, в это время YouTube удаляла свою функцию общественных субтитров, которая позволяла загружать субтитры для видео других людей. Это привело к очень успешной кампании по добавлению субтитров в видео для людей с нарушениями слуха и глухих зрителей.