Паттерны хранения и обработки данных в ClickHouse / Александр Крашенинников (Badoo)

Sdílet
Vložit
  • čas přidán 26. 04. 2020
  • Приглашаем на конференцию Saint HighLoad++ 2024, которая пройдет 24 и 25 июня в Санкт-Петербурге!
    Программа, подробности и билеты по ссылке: vk.cc/cuyIqx
    --------
    --------
    Saint HighLoad++ 2019
    Тезисы и презентация:
    www.highload.ru/spb/2019/abst...
    В последние два года ClickHouse стал одним из лидирующих инструментов в задачах OLAP. Высокая производительность в совокупности с встроенными средствами масштабирования и отказоустойчивости дают широкие возможности по построению систем обработки данных. Однако при всём богатстве инструментов, есть ряд нюансов, которые стоит учитывать при проектировании хранилищ - движки хранения данных, система репликации, retention данных.
    ...
    --------
    Нашли ошибку в видео? Пишите нам на support@ontico.ru

Komentáře • 12

  • @godfreys66
    @godfreys66 Před 4 lety +5

    Очень круто! Тонны полезной информации, спасибо докладчику! Интересное решение с key-value хранением данных, вместо классической денормализации.

    • @olehdevua
      @olehdevua Před 2 lety +5

      > Интересное решение с key-value хранением данных, вместо классической денормализации.
      разве после этого CH не превращается в что то на подобии Cassandra? в чем тогда понт юзать колоночную СУБД, если она используется как key-value.

  • @alexeysokolov9397
    @alexeysokolov9397 Před 3 lety

    Очень крутой доклад, спасибо! Пойду думать что из этого применимо у нас.

  • @rostislavratushniy7713

    Крутой доклад, спасибо!
    Можно уточнить по борьбе с дубликатами из Кафки, есть некоторое непонимание. Есть таблица на кафка движке , если целевая таблица, где не должно быть дублей. Если брать вашу модель с расширение таблицы полями топик и офсет, то я не могу понять где и как делать проверку офсета.
    Цепочка такая: кафка - матвью в целевую таблицу - целевая таблица - матвью в таблицу последнего сдвига по топику - таблица топик-офсет
    Я стараюсь проверку использовать в первой матвью, но блок WITH с подзапрос не работает, так как нужно же фильтровать по топику, а клик не видит в блоке Вирт столбец _topic, а Inner join боюсь положит вставку.
    Не могли бы подсказать этот момент?
    И еще вопрос, почему не учитываются партишены?

  • @GP-ez5ms
    @GP-ez5ms Před 3 lety +3

    Вообще не понял что за деградация при > 200 таблиц. Они выбрали супердерьмовый подход и не объяснили почему. Просто > 200 таблиц начинают тормозить?

    • @Krashulya
      @Krashulya Před rokem +1

      > что за деградация при > 200 таблиц
      рост числа транзакций в секунду => рост нагрузки на ZooKeeper.
      плюс, каждая вставка тратит CPU на сортировку ввставленных данных.

  • @frvlad54
    @frvlad54 Před rokem

    К названию. А патерны и образцы -это одно и тоже?

  • @user-dt4jw3bp7g
    @user-dt4jw3bp7g Před 3 lety +10

    приятно смотреть, как уверенный в себе оратор приводит кейсы как они безграмотно используют CH

    • @egor646
      @egor646 Před 3 lety

      А что именно там безграмотно?

  • @DennisPush
    @DennisPush Před 3 lety +2

    интересно, если вы делаете сначала select max()..., а потом insert max+1 и без транзакций, как у вас получается избежать дублирования id в insert?

    • @sarbash.s
      @sarbash.s Před 3 lety +4

      Вангую там однопоточку с крупными батчами на выставку. По-любому, запись неконкурентная, иначе, вот, как Вы говорите.

    • @Krashulya
      @Krashulya Před rokem +1

      @@sarbash.s один файл обрабатывается одним читателем (по аналогии с тем, что в Kafka одну партицию всегда пасёт один процесс). Так что да - в пределах файла идёт однопоточная обработка.