1. 程式人生 > >批流融合系統-SparkV2/Beam

批流融合系統-SparkV2/Beam

介紹目前還在推進的批流融合系統-SparkV2/Beam

SparkV2

回顧

Feature

在第一代的Spark Streaming系統中,其主要特點為:

  • 以批處理核心,使用micro-batch模型將流計算轉換為批處理
  • 流計算和批處理API可以互用
    • DStream(特殊的RDD)
    • RDD

Spark Streaming侷限性

Spark streaming難以處理的需求

  • Event-time
  • Late Data
    • 流資料的三個特徵
      • 亂序
      • 延遲
      • 無界
  • Session windows
    • 比較難處理,與batch框架相矛盾

Structured Streaming思路

  • 類似Flink,流向錶轉換
  • 流與表的操作統一到DataSet/DataFrameAPI
  • 底層引擎依然是批處理,繼續使用micro-batch的模型
    • Continuous query模型還在開發中

處理模型

Unbounded Table

借鑑了Spark中的Dynamic Table實現批流等價轉換

Event time

將Event Time 作為表中的列參與到Window運算中

Late Data

引入流水線機制

Beam

Beam系統需要注意什麼?

  • 同一API
    • 會不會造成嚴重的效能差異
  • 同一程式設計
    • 低層的兩個系統如何實現統一

WWWH模型

只需要管需要進行說明操作,不關心誰去執行

  1. What results are calculated?
    • 計算什麼結果? (read, map, reduce)
    • 批處理系統可實現
  2. Where in event time are results calculated?
    • 在哪兒切分資料? (event time windowing)
    • Windowed Batch
  3. When in processing time are results materialized?
    • 什麼時候計算資料? (triggers)
    • Streaming
  4. How do refinements of results relate?
    • 如何修正相關的資料?(Accumulation)
    • Streaming + Accumulation

BeamPipeline

資料處理流水線

  • 表示抽象的流程
  • 與“Flink流水線機制”不是一個概念