ある企業が、ラムダアーキテクチャの導入を検討している。このアーキテクチャが「バッチレイヤー」と「スピードレイヤー(ストリーミングレイヤー)」の両方を持つ最大の理由として最も適切なものはどれか。
- A. どちらのレイヤーも同一の処理を重複して実行することで、冗長性によるシステム可用性を高める
- B. バッチレイヤーは高精度・完全な集計結果を時間をかけて生成し、スピードレイヤーはバッチ結果が揃うまでの間のリアルタイム近似値を提供することで、精度と鮮度のトレードオフを補完する
- C. バッチレイヤーはリアルタイム処理を担当し、スピードレイヤーは大量の履歴データの集計を担当するため、役割分担が明確になる
- D. バッチレイヤーはコスト削減のために使われ、スピードレイヤーはセキュリティ要件を満たすために使われる
解答と解説を見る
正解: B
ラムダアーキテクチャの本質は「精度と鮮度のトレードオフ」を補完し合う2レイヤー構造にある。バッチレイヤーは全データを対象に高精度な集計を実行するが完了まで時間がかかる。スピードレイヤー(ストリーミングレイヤー)は最新データをリアルタイムで処理して近似的な即時結果を提供し、バッチが追いつくまでの「鮮度のギャップ」を埋める。サービングレイヤーが両者の結果をマージして提供する。選択肢Cはバッチとスピードの役割が逆になっており完全に誤りである。バッチレイヤーが時間をかけて大量履歴を集計し、スピードレイヤーがリアルタイム処理を担う。選択肢Dはコストとセキュリティでレイヤーを説明しているが、これはラムダアーキテクチャの目的ではない。選択肢AはラムダアーキテクチャをHA(高可用性)のための冗長構成と誤解しており、目的が異なる。2つのレイヤーは同一処理の重複ではなく、異なる目的・タイムスケールの処理を担っている。