Concept

Unbounded vs Bounded

有界数据是无界数据的一个子集

  1. 无界数据是一种不断增长,是无限的数据集,无法判定何时停止发送 - Streaming Data
  2. 有界数据是一种有限的数据集

Event Time vs Precessing Time

Time Domain Desc
事件时间 - Event Time 一个数据实际产生的时间点
处理时间 - Precessing Time 处理数据的系统架构实际接收到这个数据的时间点

Batching

  1. 数据的批处理 - 一系列相关联的任务按顺序(或并行)一个接一个地执行
  2. 批处理的输入是在一段时间内已经收集保存好的数据
  3. 每次批处理所产生的输出可以作为下一次批处理的输入 - Pipeline
  4. 绝大部分情况下,批处理的输入输出都是有界数据,更多关心的数据的事件时间
  5. 批处理任务一般会以定时任务的形态存在
  6. 应用场景 - 日志分析、计费应用、数据仓库
  7. 开源项目 - Apache Hadoop、Apache Spark
  8. 缺点 - 高延迟性

Streaming

  1. 数据的流处理 - 系统需要接收并处理一系列连续不断变化的数据
  2. 流处理的输入数据基本是无界数据,依据具体的应用场景,选择关注数据的事件时间还是处理时间
  3. 流处理的特点 - 低延迟 - 所需的响应时间应该以毫秒微妙来进行计算
  4. 流处理快的根本原因 - 在数据到达磁盘之间就对其进行了分析
  5. Real-time Processing - 实时处理
    • 流处理架构在一定时间间隔(毫秒)内产生逻辑上正确的结果
  6. Near real-time Processing - 准实时处理
    • 流处理架构可以接受以分钟为单位的数据处理延时
  7. 应用场景 - 实时监控、实时商业智能
  8. 开源项目 - Apache Kafka、Apache Flink、Apache Storm、Apache Samza