Приведенные ниже шаги также легко подойдут для локальной установки ClickHouse. Единственное отличие — нужно использовать функцию
s3 вместо s3cluster (если только у вас не настроен cluster — в этом случае замените default на имя вашего cluster).Пошаговые инструкции
1
Исследование данных
Посмотрим, как выглядят данные. Табличная функцияs3cluster возвращает таблицу, поэтому мы можем выполнить DESCRIBE для результата:2
Создайте таблицу
На основе автоматически определённой схемы мы уточнили типы данных и добавили первичный ключ. Создайте следующую таблицу:3
Вставка данных
Следующая команда загружает записи из файлов S3 в таблицуyoutube.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 строк.title или description которых есть ClickHouse: