ストリーミング処理と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アソシエイトリンクを含みます。他分野は おすすめ書籍ページ へ。

この記事について

データサイエンティスト検定スタディが作成した教材です。運営について・記事の作り方

試験についてはこちらをご覧ください: データサイエンティスト協会 公式サイト

この記事を共有