Help us understand the problem. What is going on with this article?

Apache Beam/DataflowのPythonとJava比較

tl;dr

(今のところ)JavaのほうがBeam/Dataflowで使える機能多いよ。
けどPythonも良くなっているよ

Streaming

Beam/Dataflowでは、無限に来る入力に対してStreaming処理が出来ます。
Streaming処理はPythonでも書くことは出来ますが、DataflowRunnerでは

などの制限があります。

最近できるようになりました!

他にもいくつかあり、Beamのドキュメントに記載されています。

Dynamic Destination

PCollectionの中身(Pub/Subのメッセージなど)に応じて、出力先(ファイル名とかテーブル名)を変更することを、BeamではDynamic Destinationと呼びます。

Beam 2.14以上でPythonでも出来るようになったのですが、まだExperimentです。
(具体的に機能に差があるかは追えてません…)

組み込みIO

Beam/Dataflowは、組み込みでいくつかの入出力を提供しています
GCSやBigQuery、Pub/SubなどはJavaでもPythonでもサポートされていますが、S3やKinesisなどはJavaだけです。

(自前で書けば出来るかも…)

雑記

  • Java書きたくない…そんなワガママな貴方にはScala+Scioもいいかもしれません。
  • Pythonの未来はPortability Frameworkに期待
    • Spark Runnerなどは、この機能でPythonでも書けるようになった?

事例

日本に限っても、Dataflow/Beam結構つかわれていますね。

Java・Scala

Python

All Aboutさん
リクルートライフスタイルさん

その他(KotlinとかGoとか)

見つけたらコッソリ教えてください

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away