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

GCP: Dataflow

Dataflow

について書きます。
Apache Beamを基にした、バッチ/リアルタイムデータ処理基盤です。

Concept

https://cloud.google.com/dataflow/docs/concepts/beam-programming-model

  • Pipelines: データ処理の単位
  • PCollection: Pipelineのデータとして扱えるオブジェクト
  • Transforms: PCollectionを入力とするデータ変換の処理
  • ParDo: ユーザー定義の関数を呼び出す並列処理オペレーション
  • Pipeline I/O: 入力のソースと出力のシンクからなるTransform
  • Aggregation: 複数の入力から値を計算する処理、代表的なものはグルーピング
  • Runner: Pipelineを実行するソフトウェア
  • Watermarks: aウィンドウのすべてのデータが到着すると期待される時間
  • Regional Endpoints: リージョナルエンドポイントにはジョブのメタデータやワーカーのデプロイが行われる
  • Low latency watermarks: Monitoringよりも低いレイテンシーでデータを送ることができる
  • High watermark accuracy: Pub/Sub単体で実装するよりも正確なイベントタイムを実装できる

Streaming pipelines
ストリームデータ処理では、データが継続的に加わるため、ウィンドウやウォーターマークやトリガーを活用する。

ウィンドウ

  • Tumbling window: 固定ウィンドウ、固定時間のウィンドウ
  • Hopping window: スライディングウィンドウ、ウィンドウの時間と間隔をしていできる
  • Session window: 特定の動作が続くことで生まれるウィンドウ、ギャップ時間をこえると新しいウィンドウが生まれる

How-to

https://cloud.google.com/dataflow/docs/how-to

パイプラインのサンプル

Dataflow Shuffle
GroupByKeyCoGroupByKeyCombineのもとになる操作。
バッチパイプラインではより高速。
ワーカーのリソース処理が少ない。
データを保持しないのでオートスケールがしやすい。

Customer Managed Encryption Key
ユーザー管理の暗号化を実装できる。
ユーザー指定のデータソースから読み込んだデータは暗号化されるが、グルーピングなどのキーベースのTransformを使う際はデータが暗号化されない。


以上です。
リアルタイムデータ処理では定番のツールなのできちんと押さえておきたいですね。

brainpad
ブレインパッドは、2004年の創業以来、データによるビジネス創造と経営改善に向き合ってきたデータ活用・分析企業です。
http://www.brainpad.co.jp/
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