Попытка определить достаточное количество разделов для каждой темы с учетом ограничений, налагаемых базой данных KSQL

#apache-kafka #apache-kafka-streams #ksqldb #real-time-data

Вопрос:

Чтобы предисловие, я новичок в Apache Кафка — пожалуйста, простите любые очевидные ошибки/недоразумения в том, как я поставил этот вопрос.

Краткое изложение того, что я пытаюсь разработать:

  • Я разрабатываю приложение, которое должно непрерывно отслеживать местоположение нескольких пользователей одновременно
  • Затем это приложение должно иметь возможность использовать базу данных KSQL для запроса местоположения этих пользователей

Что мне нужно уточнить:

  • Поскольку я действительно могу запросить только одну тему в базе данных KSQL (объединения действительно ограничены только двумя темами в базе данных KSQL), количество тем, по которым я мог бы отслеживать пользователей, было бы только одним. Я надеюсь сопоставить каждый раздел, который я создаю в этой теме, с идентификатором пользователя. У меня может быть 1000 идентификаторов пользователей в этой единственной теме.

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

Спасибо!

Комментарии:

1. Я предполагаю, что вы объединяете данные о местоположении идентификатор с полной информацией о пользователе?

2. Да, это было бы правильно!

3. Я не знаю о KSQL, но я чувствую, что лучшим подходом может быть map() (например, использование UDF, возможно) данные о местоположении идентификаторе, чтобы «разорвать» идентификатор на полноценного пользователя, а не хранить его в качестве ключа… Единственная причина, по которой я могу думать о том, чтобы иметь идентификаторы в качестве ключей, заключается в том, что вам нужен заказ для каждого пользователя, что кажется маловероятным, поскольку вам, вероятно, нужен заказ только по времени (что было бы глобальным для всех разделов).

4. Более новые версии ksqlDB поддерживают n-образные соединения… Зачем вам нужен раздел для каждого идентификатора пользователя? — В общем, этот пост в блоге должен помочь: confluent.io/blog/…

5. @MatthiasJ.Sax большое спасибо за помощь. В этом есть большой смысл