Apache Beam на собеседовании Data Engineer

Готовься к собесу аналитика как в Duolingo
10 минут в день — SQL, Python, A/B, метрики. 1700+ вопросов в Telegram
Открыть Карьерник в Telegram

Карьерник — Duolingo для аналитиков: 10 минут в день тренируй SQL, Python, A/B, статистику, метрики и ещё 3 темы собеса. 1500+ вопросов в Telegram-боте. Бесплатно.

Что такое Beam

Унifit модель batch + streaming, portable между runners.

Idea. Write once, run anywhere. Code на Beam → execute на Spark / Flink / Dataflow / direct.

В практике Beam — main use на GCP Dataflow.

PCollection и PTransform

PCollection. Distributed dataset (bounded или unbounded).

PTransform. Operation на PCollection (Map, Filter, GroupBy).

import apache_beam as beam

with beam.Pipeline() as p:
    (p
     | 'Read' >> beam.io.ReadFromText('input.txt')
     | 'Split' >> beam.Map(lambda x: x.split(','))
     | 'Filter' >> beam.Filter(lambda x: int(x[1]) > 100)
     | 'Write' >> beam.io.WriteToText('output.txt'))

| — pipe operator. Builds DAG, executed by runner.

Runners

DirectRunner. Local, для testing.

DataflowRunner. GCP managed.

SparkRunner. На Spark cluster.

FlinkRunner. На Flink.

Apache Samza, Apache Apex. Less common.

Same code — different runner — different execution.

Готовься к собесу аналитика как в Duolingo
10 минут в день — SQL, Python, A/B, метрики. 1700+ вопросов в Telegram
Открыть Карьерник в Telegram

Windowing

Beam — first-class event time windowing.

(p | 'Read' >> beam.io.ReadFromKafka(...)
   | 'Window' >> beam.WindowInto(beam.window.FixedWindows(60))
   | 'Aggregate' >> beam.CombinePerKey(sum))

Window types: Fixed, Sliding, Session, Global.

Triggers. Когда emit results — early (speculative), on-time, late.

Применение

GCP Dataflow. Heavy use на Google Cloud.

Cross-cloud. Companies wanting portability.

Streaming + batch unified. Same code оба.

В РФ — почти не используется. Spark / Flink direct — стандарт.

Связанные темы

FAQ

Это официальная информация?

Нет. Статья основана на документации Apache Beam.


Тренируйте Data Engineering — откройте тренажёр с 1500+ вопросами для собесов.