■ はじめに
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処理を行える
2)Flink のメリット
[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