DataflowでPython3系を使って良さそうか調べてみました。
Python3系を使いたい理由
DataflowはETLツールなのでデータ加工が主な役割です。Dataflowのサポートする言語としてJavaやGoも扱えますが、Pythonと比較すると機械学習系のライブラリが不足していたり、学習コストも高いです。またバッチ処理を作る前に行う分析作業はJupyterで行うため、Pythonで作ったコードも使えません。また、Python2系は以前よりDataflowでサポートされてますが、2020年目処にPython2系は非推奨となります。なので3系でDataflowを使いたいと考えてます。
DataflowのPython3系のサポート状況について
Apache Beam 2.14.0 以降の Python 3 SDK はベータサポートとなっておりDataflowでPython3系は扱えるようになってます。
cloud.google.com
Apach Beamのサポート状況を確認すると、Datalabの対応はまだできてないようです。
issues.apache.org
Apach Beamのissueについて
こちらで対応状況を確認できます。まだ対応できてない課題はありますが、大多数のissueは解決済みのようです。
issues.apache.org
動作確認
試しに3系でバッチ処理を試してみましたが、Python3系でも問題なくできました。
www.case-k.jp
ストリーミング処理は?
ストリーミング処理も対応していますが、ストリーミングのオートスケールはPythonだと未対応のようです。この点だとJavaの方が良さそうです。
よくある質問 | Cloud Dataflow | Google Cloud
ストリーミング処理についてはこちらの記事を確認してみてください。
www.case-k.jp