Что такое CLICKHOUSE и колоночные СУБД
HTML-код
- Опубликовано: 21 сен 2024
- В этой статье мы узнаем:
- Что такое Clickhouse
- Что такое колоночные СУБД
- Чем колоночные СУБД отличаются от обычных строковых
- Почему Clickhouse работает так быстро
- Преимущества использования Clickhouse
- Трудности при работе с Clickhouse
- Для каких проектов используется Clickhouse
- В каких сферах используется Clickhouse
- Где не нужен Clickhouse
- Советы по работе с Clickhouse
Поддержать канал разово - yoomoney.ru/to...
Поддержать канал подпиской - boosty.to/list...
Я.Дзен - zen.yandex.ru/...
Телеграм-канал - t.me/listenit_...
События и статьи про анализ и проектирование ИТ-систем - t.me/itsysdes_...
По вопросам сотрудничества - t.me/ed_akimov
Ссылка на статью 1 - tproger.ru/art...
Ссылка на статью 2 - webdevblog.ru/...
Ссылка на статью 3 - highload.today...
Что такое 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...
Случайно наткнулся на канал, и офигел от количества и качества материалов. У меня как раз задача - верхнеуровнево ознакомиться с разными технологиями, и у вас на канале почти все что мне нужно есть. Причем в доступной форме и с ссылками на референтные материалы. Спасибо за вашу работу!
Круто, рад! Напишите, если какую-то тему ещё хочется послушать, чего нет на канале
Качество? Разбор запроса к таблице (3-я минута). where color=543, автор читает 542; ... 2. найти колонку с именем type и её значение, когда по этому запросу нужно найти колонку с именем color.
На этом просмотр видео закончил.
Качество?
@@da_volkov причём тут, что видео "обзорное"? Человек взялся публично рассказать о неких вещах, и стал сыпаться на ошибках с самого начала. И право предъявлять за ошибки возникает как раз по факту публичности.
И хамить вот не надо.
@@da_volkov от тебя же корректностью так и прёт.
Только сейчас узнали, что нашу статью использовали для видео. Спасибо, что упомянули нас) Отличное видео, лайк!
Спасибо вам за отличный сурс! ♥️
Хорошая разработка, заточенная под решение конкретных задач. В принципе так и должен создаваться софт. А когда пытаешься получить все и сразу, то обычно ничего не выходит. Считаю что разработчики яндекса молодцы.
Спасибо, полезно! Хотелось бы такое же сжатое изложение по Apache Cassandra :)
Спасибо! Это лучший обзор что я видел про clickhouse!
Качественный материал, полезно для меня как для разработчика грейда Middle 👍
Очень классное видео, спасибо! Очень не хватает уроков кликхауз для чайников, в Ютубе их почти нет)
Спасибо, отличный материал
подписываюсь
В недостатки можно еще добавить проблемв с join-ами таблиц. Если данных много и они не помещаются в памяти то запрос упадет с ошибкой. Мы решили эту проблему с помощью разделения одрого запроса на N запросов, каждый из которых обрабатывает часть данных. Например есть таблица клиентов и таблица их заказов. В каждой из таблиц есть номер телефона клиента и нужно сделать join по номеру телефона. Если попытаться соединить сразу весь набор данных то запрос упадет из-за недостатка памяти. Но можно сначала сдрлать join для телефонов попадающих под условие something_hash(phone_number)%6 = 0, затем 1,...5. После чего объединить данные.
А еще лучше явно указывать извлекаемые поля и не использовать звездочку в select. Оитимизатор запроса в clickhouse гораздо более простой чем в oracle, postgresql, поэтому разработчик сам должен состаалять эффективные запросы.
Круто, спасибо, интересный опыт!
3:38 тот факт, что столбцы отсортированы открывает возможность бинарного поиска по столбцу, а он работает очень быстро. Раз значения отсортированы, значит добавление в таблицу строки может быть медленным, если только данные физически на диске тоже хранятся в отсортированом виде.
Спасибо, отличная подача видео, быстро познакомился с кликхаусом
Большое спасибо, очень ценно для вхождения в тему и очень легко для понимания
Мэтод :)
Прэкрасный матэриал! (без сарказма, но про мэтод это вы конечно прикольно)
Спасибо за видео. Коммент в поддержку!
Благодарю! Я врубился в отличия!
Найс! Сил вам и здоровья! Выжимка отличная
Круто, спасибо! Очень интересное видео
спасибо! отлично рассказано!
Отличное видео!
Большое спасибо за выпуск, было очень интересно, полезно и информативно 👍
Спасибо!
Интересно, полезно и понятно)
Использую на работе. Действительно большие объемы обрабатывает просто с космической скоростью. Типа статы и фильтров на ней. А вот с единичными записями, обновлением и удалением (через мутации) тут все тяжко. Приходиться манипулировать
Привет
Там кажется, на 2:30 ошибка, когда ты показываешь как происходит запрос к БД. Нужно колонкой ты указываешь строку, в которой значение color = 5235, но в запросе попросил color = 543
И на 3:30 ты говоришь "С цветом 542", а ищем мы цвет 543
Сорри, если душно....
Видос пушка, спасибо большое
Привет! Да не, не душно, там автор статьи, видимо, напутал, а я не сразу заметил ошибки. На суть сильно не влияет, поэтому решил оставить. Буду внимательнее, спасибо!
@@ListenIT_channel да, сто проц не влияет, все супер понятно и очень круто изложен материал, еще раз спасибо!
Если уж душнить, то пополной)
В пункте 2 мы ищем не колонку с названием type, а колонку color и значение 543
2:33 почему по type пишите? Если color
2:47 в запросе поиск по столбцу color в пояснении type
автору то откуда знать как должно быть?
Хорошие ролики, спасибо!
А можно для непрофильных специалистов объяснить, как столбцовая СУБД выдаёт в результате строку, если все столбцы хранятся отдельно? Что связывает элементы разных столбцов?
ключ есть у каждой ячейки .типа НомерСтроки
Опа KozhinDev)) Красноярским привет
Палатка первой помощи на первой секунде =)
😏
сделайте пожалуйста ролик про WSDL !!!
Интересно
Сделай видео про руководство по стилю в SQL
Ну так себе статься, про класторизированные индексы понятно , но вот самое ведь интересно не как факт указать когда не нужно использовать не класторизированные индексы, а почему .
listen TO IT💡
в clickhouse есть primary key
«Пропустить колонки, которые не нужны для анализа - невозможно»
Даже если повесить на колонку индекс? Как же он тогда ускоряет поиск?)
В любом случае это будет не так быстро. Есть Index Scan Only, который будет читать данные только из индекса.
Но как только ты добавишь в SELECT поле не из индекса или из другого индекса, операция сразу замедлится в несколько раз, потому что это будет уже Index Scan, а значит БД будет подглядывать в heap и забирать данные из оригинальной таблицы
А в колоночной бд такого нет потому что она просто может посчитать byte offset для соседней колонки и сразу считать данные, без поиска
В строковых бд обычный индекс позволяет получить место хранения строки, т.е. является указателем. Перейдя по указателю получанм достап к строке, но полученная строка состоит из N полей (или по другому - колонок), и чтобы получить доступ к какому-то полю нужно прочитать все поля перед ним. В кликхаусе эти поля таблицы хранятся в отдельных отсортированных структурах, поэтому поиск по колонке очень быстрый.
В строковой бд если запрос должен выполняться по всей таблице или планировщик запроса считает что запрос не получит выгоды от индекса то будет фулскан всей таблицы и на больших данных это очень медленно.
Строка, только повернутая на 90 градусов)
Сделайте пожалуйста про касандру
Ну по сути, обычная таблица, где каждый столбец представляет собой некластеризованный индекс.
Буффер вставок придется самому имплементить? На стороне КХ нет такой фичи?
Есть таблицы с движком buffer, есть асинхронные вставки. В каких-то случаях этого может хватить. Но в целом желательно вставлять пачками, то есть да, самому имплементить.
Есть адаптеры из коробки на уровне Clickhouse которые позволяют подключить ее напрямую к RabbitMQ/Kafka, а CH сам оттуда будет забирать на вставку. Но не уверен насколько это работает, не пробовал
ruclips.net/video/2b4heaO3U8k/видео.html в колонке style правильные номера записей?
542 vs 543
Fight!
Как же много оговорок, это ужас какой-то. На экране одно, вслух произносится совсем другое...
На минусах сразу понятно что это создавали россиянские «гении»
Колоночные базы как технологию придумали ещё в 1969, это не новинка. А что именно смутило в минусах?
Вполне годная база, главное правильно использовать. А что вы придумали и реализовали?
Хохол детектед
Хохлятские гении в свою очередь что сделали? Пукнули в ладошку и занюхнули
Отличное видео!