Мне нужно обработать данные из набора потоков, применяя одну и ту же обработку к каждому потоку независимо от других потоков.Обработка потока для каждого пользователя
Я уже видел фреймворки, подобные шторму, но, похоже, он позволяет обрабатывать только статические потоки (т. Е. Твиты формировать твиттер), в то время как мне нужно обрабатывать данные от каждого пользователя отдельно.
Простым примером того, что я имею в виду, может быть система, в которой каждый пользователь может отслеживать местоположение своего gps и видеть статистику, как средняя скорость, ускорение, сжигаемые калории и т. Д. В реальном времени. Конечно, у каждого пользователя будет свой собственный поток (ы), и система должна обрабатывать поток каждого пользователя отдельно, как если бы у каждого пользователя была своя собственная выделенная топология, обрабатывающая его данные.
Есть ли способ достичь этого с помощью фрейма, такого как шторм, искрообразование или самза?
Было бы даже лучше, если поддерживается python, так как у меня уже есть много кода, который я бы хотел использовать повторно.
Большое спасибо за вашу помощь
Большое спасибо за ваш ответ. Можно ли сделать некоторую обработку на скользящих окнах данных пользователя? Могу ли я быть уверенным в том, что данные обрабатываются упорядоченными по timestamp (запрошенная обработка IIRC может быть гарантирована только с помощью трезубца, который, похоже, не поддерживает python)? –
Я лично использую Storm только с Java. Для Java вы можете выполнять скользящую обработку окон, но вам нужно реализовать всю логику самостоятельно. Вы также можете использовать Trindent, однако, насколько я знаю, вы не можете сопоставлять кортежи из разных партий. Таким образом, это не настоящие скользящие окна. Шторм также не дает никаких заказов (вы можете вернуться к коду в моем реестре github). Я думаю, используя Python, вам нужно будет реализовать упорядочивающие и раздвижные окна в вашем собственном коде. (Spark Streaming и Flink Streaming не поддерживают заказанную обработку - я не знаю о Samza) –