Случайно наткнулся на канал, и офигел от количества и качества материалов. У меня как раз задача - верхнеуровнево ознакомиться с разными технологиями, и у вас на канале почти все что мне нужно есть. Причем в доступной форме и с ссылками на референтные материалы. Спасибо за вашу работу!
Качество? Разбор запроса к таблице (3-я минута). where color=543, автор читает 542; ... 2. найти колонку с именем type и её значение, когда по этому запросу нужно найти колонку с именем color. На этом просмотр видео закончил. Качество?
@@da_volkov причём тут, что видео "обзорное"? Человек взялся публично рассказать о неких вещах, и стал сыпаться на ошибках с самого начала. И право предъявлять за ошибки возникает как раз по факту публичности. И хамить вот не надо.
Хорошая разработка, заточенная под решение конкретных задач. В принципе так и должен создаваться софт. А когда пытаешься получить все и сразу, то обычно ничего не выходит. Считаю что разработчики яндекса молодцы.
В недостатки можно еще добавить проблемв с join-ами таблиц. Если данных много и они не помещаются в памяти то запрос упадет с ошибкой. Мы решили эту проблему с помощью разделения одрого запроса на N запросов, каждый из которых обрабатывает часть данных. Например есть таблица клиентов и таблица их заказов. В каждой из таблиц есть номер телефона клиента и нужно сделать join по номеру телефона. Если попытаться соединить сразу весь набор данных то запрос упадет из-за недостатка памяти. Но можно сначала сдрлать join для телефонов попадающих под условие something_hash(phone_number)%6 = 0, затем 1,...5. После чего объединить данные. А еще лучше явно указывать извлекаемые поля и не использовать звездочку в select. Оитимизатор запроса в clickhouse гораздо более простой чем в oracle, postgresql, поэтому разработчик сам должен состаалять эффективные запросы.
3:38 тот факт, что столбцы отсортированы открывает возможность бинарного поиска по столбцу, а он работает очень быстро. Раз значения отсортированы, значит добавление в таблицу строки может быть медленным, если только данные физически на диске тоже хранятся в отсортированом виде.
Видео супер, если бы ты сделал аналогично про Кафка коннект (дебезиум допустим), было бы замечательное продолжение темы с кайфкой) про CDC и Реал-тайм обработка данных
Использую на работе. Действительно большие объемы обрабатывает просто с космической скоростью. Типа статы и фильтров на ней. А вот с единичными записями, обновлением и удалением (через мутации) тут все тяжко. Приходиться манипулировать
Можно вопрос? Как организована операция поиска, что поиск одной строки займет больше времени чем поиск сотни строк сразу? В чем принцип работы такого поиска? Почему по первой же колонке нельзя найти номер строки и вывести из всех колонок искомый номер? И почему 100 строк почему-то быстрее работает?
А можно для непрофильных специалистов объяснить, как столбцовая СУБД выдаёт в результате строку, если все столбцы хранятся отдельно? Что связывает элементы разных столбцов?
Привет Там кажется, на 2:30 ошибка, когда ты показываешь как происходит запрос к БД. Нужно колонкой ты указываешь строку, в которой значение color = 5235, но в запросе попросил color = 543 И на 3:30 ты говоришь "С цветом 542", а ищем мы цвет 543 Сорри, если душно.... Видос пушка, спасибо большое
Привет! Да не, не душно, там автор статьи, видимо, напутал, а я не сразу заметил ошибки. На суть сильно не влияет, поэтому решил оставить. Буду внимательнее, спасибо!
Ну так себе статься, про класторизированные индексы понятно , но вот самое ведь интересно не как факт указать когда не нужно использовать не класторизированные индексы, а почему .
Есть таблицы с движком buffer, есть асинхронные вставки. В каких-то случаях этого может хватить. Но в целом желательно вставлять пачками, то есть да, самому имплементить.
Есть адаптеры из коробки на уровне Clickhouse которые позволяют подключить ее напрямую к RabbitMQ/Kafka, а CH сам оттуда будет забирать на вставку. Но не уверен насколько это работает, не пробовал
В любом случае это будет не так быстро. Есть Index Scan Only, который будет читать данные только из индекса. Но как только ты добавишь в SELECT поле не из индекса или из другого индекса, операция сразу замедлится в несколько раз, потому что это будет уже Index Scan, а значит БД будет подглядывать в heap и забирать данные из оригинальной таблицы А в колоночной бд такого нет потому что она просто может посчитать byte offset для соседней колонки и сразу считать данные, без поиска
В строковых бд обычный индекс позволяет получить место хранения строки, т.е. является указателем. Перейдя по указателю получанм достап к строке, но полученная строка состоит из N полей (или по другому - колонок), и чтобы получить доступ к какому-то полю нужно прочитать все поля перед ним. В кликхаусе эти поля таблицы хранятся в отдельных отсортированных структурах, поэтому поиск по колонке очень быстрый. В строковой бд если запрос должен выполняться по всей таблице или планировщик запроса считает что запрос не получит выгоды от индекса то будет фулскан всей таблицы и на больших данных это очень медленно.
Случайно наткнулся на канал, и офигел от количества и качества материалов. У меня как раз задача - верхнеуровнево ознакомиться с разными технологиями, и у вас на канале почти все что мне нужно есть. Причем в доступной форме и с ссылками на референтные материалы. Спасибо за вашу работу!
Круто, рад! Напишите, если какую-то тему ещё хочется послушать, чего нет на канале
Качество? Разбор запроса к таблице (3-я минута). where color=543, автор читает 542; ... 2. найти колонку с именем type и её значение, когда по этому запросу нужно найти колонку с именем color.
На этом просмотр видео закончил.
Качество?
@@da_volkov причём тут, что видео "обзорное"? Человек взялся публично рассказать о неких вещах, и стал сыпаться на ошибках с самого начала. И право предъявлять за ошибки возникает как раз по факту публичности.
И хамить вот не надо.
@@da_volkov от тебя же корректностью так и прёт.
@@AlexDanilovFapsiSu 543, 542 мне кажется если бы я комент не прочёл, я бы даже не обратил внимание. =)
Только сейчас узнали, что нашу статью использовали для видео. Спасибо, что упомянули нас) Отличное видео, лайк!
Спасибо вам за отличный сурс! ♥️
Спасибо! Это лучший обзор что я видел про clickhouse!
Хорошая разработка, заточенная под решение конкретных задач. В принципе так и должен создаваться софт. А когда пытаешься получить все и сразу, то обычно ничего не выходит. Считаю что разработчики яндекса молодцы.
Большое спасибо, очень ценно для вхождения в тему и очень легко для понимания
Качественный материал, полезно для меня как для разработчика грейда Middle 👍
В недостатки можно еще добавить проблемв с join-ами таблиц. Если данных много и они не помещаются в памяти то запрос упадет с ошибкой. Мы решили эту проблему с помощью разделения одрого запроса на N запросов, каждый из которых обрабатывает часть данных. Например есть таблица клиентов и таблица их заказов. В каждой из таблиц есть номер телефона клиента и нужно сделать join по номеру телефона. Если попытаться соединить сразу весь набор данных то запрос упадет из-за недостатка памяти. Но можно сначала сдрлать join для телефонов попадающих под условие something_hash(phone_number)%6 = 0, затем 1,...5. После чего объединить данные.
А еще лучше явно указывать извлекаемые поля и не использовать звездочку в select. Оитимизатор запроса в clickhouse гораздо более простой чем в oracle, postgresql, поэтому разработчик сам должен состаалять эффективные запросы.
Круто, спасибо, интересный опыт!
Благодарю! Я врубился в отличия!
Спасибо, отличный материал
подписываюсь
Спасибо, отличная подача видео, быстро познакомился с кликхаусом
Спасибо за видео. Коммент в поддержку!
Круто, спасибо! Очень интересное видео
Найс! Сил вам и здоровья! Выжимка отличная
3:38 тот факт, что столбцы отсортированы открывает возможность бинарного поиска по столбцу, а он работает очень быстро. Раз значения отсортированы, значит добавление в таблицу строки может быть медленным, если только данные физически на диске тоже хранятся в отсортированом виде.
Спасибо, полезно! Хотелось бы такое же сжатое изложение по Apache Cassandra :)
Отличное видео!
Очень классное видео, спасибо! Очень не хватает уроков кликхауз для чайников, в Ютубе их почти нет)
Стиль прикольный выбрал)
Мэтод :)
Прэкрасный матэриал! (без сарказма, но про мэтод это вы конечно прикольно)
Спасибо!
Интересно, полезно и понятно)
спасибо! отлично рассказано!
Видео супер, если бы ты сделал аналогично про Кафка коннект (дебезиум допустим), было бы замечательное продолжение темы с кайфкой) про CDC и Реал-тайм обработка данных
2:47 в запросе поиск по столбцу color в пояснении type
автору то откуда знать как должно быть?
Большое спасибо за выпуск, было очень интересно, полезно и информативно 👍
Использую на работе. Действительно большие объемы обрабатывает просто с космической скоростью. Типа статы и фильтров на ней. А вот с единичными записями, обновлением и удалением (через мутации) тут все тяжко. Приходиться манипулировать
Хорошие ролики, спасибо!
Можно вопрос? Как организована операция поиска, что поиск одной строки займет больше времени чем поиск сотни строк сразу? В чем принцип работы такого поиска? Почему по первой же колонке нельзя найти номер строки и вывести из всех колонок искомый номер? И почему 100 строк почему-то быстрее работает?
Разве строковые базы не используют те же самые алгоритмы при индексации? PostgreSQL в частности
А можно для непрофильных специалистов объяснить, как столбцовая СУБД выдаёт в результате строку, если все столбцы хранятся отдельно? Что связывает элементы разных столбцов?
ключ есть у каждой ячейки .типа НомерСтроки
Привет
Там кажется, на 2:30 ошибка, когда ты показываешь как происходит запрос к БД. Нужно колонкой ты указываешь строку, в которой значение color = 5235, но в запросе попросил color = 543
И на 3:30 ты говоришь "С цветом 542", а ищем мы цвет 543
Сорри, если душно....
Видос пушка, спасибо большое
Привет! Да не, не душно, там автор статьи, видимо, напутал, а я не сразу заметил ошибки. На суть сильно не влияет, поэтому решил оставить. Буду внимательнее, спасибо!
@@ListenIT_channel да, сто проц не влияет, все супер понятно и очень круто изложен материал, еще раз спасибо!
Если уж душнить, то пополной)
В пункте 2 мы ищем не колонку с названием type, а колонку color и значение 543
2:33 почему по type пишите? Если color
Интересно
Палатка первой помощи на первой секунде =)
😏
сделайте пожалуйста ролик про WSDL !!!
Опа KozhinDev)) Красноярским привет
Ну так себе статься, про класторизированные индексы понятно , но вот самое ведь интересно не как факт указать когда не нужно использовать не класторизированные индексы, а почему .
Сделай видео про руководство по стилю в SQL
в clickhouse есть primary key
listen TO IT💡
Буффер вставок придется самому имплементить? На стороне КХ нет такой фичи?
Есть таблицы с движком buffer, есть асинхронные вставки. В каких-то случаях этого может хватить. Но в целом желательно вставлять пачками, то есть да, самому имплементить.
Есть адаптеры из коробки на уровне Clickhouse которые позволяют подключить ее напрямую к RabbitMQ/Kafka, а CH сам оттуда будет забирать на вставку. Но не уверен насколько это работает, не пробовал
«Пропустить колонки, которые не нужны для анализа - невозможно»
Даже если повесить на колонку индекс? Как же он тогда ускоряет поиск?)
В любом случае это будет не так быстро. Есть Index Scan Only, который будет читать данные только из индекса.
Но как только ты добавишь в SELECT поле не из индекса или из другого индекса, операция сразу замедлится в несколько раз, потому что это будет уже Index Scan, а значит БД будет подглядывать в heap и забирать данные из оригинальной таблицы
А в колоночной бд такого нет потому что она просто может посчитать byte offset для соседней колонки и сразу считать данные, без поиска
В строковых бд обычный индекс позволяет получить место хранения строки, т.е. является указателем. Перейдя по указателю получанм достап к строке, но полученная строка состоит из N полей (или по другому - колонок), и чтобы получить доступ к какому-то полю нужно прочитать все поля перед ним. В кликхаусе эти поля таблицы хранятся в отдельных отсортированных структурах, поэтому поиск по колонке очень быстрый.
В строковой бд если запрос должен выполняться по всей таблице или планировщик запроса считает что запрос не получит выгоды от индекса то будет фулскан всей таблицы и на больших данных это очень медленно.
Строка, только повернутая на 90 градусов)
Ну по сути, обычная таблица, где каждый столбец представляет собой некластеризованный индекс.
Сделайте пожалуйста про касандру
th-cam.com/video/2b4heaO3U8k/w-d-xo.html в колонке style правильные номера записей?
Как же много оговорок, это ужас какой-то. На экране одно, вслух произносится совсем другое...
542 vs 543
Fight!
На минусах сразу понятно что это создавали россиянские «гении»
Колоночные базы как технологию придумали ещё в 1969, это не новинка. А что именно смутило в минусах?
Вполне годная база, главное правильно использовать. А что вы придумали и реализовали?
Хохол детектед
Хохлятские гении в свою очередь что сделали? Пукнули в ладошку и занюхнули
Отличное видео!