Я проходил через сообщения Apache и нашел новый термин под названием Beam. Может ли кто-нибудь объяснить, что такое Apache Beam? Я попробовал google, но не смог получить четкий ответ.
Что такое Apache Beam?
Ответ 1
Apache Beam - это унифицированная модель с открытым исходным кодом для определения и исполнения как пакетных, так и потоковых потоков параллельной обработки данных, а также набор специфических для языка SDK для построения конвейеров и определенных для выполнения Runners для их выполнения.
История: модель за Beam развивалась из ряда внутренних проектов обработки данных Google, включая MapReduce, FlumeJava и Millwheel. Эта модель изначально была известна как "Модель потока данных "и сначала реализована как Google Cloud Dataflow - в том числе Java SDK на GitHub для написания конвейеров и полностью управляемой службы для их выполнения в облачной платформе Google. Другие в сообществе начали писать расширения, в том числе Spark Runner, Flink Runner и Scala SDK. В январе 2016 года Google и ряд партнеров представили модель программирования потока данных и часть SDK как инкубатор Apache Proposal под названием Apache Beam (унифицированная обработка Batch + strEAM). Apache Beam закончил с момента инкубации в декабре 2016 года.
Дополнительные ресурсы для изучения модели луча:
- Сайт Apache Beam
- документ VLDB 2015 (с использованием исходной модели потока данных имен)
- Streaming 101 и Потоковая передача 102 на радаре OReillys сайт
- A Beam подкаст на Software Engineering Radio
Ответ 2
Apache Beam (Batch + strEAM) - это модель и набор API для обработки пакетных и потоковых данных. Он был открыт с помощью Google (с Cloudera и PayPal) в 2016 году через проект инкубатора Apache.
Страница Dataflow/Beam и Spark: Сравнение модели программирования - Cloud Dataflow сравнивает API-интерфейс Beam с Apache Spark, который был чрезвычайно успешным в создании современного гибкого API и набора методов оптимизации для пакетной и потоковой передачи в мир Hadoop и за его пределами.
Beam пытается сделать еще один шаг вперед с помощью модели, которая позволяет легко описать различные аспекты обработки вне порядка, что часто является проблемой при объединении пакетной и потоковой обработки, как описано в этом сравнении программных моделей.
В частности, чтобы привести цитату из сравнения, модель Dataflow предназначена для решения, элегантно и с более модульной, надежной и простой в обслуживании:
... четыре критических вопроса, которые все специалисты по обработке данных должны пытаться ответить при построении своих конвейеров:
- Какие результаты рассчитаны? Суммы, объединения, гистограммы, модели машинного обучения?
- Где в момент времени рассчитываются результаты? Влияет ли время, когда каждое событие изначально повлияло на результаты? Являются ли результаты агрегированы в фиксированных окнах, сеансах или в одном глобальном окне?
- Когда во время обработки результаты материализуются? Получает ли время, которое каждое событие наблюдается в системе, влияет на результаты? Когда результаты испускаются? В частности, по мере развития данных? Когда данные задерживаются, и результаты должны быть пересмотрены? Некоторая комбинация из них?
- Как связаны уточнения результатов? Если дополнительные данные поступают и результаты меняются, они независимы и различны, они строят друг на друга и т.д.?
Конвейеры, описанные в Beam, могут, в свою очередь, запускаться в Spark, Flink, Google Dataflow, предлагаемом в облаке, и в других "времяпровождениях", включая опцию "Прямой" локальный компьютер.
Архитектура поддерживает множество языков. Java SDK доступен сейчас. Dataflow Python SDK близок к выпуску, а другие предусмотрены для Scala и т.д.
Смотрите источник в Зеркало Apache Beam