Что такое CLICKHOUSE и колоночные СУБД
В этой статье мы узнаем:
- Что такое Clickhouse
- Что такое колоночные СУБД
- Чем колоночные СУБД отличаются от обычных строковых
- Почему Clickhouse работает так быстро
- Преимущества использования Clickhouse
- Трудности при работе с Clickhouse
- Для каких проектов используется Clickhouse
- В каких сферах используется Clickhouse
- Где не нужен Clickhouse
- Советы по работе с Clickhouse
Поддержать канал разово - yoomoney.ru/to/410012243709514
Поддержать канал подпиской - boosty.to/listenit
Я.Дзен - zen.yandex.ru/listenit
Телеграм-канал - t.me/listenit_channel
События и статьи про анализ и проектирование ИТ-систем - t.me/itsysdes_events
По вопросам сотрудничества - t.me/ed_akimov
Ссылка на статью 1 - tproger.ru/articles/clickhous...
Ссылка на статью 2 - webdevblog.ru/osnovy-clickhou...
Ссылка на статью 3 - highload.today/kolonochnye-ba...
Что такое Big Data за 6 минут - • Что такое Big Data за ...
Что такое SQL и реляционные базы данных - • Что такое SQL и реляци...
Что такое NoSQL за 6 минут - • Что такое NoSQL за 6 м...
Синтаксис SQL запросов: Часть 1 - • Синтаксис SQL запросов...
Что такое SQL ИНДЕКСЫ за 10 минут - • Что такое SQL ИНДЕКСЫ ...
Что такое ELK за 10 минут - • Что такое ELK за 10 ми...
Что такое МИКРОФРОНТЕНД за 10 минут - • Что такое МИКРОФРОНТЕН...
Различия SOA и микросервисной архитектуры за 9 минут - • Различия SOA и микросе...
Компиляция и интерпретация за 10 минут - • Компиляция и интерпрет...
Что такое TypeScript за 9 минут - • Что такое TypeScript з...
Что такое Swagger и OpenAPI за 3 минуты - • Что такое Swagger и Op...
Введение в REST API за 7 минут - • Введение в REST API за...
Различия REST и SOAP за 4 минуты - • Различия REST и SOAP з...
Что такое HTTP и HTTPS за 9 минут - • Что такое HTTP и HTTPS...
Что такое TCP/IP - • Что такое TCP/IP: Объя...
Что такое прокси-сервер за 7 минут - • Что такое прокси-серве...
Что такое Kubernetes за 9 минут - • Что такое Kubernetes з...
Что такое Docker за 5 минут - • Что такое Docker за 5 ...
Что такое ETL и ELT за 10 минут - • Что такое ETL и ELT за...
Что такое CRUD за 6 минут - • Что такое CRUD за 6 минут
Что такое middleware за 7 минут - • Что такое middleware з...
Что такое идемпотентность - • Что такое идемпотентно...
Что такое ACID за 9 минут - • Что такое ACID за 9 минут
Что такое HATEOAS за 4 минуты - • Что такое HATEOAS за 4...
Что такое CI/CD - • Что такое CI/CD? Разби...
Что такое Code First подход за 4 минуты - • Что такое Code First п...
Что такое Contract First подход за 4 минуты - • Что такое Contract Fir...
Пікірлер: 59
Случайно наткнулся на канал, и офигел от количества и качества материалов. У меня как раз задача - верхнеуровнево ознакомиться с разными технологиями, и у вас на канале почти все что мне нужно есть. Причем в доступной форме и с ссылками на референтные материалы. Спасибо за вашу работу!
@ListenIT_channel
2 ай бұрын
Круто, рад! Напишите, если какую-то тему ещё хочется послушать, чего нет на канале
@AlexDanilovFapsiSu
15 күн бұрын
Качество? Разбор запроса к таблице (3-я минута). where color=543, автор читает 542; ... 2. найти колонку с именем type и её значение, когда по этому запросу нужно найти колонку с именем color. На этом просмотр видео закончил. Качество?
@da_volkov
15 күн бұрын
@@AlexDanilovFapsiSu Алекс, во первых - это обзорное видео, во вторых - вы ни копейки не заплатили автору, чтобы что-то с него требовать. Если вам что-то не нравится или вы с чем то не согласны, "закрываете вкладку и идете на***" - доходчиво объяснил? Вас насильно тут никто не держит!
@AlexDanilovFapsiSu
15 күн бұрын
@@da_volkov причём тут, что видео "обзорное"? Человек взялся публично рассказать о неких вещах, и стал сыпаться на ошибках с самого начала. И право предъявлять за ошибки возникает как раз по факту публичности. И хамить вот не надо.
@da_volkov
14 күн бұрын
@@AlexDanilovFapsiSu еще раз, вы могли в вежливой и корректной форме указать автору на ошибки в видео. Но вы начали предъявлять претензии (а в вашем комментарии звучат именно претензии), хотя вам тут никто ничего не должен. Поэтому повторю еще раз: "если вы с чем то не согласны или вам что-то не нравится - закрываете вкладку и идете на***" на другой канал / ресурс. А работу авторов канала нужно уважать, а не относиться к ней уничижительно
Хорошая разработка, заточенная под решение конкретных задач. В принципе так и должен создаваться софт. А когда пытаешься получить все и сразу, то обычно ничего не выходит. Считаю что разработчики яндекса молодцы.
Большое спасибо за выпуск, было очень интересно, полезно и информативно 👍
Спасибо! Интересно, полезно и понятно)
Только сейчас узнали, что нашу статью использовали для видео. Спасибо, что упомянули нас) Отличное видео, лайк!
@ListenIT_channel
3 ай бұрын
Спасибо вам за отличный сурс! ♥️
Круто, спасибо! Очень интересное видео
Спасибо за видео. Коммент в поддержку!
Спасибо, отличный материал подписываюсь
Большое спасибо, очень ценно для вхождения в тему и очень легко для понимания
Благодарю! Я врубился в отличия!
Спасибо, отличная подача видео, быстро познакомился с кликхаусом
спасибо! отлично рассказано!
Найс! Сил вам и здоровья! Выжимка отличная
Спасибо! Это лучший обзор что я видел про clickhouse!
Очень классное видео, спасибо! Очень не хватает уроков кликхауз для чайников, в Ютубе их почти нет)
Хорошие ролики, спасибо!
Качественный материал, полезно для меня как для разработчика грейда Middle 👍
Отличное видео!
Использую на работе. Действительно большие объемы обрабатывает просто с космической скоростью. Типа статы и фильтров на ней. А вот с единичными записями, обновлением и удалением (через мутации) тут все тяжко. Приходиться манипулировать
Сделай видео про руководство по стилю в SQL
сделайте пожалуйста ролик про WSDL !!!
2:47 в запросе поиск по столбцу color в пояснении type
Интересно
В недостатки можно еще добавить проблемв с join-ами таблиц. Если данных много и они не помещаются в памяти то запрос упадет с ошибкой. Мы решили эту проблему с помощью разделения одрого запроса на N запросов, каждый из которых обрабатывает часть данных. Например есть таблица клиентов и таблица их заказов. В каждой из таблиц есть номер телефона клиента и нужно сделать join по номеру телефона. Если попытаться соединить сразу весь набор данных то запрос упадет из-за недостатка памяти. Но можно сначала сдрлать join для телефонов попадающих под условие something_hash(phone_number)%6 = 0, затем 1,...5. После чего объединить данные. А еще лучше явно указывать извлекаемые поля и не использовать звездочку в select. Оитимизатор запроса в clickhouse гораздо более простой чем в oracle, postgresql, поэтому разработчик сам должен состаалять эффективные запросы.
@ListenIT_channel
8 ай бұрын
Круто, спасибо, интересный опыт!
Привет Там кажется, на 2:30 ошибка, когда ты показываешь как происходит запрос к БД. Нужно колонкой ты указываешь строку, в которой значение color = 5235, но в запросе попросил color = 543 И на 3:30 ты говоришь "С цветом 542", а ищем мы цвет 543 Сорри, если душно.... Видос пушка, спасибо большое
@ListenIT_channel
Жыл бұрын
Привет! Да не, не душно, там автор статьи, видимо, напутал, а я не сразу заметил ошибки. На суть сильно не влияет, поэтому решил оставить. Буду внимательнее, спасибо!
@kironpapon
Жыл бұрын
@@ListenIT_channel да, сто проц не влияет, все супер понятно и очень круто изложен материал, еще раз спасибо!
@skarfex
11 ай бұрын
Если уж душнить, то пополной) В пункте 2 мы ищем не колонку с названием type, а колонку color и значение 543
Палатка первой помощи на первой секунде =)
@ListenIT_channel
3 ай бұрын
😏
Опа KozhinDev)) Красноярским привет
Ну так себе статься, про класторизированные индексы понятно , но вот самое ведь интересно не как факт указать когда не нужно использовать не класторизированные индексы, а почему .
Буффер вставок придется самому имплементить? На стороне КХ нет такой фичи?
@seriych
10 ай бұрын
Есть таблицы с движком buffer, есть асинхронные вставки. В каких-то случаях этого может хватить. Но в целом желательно вставлять пачками, то есть да, самому имплементить.
@vladislavstepanov7591
9 ай бұрын
Есть адаптеры из коробки на уровне Clickhouse которые позволяют подключить ее напрямую к RabbitMQ/Kafka, а CH сам оттуда будет забирать на вставку. Но не уверен насколько это работает, не пробовал
Сделайте пожалуйста про касандру
listen TO IT💡
А можно для непрофильных специалистов объяснить, как столбцовая СУБД выдаёт в результате строку, если все столбцы хранятся отдельно? Что связывает элементы разных столбцов?
@heheheyhey5234
2 ай бұрын
ключ есть у каждой ячейки .типа НомерСтроки
Строка, только повернутая на 90 градусов)
в clickhouse есть primary key
542 vs 543 Fight!
«Пропустить колонки, которые не нужны для анализа - невозможно» Даже если повесить на колонку индекс? Как же он тогда ускоряет поиск?)
@vladislavstepanov7591
9 ай бұрын
В любом случае это будет не так быстро. Есть Index Scan Only, который будет читать данные только из индекса. Но как только ты добавишь в SELECT поле не из индекса или из другого индекса, операция сразу замедлится в несколько раз, потому что это будет уже Index Scan, а значит БД будет подглядывать в heap и забирать данные из оригинальной таблицы А в колоночной бд такого нет потому что она просто может посчитать byte offset для соседней колонки и сразу считать данные, без поиска
@nav6526
8 ай бұрын
В строковых бд обычный индекс позволяет получить место хранения строки, т.е. является указателем. Перейдя по указателю получанм достап к строке, но полученная строка состоит из N полей (или по другому - колонок), и чтобы получить доступ к какому-то полю нужно прочитать все поля перед ним. В кликхаусе эти поля таблицы хранятся в отдельных отсортированных структурах, поэтому поиск по колонке очень быстрый. В строковой бд если запрос должен выполняться по всей таблице или планировщик запроса считает что запрос не получит выгоды от индекса то будет фулскан всей таблицы и на больших данных это очень медленно.
Ну по сути, обычная таблица, где каждый столбец представляет собой некластеризованный индекс.
На минусах сразу понятно что это создавали россиянские «гении»
@ListenIT_channel
Жыл бұрын
Колоночные базы как технологию придумали ещё в 1969, это не новинка. А что именно смутило в минусах?
@michellesfero4068
Жыл бұрын
Вполне годная база, главное правильно использовать. А что вы придумали и реализовали?
@zorro3481
10 ай бұрын
Хохол детектед
Отличное видео!