Apache Beam HTTP с неограниченным исходным кодом Python
Возможно ли с текущей версией Apache Beam разработать неограниченный источник, получающий данные в HTTP-сообщении? Я намерен запустить HTTP-сервер и внедрить полученные сообщения в Beam Pipeline. Если возможно, можно ли это сделать из существующих источников?
1 ответ
Это возможно. вы можете разработать его, используя Splittable DoFn. Источник похоже , что они будут амортизироваться в ближайшем будущем.
Со своей стороны, я пытаюсь разработать такой конвейер, который будет использовать Rest API, который передает сообщения Json в теле get и поддерживает несколько подключений, тем самым разделяя рабочую нагрузку на сторону API, такую как Adobe Livestream или Twitter . Это поведение должно включать масштабирование на стороне потребителя (поток данных)
Моя борьба заключается в том, что я не могу найти разделимое ограничение из этого варианта использования. Потоковая передача бесконечна, и нет смещения, как у брокеров обмена сообщениями, таких как Kafka или диапазона байтов (файлов). Я хотел сначала создать пары ограничения элементов, такие как: (url, буферизованный считыватель), но я не думаю, что буферизованные считыватели можно разделить.
Одним из решений может быть полное отсутствие ограничений. Я изо всех сил пытаюсь представить, как конвейер будет распределять элементы, следовательно, масштабироваться.