PR:この記事にはアフィリエイトリンクが含まれます。
Apache Beamの本をおすすめする際は、まず学びたい内容を決めたいところです。バッチとストリームをつなぐ考え方か、動くパイプラインの実装かで候補が変わります。
PythonとJavaの両方に触れる本もありますが、各書籍で主軸は異なります。三冊を実装、処理の意味論、Google Cloudの実例という視点で紹介します。いずれも英語です。
早見表
| 書籍 | 刊行情報 | 主な内容 | おすすめする人 |
|---|---|---|---|
Building Big Data Pipelines with Apache Beam | Packt Publishing、2022年、342ページ、英語 | Java SDK、Python SDK、SQL DSL、Runner | Javaで実装し、テストやデプロイまで学びたい人 |
Streaming Systems: The What, Where, When, and How of Large-Scale Data Processing | O’Reilly Media、2018年、349ページ、英語 | event time、watermark、window、trigger | ストリーム処理の考え方を基礎から理解したい人 |
Data Science on the Google Cloud Platform: Implementing End-to-End Real-Time Data Pipelines: From Ingest to Machine Learning | O’Reilly Media、2022年、第2版、459ページ、英語 | Beam、Dataflow、Pub/Sub、BigQuery | Google Cloud上の実時間パイプラインを追いたい人 |
一冊目はコードとSDK、二冊目は時間の意味付け、三冊目はクラウド上の流れが中心です。扱う範囲は一部重なっても、読み終えたあとに得られる視点は異なります。
『Data Science on the Google Cloud Platform』の参考価格はUS$79.99です。公式の希望小売価格を目安にしてください。実売価格は時期や販売店によって変わります。
Beamの実装を深めたい人には一冊目、ストリーム処理の正しさを理解したい人には二冊目がおすすめです。Google Cloudの構成例を追う人には三冊目を薦めます。
Beamの基本
Apache Beamは、バッチ処理とストリーム処理を同じプログラミングモデルで組み立てるフレームワークです。入力が一度に揃う場合も継続して届く場合も、変換の流れをパイプラインとして記述できます。
データをPCollection、処理をPTransformとして扱うのが基本です。ParDoでは要素ごとの処理を書けます。入力を整え、条件に応じて振り分け、集計へ渡す流れも組み立てられます。
イベントが実際に起きた時刻と、システムが受け取る時刻はずれることがあります。event timeとwatermarkを理解すると、遅れて届くデータをいつまで待つかも考えやすくなります。
windowはデータを時間のまとまりに分け、triggerは集計結果を出すタイミングを決めます。集計を早めに出すか、遅延データを待って更新するか。選んだルールで利用者が見る数字も変わります。
パイプラインを実行するのはRunnerです。DataflowやFlinkなどの実行先は、対応機能や設定がRunnerごとに異なります。コードの書き方に加え、実行環境も考慮に入れます。
Java実装書
Jan Lukavský著『Building Big Data Pipelines with Apache Beam』は、Java SDKを軸にBeamの基本概念と実装演習を扱います。中級レベルのJava知識が前提なので、Java初学者向けの入門書ではありません。
内容はPCollection、PTransform、ParDoから状態処理、window、triggerまで幅広く扱います。テストやデプロイも取り上げ、Runnerの実行方式と能力差まで学べます。
Python SDKやSQL DSLのほか、ポータビリティ層やクロスランゲージパイプラインの演習も収録しています。Java SDKが本全体の軸です。Javaを主に使うチームやPythonとの連携まで学びたい人におすすめします。
理論書の要点
Tyler Akidau、Slava Chernyak、Reuven Laxによる『Streaming Systems』は、Beamモデルを軸に大規模データ処理を解説します。初級から中級向けで、ストリーム処理の結果が持つ意味を考える本です。
event timeやwatermarkに加え、window、trigger、結果の蓄積方法も扱います。遅れて届いたイベントが集計にどう反映されるかを追うため、リアルタイム集計の数字が後から変わる理由も整理できます。
Google Cloud DataflowやApache Flink、Cloud Pub/Subを使ったwatermarkの事例も紹介します。2018年刊の英語書で、時間や遅延の考え方を学べます。BeamのAPIを手元で実装する本との併読もおすすめです。

Streaming Systems: The What, Where, When, and How of Large-Scale Data Processing
O’Reilly Media
Amazonで見るGCP実践書
Valliappa Lakshmanan著『Data Science on the Google Cloud Platform: Implementing End-to-End Real-Time Data Pipelines: From Ingest to Machine Learning』は、2022年刊の第2版です。データの取り込みから機械学習までを扱い、Apache BeamとCloud Dataflowは第4章に登場します。
Pub/Subからデータを取り込み、Dataflowで処理してBigQueryへつなぐストリーミングパイプラインを扱います。window集計やevent timestamp、クラウド上での実行も含まれます。サービス間の流れを具体的に追える内容です。
参考価格はUS$79.99です。公式の希望小売価格が目安で、実売価格は時期や販売店によって変わります。459ページの英語書で、Google Cloud上のデータ処理全体に関心がある人におすすめします。

Data Science on the Google Cloud Platform: Implementing End-to-End Real-Time Data Pipelines: From Ingest to Machine Learning
O’Reilly Media
Amazonで見る結論
ストリーム処理の仕組みを学び始める人には『Streaming Systems』、JavaでApache Beamを実装する人には『Building Big Data Pipelines with Apache Beam』をおすすめします。前者は処理の正しさ、後者はSDKを使った開発を中心に学べます。
Google CloudでPub/Sub、Dataflow、BigQueryをつないだ実例を見たい人には、『Data Science on the Google Cloud Platform』をおすすめします。Beam以外のデータ処理や機械学習も扱うため、学習範囲を広げたい人に合います。
一冊だけなら、Javaの基礎がありBeam開発を目指す人には一冊目が最も直結します。概念を先に学びたい場合は二冊目を、Google Cloudの構成を知りたい場合は三冊目を選んでください。
Amazon の PC をスコア化してみた
Amazonにある8〜14インチの小型WindowsタブレットやノートPCを、スペック別にスコア化して比較・ランキング。


