ApacheBeam公式ドキュメント解説~コンセプト~


ApacheBeamフレームワークはめちゃくちゃ新しいものではないのですが、日本語情報が残念すぎるので、英語が苦手なエンジニアの方に参考にしていただければと思います。

実装部分はPythonまたはJavaで動作を確認しつつできればと思っています。(時間との兼ね合いです。。。)

前提

TODO:ApacheBeamってなんぞや、パイプラインってなんぞやってドキュメントがなかったので作成予定です。

対象ドキュメント

今回は他のドキュメントを参照している部分が多いので、後で対象ドキュメントを解説した際は記事をリンクしようと思います。

ドキュメントの種類

一旦QuickStartで環境構築と動作確認、書き方の確認をしつつ、公式ドキュメントを見ていく感じが良いかなと思います。

業務でプログラムする場合は、クラスのSerializablityや動作想定などを正確に考える必要があるので、QuickStartだけだときついので何日かかけてすべて読む必要があると思います。(実は必要なことが全然書いてなかったりしてプログラム中にハマることが多々ありますが・・・)

パイプラインの基礎

ここはパイプライン開発の流れとそのドキュメントの在処をマップしています。

SDK

  • Java
  • Python
  • Go

が用意されています。
(https://beam.apache.org/documentation/sdks/java/)

ドキュメントの量はJava>Python>>>GoでJavaが優位にみえますね。

Runner

対応している実行環境の話です

ここはコピペで。
ローカルテストはDirectRunner、それ以外は様々実行環境が用意されているようです。話題なのはDataflowですね。

Runnerを選定する方法

アーキテクチャを組み上げる際は環境の選定をする必要がありますが、ここではそんな話です。

パイプライン自体は様々な環境で利用できますが、環境によって実行できる機能に差があるので、それを考慮する必要があります。
公式の下表がとても良くまとまっています。
https://beam.apache.org/documentation/runners/capability-matrix/

CoreTransformができればさすがに困らないと思いますが、気にしたほうが良さそうですね。
例えばApacheSpark環境だと、GroupByKeyが利用できません。

コメントを残す

メールアドレスが公開されることはありません。