* この投稿は米国時間 7 月 28 日、Product Manager である Eric Anderson によって投稿されたもの(投稿はこちら)の抄訳です。


Google Cloud Dataflow の Python サポートにより、大規模なデータ処理を簡単に実行できる人と会社はどんどん増えています。そして、このたび Python サポートのベータ公開も始まりました。


今回のベータ公開に合わせて、Cloud Dataflow SDK for Python のバージョンは 0.4.0 となります。このリリースは Apache Beam のディストリビューションです。


Apache Beam は、今年 1 月の発表と 5 月の投稿『なぜ Apache Beam なのか』で説明しているように、Dataflow から発展し、Apache Incubator のもとで進められている素晴らしいプロジェクトです。Beam は、さまざまな実行エンジンに対してポータブルな SDK により、バッチとストリーミングの両モードに対応します。


今回の SDK リリースは、Cloud Dataflow とローカルの両方をサポートします。また、BigQuery と Cloud Storage のテキスト ファイルを結ぶコネクタと、他のソースやシンクに SDK を拡張する新しいソース / シンク API を含んでいます。これは、Python と Java の SDK に同等の機能を提供するための足場になります。


私たち Google は、Cloud Dataflow で最も要望の多い機能の 1 つである Python サポートへの関心の高さと多様性に圧倒されました。そして、アルファ プログラムが達成したことにわくわくしています。


フランスの多国籍環境サービス企業 Veolia の場合を見てみましょう。データを生成する同社の装置は世界中に広がっており、デベロッパー チームは Cloud Dataflow がサポートする Python を使用して、Google Cloud StorageGoogle BigQuery をベースとするデータ レイクに業務データを蓄積しています。


同社は、Cloud Dataflow パイプラインを定期的に実行し、一度に数万ものファイルを BigQuery の構造化テーブルに結合しています。業務データに関するすべての問いに対しては、1 つの SQL クエリで答えられるようにしています。


ドバイを本拠とするファッション e コマース リテーラーで、Rocket Internet が支援している Namshi の場合はどうでしょうか。同社は、Cloud Dataflow の Python を使用して、BigQuery 上の業務データと Google Analytics から複雑なリテール固有のアナリティクスと指標を自動生成しています。


「この Python サポートは、“Pythonic” であることと Beam モデルに忠実であることの間で、うまくバランスがとれていますね。Beam プログラミング モデルの強さと Cloud Dataflow 実行エンジンの便利さのおかげで、得られたコードは例外的に明確で簡潔なものになっています」と、同社の共同設立者 Hisham Zarka 氏は語っています。


Cloud Dataflow のアルファ テスターたちは、Dataflow の最も一般的な用途として、BigQuery のようなアナリティクス用データベースへのデータのロードや複雑なデータ分析、機械学習のためのデータの前処理、そして科学的もしくは統計的な分析を挙げています。


彼らが Cloud Dataflow を選んだのは、Dataflow がクラスタの構成や管理を必要としないフルマネージド サービスであり、データ エンジニアリングもしくはサイエンスのチームが、クラスタではなくパイプラインの構築とモニタリングに力を注げるからです。


あるアルファ テスターは、「もうクラスタの面倒を見なくて済むようになり、とてもいい」と述べています。


アルファ テスターの間では、Cloud Dataflow での Python サポートのあり方も評価されています。データが Python のデータ構造のままなのでデバッグがわかりやすいことや、Cloud Dataflow SDK for Python が NumPy や SciPy、Pandas などの使い慣れたライブラリ、依存コードをすべてサポートしていることなどが高評価を得ています。


Cloud Dataflow SDK for Python は PyPI に格納され、pip でインストールできるため、従来よりも取り組みやすくなっています。コマンドラインか Cloud Shell で、次のように入力してください。

pip install google-cloud-dataflow --user
SDK を入力したら、次のコマンドで対話モードに切り替えます。



python
対話モードでは、(1)Beam をインポートし、(2)パイプラインのインスタンスを作成し、(3)パイプラインにステップを追加し、(4)空行で with 文を閉じます。

import apache_beam as beam
with beam.Pipeline() as p:
    p | beam.Create(['hello', 'world']) | beam.io.Write(beam.io.TextFileSink('./test'))

with 文を閉じると、パイプラインが実行されたことを示す行がコンソールに表示されます。あとは、(1)対話モードを終了し、(2)書き込まれた内容を見てみるだけです。

exit()    
more ./test*
さあ、次はあなたの番です。Python Quickstart に進み、独自パイプラインを作成して、Cloud Dataflow での実行に必要なことを身につけてください。そして世界を変えましょう。成果は @ericmander にツイートしてください。


- Posted by Eric Anderson, Product Manager