Apache Beam, инструмент распределенной обработки с унифицированной моделью программирования для пакетной и потоковой обработки данных, получил статус высшего уровня как проект Apache.
Луч имени представляет собой комбинацию Batch и strEAM. Beam направлен на обеспечение эффективного выполнения в нескольких механизмах распределенного выполнения. Он состоит из модели программирования, пакетов SDK и бегунов для определения и выполнения конвейеров обработки данных.
Проекты верхнего уровня Apache имеют высший статус в Apache Foundation. Прежде чем получить этот статус, проект должен пройти инкубаторный период. Apache Beam был совместно предложен Google, Talend, Cloudera, dataArtisans, PayPal и Slack в качестве инкубатора Apache еще в феврале 2016 года.
Beam начал свою жизнь в Google и используется как сервис Google Cloud Dataflow (GCD). Beam использует тот же API, что и GCD.
Вы можете реализовать процессы обработки данных с помощью Beam через Beam SDK. В настоящее время их всего два — Java и Python, и в будущем планируется добавить Scala SDK.
Выбрав SDK, вы реализуете процессы обработки данных как Beam Pipelines. Они переводятся в среду выполнения, в которой ваши процессы будут развертываться и запускаться бегунами Apache Beam. На данный момент доступны четыре бегуна: Apache Apex (нацеленный на развертывание Hadoop), Apache Spark (основной движок обработки данных с открытым исходным кодом Apache), Apache Flink (движок потоковой обработки, предназначенный для очень эффективного использования памяти) и Google Cloud Dataflow. Планы в стадии разработки для бегунов для Apache Hadoop MapReduce и Apache Karaf. Типичный конвейер показан ниже:
Преимущества Beam — портативность и унифицированная обработка. Переносимость достигается за счет разделения задания обработки данных и среды выполнения, в которой оно будет выполняться. Вы можете использовать тот же код с другим исполнителем, и он будет выполняться на новом сервере без изменений.
Унифицированная обработка означает, что вы можете использовать одну и ту же унифицированную модель для пакетной и потоковой обработки.
Одна интересная особенность Beam заключается в том, что она предлагает конкурента Spark. Все механизмы обработки данных, поддерживаемые Beam, конкурируют за долю рынка, и Spark в настоящее время опережает их из-за количества библиотек и одобрения пользователей. Если Beam сможет обеспечить более независимый от движка подход, он может стать очевидным выбором при создании процесса обработки данных для доступа к большим данным.