【Flink】Apache Flink ~ Streaming vs Batch ~

■ はじめに

https://dk521123.hatenablog.com/entry/2023/04/26/103421

で、Kafkaの有用性を述べたが
仕事で、ストリーミング処理のメリデメなどを
纏めることになった。

そこで、ストリーミング処理と対比される処理として
バッチ処理と比較して、その優位性をまとめてみる。

以下のサイトがドンピシャなので、参考にしながらまとめる。

https://www.confluent.io/learn/batch-vs-real-time-data-processing/

目次

【1】用語整理
 1)ストリーミング処理(リアルタイム処理)
 2)バッチ処理(一括処理)
 3)参考:マイクロバッチ処理
【2】Streaming vs Batch
【3】Flink vs Glue

【1】用語整理

1)ストリーミング処理(リアルタイム処理)

* リアルタイムでデータを収集して、
 その場で変換、分析し、配信するデータ処理方法

2)バッチ処理(一括処理)

* 一定期間データを集め、複数処理をまとめて(=バッチ)
 一括処理を行う方式

cf. Batch = 一束、一群、一団 => まとまり

3)参考:マイクロバッチ処理

* バッチ処理とリアルタイム処理の中間的な位置づけ
 => 中身は結局、バッチ処理だが、その頻度を高め、半リアルタイム化を実現

https://reckoner.io/blog/batch-realtime

【2】Streaming vs Batch

https://www.confluent.io/learn/batch-vs-real-time-data-processing/

# Items Batch Data Processing Streaming Data Processing
1 Hardware 大規模なストレージやプロセッサが必要 データパケットを処理に必要なサイズ以下のストレージ量でいい
2 Performance レイテンシー(※1)は処理によるが、分~日単位で掛かる レイテンシーを低く抑える(即時)
2 Data set 巨大なバッチデータ 連続したストリームデータ
3 Analysis 静的な情報を一定間隔で処理 移動中の新しいデータを逐次処理可能

※1:レイテンシー (latency) とは?

* ユーザーのアクションとその後の応答の間に経過する時間
 => 転送要求を出してからデータが送られてくるまでの通信遅延時間

【3】Flink vs Glue

バッチ処理として、Glue
ストリーミング処理の代表として、Flink
を取り上げて比較してみた

https://stackshare.io/stackups/aws-glue-vs-flink

1)Glueのメリット

[1] Easy to use

* Serverless のため、運用が楽
* Auto Generation 機能とかもあり、比較的簡単にETL処理を行える

[1] Hybrid batch/streaming

* ストリーミング処理だけでなくバッチ処理にも対応

[2] Open source

* オープンソースでAWS依存にならずに済む

参考文献

https://www.splunk.com/ja_jp/data-insider/what-is-stream-processing.html

関連記事

Apache Flink ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2023/03/01/235100
Apache Flink ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2023/05/29/000000
Apache Flink ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2023/07/23/161621
Apache Kafka ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2023/04/26/103421
Kafka Connect ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2023/04/29/185133