Architecture

image-20241117154711119

Batch Layer

  1. Batch Layer 存储管理主数据集不可变数据集)和预先批处理好计算好的视图
  2. Batch Layer 使用可处理大量数据的分布式处理系统预先计算结果
    • 通过处理所有的已有历史数据来实现数据的准确性
    • 基于完整的数据集重新计算,能够修复任何错误,然后更新现有的数据视图
    • 输出通常存储在只读数据库中,更新则完全取代现有的预先计算好的视图

Speed Layer

  1. Speed Layer 会实时处理新来的大数据
  2. Speed Layer 通过提供最新数据实时视图最小化延迟
    • Speed Layer 生成的数据视图可能不如 Batch Layer 最终生成的视图那么准确完整
    • 在收到数据后立即可用,而当同样的数据被 Batch Layer 处理完成后,在 Speed Layer 的数据可以被替换
  3. 本质上,Speed Layer 弥补了 Batch Layer 所导致的数据视图滞后

Serving Layer

  1. 所有在 Batch Layer 和 Speed Layer 处理完的结果都输出存储在 Serving Layer 中
  2. Serving Layer 通过返回 Batch Layer 预先计算的数据视图或从 Speed Layer 处理构建好的数据视图来响应查询

Query

通过 Batch Layer 兼顾了数据的完整性,通过 Speed Layer 弥补了 Batch Layer 的高延迟性 - 实时性

image-20241117164236990

Twitter

利用 Twitter4J 实时抓取的 Twitter 推文,利用 Apache Kafka 将数据实时推送给 Batch Layer 和 Speed Layer

image-20241117164648687