ストリーミング処理とLambdaアーキテクチャ

リアルタイム分析を支えるストリーミング処理。Kafka・Flink・Lambda/Kappaアーキテクチャを整理。

リアルタイム分析を実現するストリーミング処理と、その設計パターン Lambda アーキテクチャ。

白峰 リリ(普段) 白峰 リリ

バッチとストリーミングって何が違うの?

神楽 モニカ 先生(笑顔) 神楽 モニカ 先生

処理のタイミングが違うのよ。 バッチ処理は一定量たまってからまとめて処理、 ストリーミング処理はデータが届くたびに即座に処理するの。

紅林 かえで(普段) 紅林 かえで

バッチの代表例は Hadoop/Sparkバッチジョブや夜間ETL。 ストリーミングの代表例はKafka、Spark Streaming、Flink、AWS Kinesisですね。

藍沢 しずく(普段) 藍沢 しずく

ストリーミングって、どんなときに必要なんですかぁ?

紅林 かえで(普段) 紅林 かえで

リアルタイム性が求められる場面ですね。 たとえばクレジットカードの不正検知(数秒以内に判定)、IoTセンサー監視、株式の高頻度取引、Webのパーソナライゼーションなど。

白峰 リリ(普段) 白峰 リリ

Lambdaアーキテクチャって?

神楽 モニカ 先生(普段) 神楽 モニカ 先生

バッチとストリーミングを併用する設計パターンなのよ。 (1)バッチレイヤーは完全な履歴データを長時間バッチで処理、(2)スピードレイヤーはストリーミングで最新データを近似処理、(3)サービングレイヤーは両者を統合してクエリに応える、という3層構造ね。

紅林 かえで(普段) 紅林 かえで

類似パターンにKappaアーキテクチャがあります。 こちらはストリーミングだけで完結して、バッチを使わない設計。 ストリーム処理の進化で、近年実用的になってきました。

藍沢 しずく(しょんぼり) 藍沢 しずく

うぅ〜ん…難しいですぅ…

神楽 モニカ 先生(普段) 神楽 モニカ 先生

DS検定★ ではここまで深くは問われないから、『ストリーミング=即時処理』『Lambda=バッチ+ストリーム』という概念を押さえておけば十分よ。

白峰 リリ(普段) 白峰 リリ

Kafkaって聞いたことあるけど何のためのもの?

紅林 かえで(普段) 紅林 かえで

Apache Kafkaは大量データを扱う『パブリッシュ・サブスクライブ』型のストリーミング基盤ですね。 大規模システムで、センサー・ログ・トランザクションなどのデータ流通の中継地点として広く使われています。

紅林 かえで(普段) 紅林 かえで

DS検定★では『バッチvsストリーム』『Lambda/Kappa』『Kafka』の名前と用途を押さえれば十分。

確認クイズ

クレジットカードの不正利用を即座(数秒以内)に検知したい場合、最も適切な処理方式はどれか。

  1. 夜間バッチ処理
  2. ストリーミング処理(Kafka等)
  3. ファイルシステムへのCSV書き出し
  4. 毎月の集計処理
こたえを見る

正解: 2. ストリーミング処理(Kafka等)

ストリーミング処理。 数秒以内のリアルタイム検知にはKafka・Flink等のストリーミング基盤が必須です。 バッチ処理だと数時間〜数日後の検知になり、不正検知としては実用性に乏しくなります。

🔖 この記事の関連書籍

Amazonアソシエイトリンクを含みます。他分野は おすすめ書籍ページ へ。