#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 большое спасибо за помощь. В этом есть большой смысл