批流融合系統-SparkV2/Beam
阿新 • • 發佈:2018-12-24
介紹目前還在推進的批流融合系統-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模型
只需要管需要進行說明操作,不關心誰去執行
- What results are calculated?
- 計算什麼結果? (read, map, reduce)
- 批處理系統可實現
- Where in event time are results calculated?
- 在哪兒切分資料? (event time windowing)
- Windowed Batch
- When in processing time are results materialized?
- 什麼時候計算資料? (triggers)
- Streaming
- How do refinements of results relate?
- 如何修正相關的資料?(Accumulation)
- Streaming + Accumulation
BeamPipeline
資料處理流水線
- 表示抽象的流程
- 與“Flink流水線機制”不是一個概念