Стоит ли использовать ksqlDB

 Публичный пост

Confluent поднял моду на Kafka до небывалых высот и активно продвигает базу данных, построенную поверх Kafka Streams — ksqlDB (бывший KSQL).
Стоит ли вообще ее использовать, если да, то для чего, и какие будут плюсы и минусы?

9 комментариев 👇
Violetta Danilova Бэкенд-разработчик, Java 17 марта 2021

Смотрели на KSQL(года полтора назад) в рамках подбора технологий для одного нагруженного проекта. На нагрузочном тестировании примера мы поняли, что сервер KSQL плохо масштабируется, получается, что он один на кластер и нужно какое-то очень мощное железо для него под наши задачи. Задачи были как раз в аналитике данных в потоке, приблизительно реалтайм (небольшая задержка допустима). И есть статья на хабре о минусах и плюсах kafka streams, поверх которых KSQL и работает https://m.habr.com/ru/company/maxilect/blog/537344/

  Развернуть 1 комментарий

@ViolettaDanilova, спасибо! Хорошая статья.
А вопросы долгосрочной поддержики и развития, изучали?
Насколько просто жить когда число сервисов, и топиков растет, схемы меняются, лог увеличивается?

  Развернуть 1 комментарий

@fo2rist, этап подбора этот сервис не прошел, поэтому уже именно вопросы поддержки не рассматривали. Похоже, что при небольшой или средней нагрузке жить будет нормально, так как кластер confluent kafka хорошо продуман и содержит сервисы для поддержки и снятия метрик. Мне не удалось, к сожалению, увидеть эту систему на проде, не могу поделиться опытом

  Развернуть 1 комментарий

Я пока не особо хорошо ориентируюсь, но мне кажется, пока теме ДБ изнутри наружу еще развиваться и развиваться.

КСКЛДБ ограничен.
Кафкаконнект - проебывает типы полей, когда накармливает БД данными со стрима.

Т.е. пока выходит, что надо эвенты собирать своими же сервисами самописными и писать в БД "ручками". Но со временем может это все подтянется.

  Развернуть 1 комментарий

@Foxcool, а что за проблема с полями если кратко? Или может есть линк, почитать?

  Развернуть 1 комментарий

@fo2rist, как указал выше, я слабо ориентируюсьт в проблеме. Мне шеф архитекотр показывал, что кафкаконнект в таблице постгреса накармливаемого типы полей проставляет не те, коотрые надо (стринги в основном).

Из-за необходимости много заниматься всяким кодингом, нет энергии пока глубже разбираться, но вроде сказал, что проблема известная.

Так-то не то, чтобы это было что-то прям страшное - ну пусть за запись в БД отвечает отдельный сервис, который принимает эвенты и делает запись в БД, если хотим реализовать CQRS. Но тут свои минусы и подводные камни могут быть. Вообще, заниматься такими изучениями и экспериментами было бы прям классно, но в условиях недостатка энергии и необходимости решать хуяторские задачи приходится только кукаретничать (:

  Развернуть 1 комментарий

kafka connect требует много изоленты, т.к. написан довольно хрупко:

  • любит молча останавливать перекладывание вообще всех топиков, если ему в одном что-то не понравится
  • не имеет нормального мониторинга, приходится следить за оффсетами консюмер-групп вместо нормальных метрик
  • непонятно что делать при эволюции схем

Мы пару лет трахались сначала с kafka-elasticsearch-sink, потом с kafka-clickhouse-sink, в итоге сейчас пилим свой велосипед, который будет перекладывать топики в клик.

На ksql мы смотрели, но нам он совсем не подошел, уже не вспомню почему, кажется был сильно ограничен в средствах работы с данными.

  Развернуть 1 комментарий

@strangeman, ну да, если вам понадобился кликхаус (колоночная бд для аналитики) и эластик (для полнотекстового поиска), то ksqldb тут ваще никак не поможет. Он пока слабенький и прокрывает самые простейшие запросы

  Развернуть 1 комментарий

О, кажется реализовали идею из этой статьи https://martin.kleppmann.com/2015/03/04/turning-the-database-inside-out.html. Если я правильно понял, это позволяет агрегировать статистику на ходу, например для подсчета просмотров или другой не очень важной информации.

  Развернуть 1 комментарий

😎

Автор поста открыл его для большого интернета, но комментирование и движухи доступны только участникам Клуба

Что вообще здесь происходит?


Войти  или  Вступить в Клуб