Луч Апач поддерживает несколько бэкэндов раннер, в том числе Apache Spark и Флинк. Я'м хорошо знакомы с искровым/Флинк и я'м пытаюсь увидеть плюсы/минусы пучка для пакетной обработки.
Глядя на Луч слова пример графа](https://beam.apache.org/get-started/wordcount-example/), она чувствует себя очень похож на родной Огонек/Флинк эквиваленты, может быть, с немного более многословный синтаксис.
В настоящее время я не'т вижу большую пользу выбора Луч на искры/Флинк для такой задачи. Единственный наблюдений я могу сделать до сих пор:
Есть лучше примеры, что выделить и другие плюсы/минусы модели пучка? Есть ли информация о том, как потеря контроля влияет на производительность?
Обратите внимание, что я'м не прошу за различий в потоковом аспектах, которые частично освещены в этот вопрос и обобщены в настоящей статьи (устарел из-за искры 1.Х).
Там'ы несколько вещей, что Луч добавляет более многие из существующих двигателей.
Объединяющим пакетной и потоковой передачи. Многие системы могут обрабатывать как пакетные, так и потоковое, но они часто делают это через отдельные API. Но в Луч, пакетные и потоковые просто две точки на Спектре задержки, полноту и стоимость. Там's нет обучения/рерайтинг скалы из пакета для потоковой передачи. Так что если вы пишете сегодня пакетного трубопровода, но завтра задержки должен меняться, это's, невероятно легкий для того чтобы отрегулировать. Вы можете увидеть подобное путешествие в примеры мобильных игр.
API-интерфейсы, которые поднимают уровень абстракции: Луч'ы Апис сосредоточиться на захвате свойства ваших данных и вашей логике, вместо того, чтобы детально лежащих в основе выполнения течь через. Это как ключ для переносимости (см. следующий параграф), а также может дать рантаймы большую гибкость в том, как они выполняют. Что-то вроде Пардо синтеза (композиции функций ака) является довольно простой оптимизации, что подавляющее большинство бегунов уже делать. Другие оптимизации, по-прежнему применяются для некоторых бегунов. Например, Луч'ы Апис в источнике специально построен, чтобы избежать overspecification сегментирования внутри трубопровода. Вместо этого, они дают бегунам правильные крючки для динамического перераспределения работу на доступных машинах. Это может сделать огромную разницу в производительности, устраняя отставшую черепки. В общем, больше ума, мы можем опираться на полозья, тем лучше мы'll быть. Даже самые осторожные настройки силы не удастся, так как данные, код, и сред смену.
Удобоносимость по средам.: Потому что формы данных и требования к среде выполнения, аккуратно разделенные, тот же газопровод может быть запущен несколькими способами. А это значит, что вы Don'т в конечном итоге переписывать код, когда надо перейти от локальных к облаку или от верный и система что-то на передний край. Вы можете очень легко сравнить варианты, чтобы найти сочетание окружающей среды и производительности, что работает лучше для ваших текущих потребностей. И это может быть сочетание вещей -- обработка конфиденциальных данных на помещение с открытой бегун источника и обработки других данных на управляемый сервис в облаке.
Проектирование модели луча, чтобы быть полезным абстракции над многими, разными двигателями сложно. Луч-это не пересечение функциональности всех двигателей (слишком ограничены!) ни союз (слишком много кухонной раковиной!). Вместо этого, Луч пытается быть в Авангарде, где обработка данных происходит, как толкает функциональность и вытягивать модели из среды исполнения.