Датасет 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 консоли ClickHouse Cloud (или новое окно
clickhouse-client
) и наблюдайте за увеличением количества. Вставка 4.56B строк займет некоторое время в зависимости от ваших ресурсов сервера. (Без каких-либо изменений в настройках это займет около 4.5 часов.)
- После вставки данных вы можете посчитать количество дизлайков под своими любимыми видео или каналами. Давайте посмотрим, сколько видео было загружено ClickHouse:
Запрос выше выполняется так быстро, потому что мы выбрали uploader
в качестве первой колонки первичного ключа - так что ему нужно было обработать только 237k строк.
- Давайте посмотрим на лайки и дизлайки видео ClickHouse:
Ответ выглядит следующим образом:
- Вот поиск видео, в заголовке или описании которых есть ClickHouse:
Этот запрос должен обработать каждую строку и также разобрать две колонки строк. Даже в этом случае мы получаем хорошую производительность на уровне 4.15M строк/секунду:
Результаты выглядят так:
Вопросы
Если кто-то отключит комментарии, снизит ли это шанс, что кто-то действительно нажмет лайк или дизлайк?
Когда комментарии отключены, более вероятно, что люди поставят лайк или дизлайк, чтобы выразить свои чувства о видео?
Включение комментариев, похоже, коррелирует с более высоким уровнем вовлеченности.
Как изменяется количество видео с течением времени - заметные события?
На графике заметен всплеск загрузчиков около COVID.
Больше субтитров со временем и когда
С достижениями в области распознавания речи, создавать субтитры для видео стало легче, чем когда-либо, YouTube добавил автоматические субтитры в конце 2009 года - был ли тогда скачок?
Результаты данных показывают скачок в 2009 году. Похоже, что в то время YouTube убирал функцию сообщества субтитров, которая позволяла загружать субтитры для видео других людей. Это привело к очень успешной кампании по добавлению субтитров к видео создателей для людей с нарушениями слуха.