常見串流系統

串流概念

Mike Metzger

Data engineer

串流工具

  • 依需求可用的多種工具
  • 讓設計者可選擇最合適的工具
  • 常見系統包含:
    • Celery
    • Kafka
    • Spark Streaming

Celery

Apache Kafka

Spark Streaming

串流概念

Celery

  • 分散式工作佇列/FIFO
  • 主要用作工作任務佇列
  • 常用於非同步任務
    • 傳送重設密碼郵件
    • 處理數位訂單
    • 調整影像尺寸
  • 支援對大量訊息的即時處理
  • 提供管理與擴充(垂直與水平)功能

Celery project

串流概念

Apache Kafka

  • 分散式事件串流系統
  • 設計用於在生產者消費者間傳遞事件
    • 生產者主題上建立事件
    • 主題基本上是特定格式的訊息
    • 消費者接收新事件
  • 不同消費者可按需處理事件(記錄、轉換、轉送等)
  • 依設定處理事件儲存
  • 功能非常強大,但設定可能不易

Apache Kafka

串流概念

Kafka 應用情境

  • 最適合用於在多個系統間傳遞資料
    • 單一真實來源
    • 變更資料擷取
    • 資料備份
    • 資料系統遷移
串流概念

Spark 串流

  • Apache Spark 的一部分
  • 用於處理串流資料
  • 建基於 Spark 能力以處理 Scala、Python、SQL 等
  • 適合處理大量資料與機器學習情境
  • 輕鬆從批次轉為串流處理
  • 不是為儲存或記錄事件而設,主要用來處理或修改資料

Apache Spark

串流概念

一起來練習吧!

串流概念

Preparing Video For Download...