Набор данных YouTube с дизлайками
В ноябре 2021 года YouTube удалил публичное количество дизлайков со всех своих видеороликов. Хотя создатели по-прежнему могут видеть количество дизлайков, зрители могут только видеть количество лайков, которые получил видеоролик.
Набор данных содержит более 4,55 миллиарда записей, поэтому будьте осторожны при простом копировании и вставке команд ниже, если ваши ресурсы не могут обработать такой объем данных. Команды ниже были выполнены на продакшн инстансе 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 в полях
titleилиdescription:
Этот запрос должен обработать каждую строку, а также просмотреть два столбца строк. Даже тогда мы получаем хорошую производительность 4,15 миллиона строк в секунду:
Результаты выглядят следующим образом:
Вопросы
Если кто-то отключает комментарии, понижает ли это вероятность того, что кто-то действительно нажмет лайк или дизлайк?
Когда комментарии отключены, более склонны ли люди ставить лайки или дизлайки, чтобы выразить свои чувства о видео?
Включение комментариев, похоже, коррелирует с более высокой степенью вовлеченности.
Как изменяется количество видео с течением времени - заметные события?
Пик количества загрузчиков вокруг коронавируса заметен.
Больше субтитров с течением времени и когда
С развитием распознавания речи, создание субтитров для видео стало проще, чем когда-либо. YouTube добавил автоматические субтитры в конце 2009 года - был ли скачок именно тогда?
Результаты данных показывают скачок в 2009 году. Похоже, в то время YouTube удалял свою функцию сообществ, позволяющую загружать субтитры для других видео. Это вызвало очень успешную кампанию, чтобы побудить создателей добавлять субтитры к своим видео для людей с нарушениями слуха и для глухих зрителей.