Паттерны хранения и обработки данных в ClickHouse / Александр Крашенинников (Badoo)
ฝัง
- เผยแพร่เมื่อ 5 ก.ย. 2024
- Приглашаем на конференцию Saint HighLoad++ 2024, которая пройдет 24 и 25 июня в Санкт-Петербурге!
Программа, подробности и билеты по ссылке: vk.cc/cuyIqx
--------
--------
Saint HighLoad++ 2019
Тезисы и презентация:
www.highload.r...
В последние два года ClickHouse стал одним из лидирующих инструментов в задачах OLAP. Высокая производительность в совокупности с встроенными средствами масштабирования и отказоустойчивости дают широкие возможности по построению систем обработки данных. Однако при всём богатстве инструментов, есть ряд нюансов, которые стоит учитывать при проектировании хранилищ - движки хранения данных, система репликации, retention данных.
...
--------
Нашли ошибку в видео? Пишите нам на support@ontico.ru
Очень круто! Тонны полезной информации, спасибо докладчику! Интересное решение с key-value хранением данных, вместо классической денормализации.
> Интересное решение с key-value хранением данных, вместо классической денормализации.
разве после этого CH не превращается в что то на подобии Cassandra? в чем тогда понт юзать колоночную СУБД, если она используется как key-value.
Очень крутой доклад, спасибо! Пойду думать что из этого применимо у нас.
Вообще не понял что за деградация при > 200 таблиц. Они выбрали супердерьмовый подход и не объяснили почему. Просто > 200 таблиц начинают тормозить?
> что за деградация при > 200 таблиц
рост числа транзакций в секунду => рост нагрузки на ZooKeeper.
плюс, каждая вставка тратит CPU на сортировку ввставленных данных.
приятно смотреть, как уверенный в себе оратор приводит кейсы как они безграмотно используют CH
А что именно там безграмотно?
Крутой доклад, спасибо!
Можно уточнить по борьбе с дубликатами из Кафки, есть некоторое непонимание. Есть таблица на кафка движке , если целевая таблица, где не должно быть дублей. Если брать вашу модель с расширение таблицы полями топик и офсет, то я не могу понять где и как делать проверку офсета.
Цепочка такая: кафка - матвью в целевую таблицу - целевая таблица - матвью в таблицу последнего сдвига по топику - таблица топик-офсет
Я стараюсь проверку использовать в первой матвью, но блок WITH с подзапрос не работает, так как нужно же фильтровать по топику, а клик не видит в блоке Вирт столбец _topic, а Inner join боюсь положит вставку.
Не могли бы подсказать этот момент?
И еще вопрос, почему не учитываются партишены?
К названию. А патерны и образцы -это одно и тоже?
интересно, если вы делаете сначала select max()..., а потом insert max+1 и без транзакций, как у вас получается избежать дублирования id в insert?
Вангую там однопоточку с крупными батчами на выставку. По-любому, запись неконкурентная, иначе, вот, как Вы говорите.
@@sarbash.s один файл обрабатывается одним читателем (по аналогии с тем, что в Kafka одну партицию всегда пасёт один процесс). Так что да - в пределах файла идёт однопоточная обработка.