Spark Streaming使用介紹_DStream API與Structured Streaming
https://www.researchgate.net/figure/Spark-Streaming-uses-DStream-to-transform-streaming-data-into-a-series-of-batches_fig7_381900460 https://www.databricks.com/blog/2015/07/30/diving-into-apache-spark-streamings-execution-model.html DStream API(Discretized Streams) 較舊的流處理模型,主要操作RDD(彈性分佈式數據集)來處理數據流。 Dstream也就是離散的stream,也就表示把連續的資料分成一小團一小團,又稱作“microbatching”。每個microbatch 變成一個RDD以便Spark的後續處理。 在每一個batch interval中,每個DStream會有也僅有一個RDD。 可以由StreamingContext透過串流資料產生或其他DStream使用map方法產生(與RDD一樣)。 DStream裡面的RDD就是透過某個時間間隔產生的,而且以產生的時間為索引,因此time屬性對DStream而言非常重要。 在訪問DStream的某個RDD時,實際上是訪問它在某個時間點的RDD。 Structured Streaming 自spark2.0 開始, spark 引進了一套新的流式計算模型「Structured Streaming」 進一步降低了處理資料的延遲時間 提供快速,可擴展,容錯,end-to-end exactly-once stream processing (端到端的完全一次性流處理),實踐了"有且僅有一次(Exectly Once)" 語義, 可以保證資料被精準消費。 是一種基於Spark SQL 引擎構建的可擴展且容錯的stream processing engine 。 可以使用Dataset/DataFrame API 來表示streaming aggregations (流聚合), event-time windows (事件時間視窗), stream-to-batch joins (流到批次連接) 等。 結構化流提供了對複雜事件處理和狀態管...