Краткое введение в конвейер обработки больших данных

Группа блестящих инженеров из Google во главе с Полом Нордстромом хочет создать систему, выполняющую потоковую обработку данных, которую MapReduce выполняла для пакетной обработки данных. Они хотели обеспечить надежную абстракцию и масштабирование до огромных размеров.

Создание MillWheel было непростым делом. Тестирование и обеспечение правильности в потоковой системе было особенно сложной задачей, потому что ее нельзя было повторно запустить, как пакетный конвейер, для получения того же результата. Как будто этого было недостаточно, архитектура Lambda еще больше усложнила ситуацию, затруднив агрегирование и согласование результатов потоковой передачи и пакетной обработки. Из-за таких невзгод родился Google Dataflow — решение, объединяющее лучшее из обоих миров в одну унифицированную систему, обслуживающую пакетные и потоковые конвейеры.

Создание и проектирование конвейеров — это другой мыслительный процесс и структура, отличные от написания пользовательских приложений. В течение последних нескольких месяцев я провел много дней и недель, изучая основы и концепции работы Apache Beam и Dataflow, чтобы построить конвейер потока данных для своих проектов.

Не так много статей с кратким описанием Dataflow, Apache Beam и Scio, которые вы можете прочитать, пока едете на работу на поезде или автобусе. Таким образом, я надеюсь, что эта статья поможет всем новичкам, таким как я, усвоить эти концепции.

Что такое поток данных

Dataflow — это бессерверная, быстрая и экономичная служба, поддерживающая потоковую и пакетную обработку. Он обеспечивает переносимость за счет обработки заданий, написанных с использованием библиотек Apache Beam с открытым исходным кодом. Автоматизация подготовки инфраструктуры и управления кластерами снижает операционные издержки с ваших специалистов по обработке данных.

Большая часть обработки данных обычно работает путем ввода источника, преобразования и приемника. Инженеры разработали конвейер и преобразование в шаблон потока данных. Они могут использовать шаблон для развертывания и выполнения конвейера заданий Dataflow. Затем Dataflow назначает рабочие виртуальные машины для выполнения обработки данных, и вы можете настроить форму и размер этих машин.

Например, чтобы выполнить конвейер пакетной обработки для ежедневного счета пользователя в игре, источником будет…