亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spark Structured Streaming的特性是什么

發布時間:2021-12-16 21:28:56 來源:億速云 閱讀:160 作者:柒染 欄目:大數據

本篇文章為大家展示了Spark Structured Streaming的特性是什么,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

下面介紹了Structured Streaming的基本概念,及其在存儲、自動流化、容錯、性能等方面的特性,在事件時間的處理機制,最后帶來了一些實際應用場景。

首先,TD對流處理所面對的問題和概念做了清晰的講解。TD提到,因為流處理具有如下顯著的復雜性特征,所以很難建立非常健壯的處理過程:

Spark Structured Streaming的特性是什么

  • 一是數據有各種不同格式(Jason、Avro、二進制)、臟數據、不及時且無序;

  • 二是復雜的加載過程,基于事件時間的過程需要支持交互查詢,和機器學習組合使用;

  • 三是不同的存儲系統和格式(SQL、NoSQL、Parquet等),要考慮如何容錯。

因為可以運行在Spark SQL引擎上,Spark Structured Streaming天然擁有較好的性能、良好的擴展性及容錯性等Spark優勢。除此之外,它還具備豐富、統一、高層次的API,因此便于處理復雜的數據和工作流。再加上,無論是Spark自身,還是其集成的多個存儲系統,都有豐富的生態圈。這些優勢也讓Spark Structured Streaming得到更多的發展和使用。

流的定義是一種無限表(unbounded table),把數據流中的新數據追加在這張無限表中,而它的查詢過程可以拆解為幾個步驟,例如可以從Kafka讀取JSON數據,解析JSON數據,存入結構化Parquet表中,并確保端到端的容錯機制。其中的特性包括:

  • 支持多種消息隊列,比如Files/Kafka/Kinesis等。

  • 可以用join(), union()連接多個不同類型的數據源。

  • 返回一個DataFrame,它具有一個無限表的結構。

  • 你可以按需選擇SQL(BI分析)、DataFrame(數據科學家分析)、DataSet(數據引擎),它們有幾乎一樣的語義和性能。

  • 把Kafka的JSON結構的記錄轉換成String,生成嵌套列,利用了很多優化過的處理函數來完成這個動作,例如from_json(),也允許各種自定義函數協助處理,例如Lambdas, flatMap。

  • 在Sink步驟中可以寫入外部存儲系統,例如Parquet。在Kafka sink中,支持foreach來對輸出數據做任何處理,支持事務和exactly-once方式。

  • 支持固定時間間隔的微批次處理,具備微批次處理的高性能性,支持低延遲的連續處理(Spark 2.3),支持檢查點機制(check point)。

  • 秒級處理來自Kafka的結構化源數據,可以充分為查詢做好準備。

Spark SQL把批次查詢轉化為一系列增量執行計劃,從而可以分批次地操作數據。

Spark Structured Streaming的特性是什么

在容錯機制上,Structured Streaming采取檢查點機制,把進度offset寫入stable的存儲中,用JSON的方式保存支持向下兼容,允許從任何錯誤點(例如自動增加一個過濾來處理中斷的數據)進行恢復。這樣確保了端到端數據的exactly-once。

在性能上,Structured Streaming重用了Spark SQL優化器和Tungsten引擎,而且成本降低了3倍!!更多的信息可以參考作者的blog。

Structured Streaming隔離處理邏輯采用的是可配置化的方式(比如定制JSON的輸入數據格式),執行方式是批處理還是流查詢很容易識別。同時TD還比較了批處理、微批次-流處理、持續流處理三種模式的延遲性、吞吐性和資源分配情況。

在時間窗口的支持上,Structured Streaming支持基于事件時間(event-time)的聚合,這樣更容易了解每隔一段時間發生的事情。同時也支持各種用戶定義聚合函數(User Defined Aggregate Function,UDAF)。另外,Structured Streaming可通過不同觸發器間分布式存儲的狀態來進行聚合,狀態被存儲在內存中,歸檔采用HDFS的Write Ahead Log (WAL)機制。當然,Structured Streaming還可自動處理過時的數據,更新舊的保存狀態。因為歷史狀態記錄可能無限增長,這會帶來一些性能問題,為了限制狀態記錄的大小,Spark使用水印(watermarking)來刪除不再更新的舊的聚合數據。允許支持自定義狀態函數,比如事件或處理時間的超時,同時支持Scala和Java。

TD在演講中也具體舉例了流處理的應用情況。在蘋果的信息安全平臺中,每秒將產生有百萬級事件,Structured Streaming可以用來做缺陷檢測,下圖是該平臺架構:

Spark Structured Streaming的特性是什么

在該架構中,一是可以把任意原始日志通過ETL加載到結構化日志庫中,通過批次控制可很快進行災難恢復;二是可以連接很多其它的數據信息(DHCP session,緩慢變化的數據);三是提供了多種混合工作方式:實時警告、歷史報告、ad-hoc分析、統一的API允許支持各種分析(例如實時報警系統)等,支持快速部署。四是達到了百萬事件秒級處理性能。

上述內容就是Spark Structured Streaming的特性是什么,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

桐柏县| 惠水县| 梨树县| 赤水市| 永胜县| 沙坪坝区| 崇阳县| 丽水市| 屏南县| 陇川县| 商河县| 银川市| 杭州市| 若尔盖县| 奉贤区| 高雄县| 梁山县| 临沧市| 墨竹工卡县| 浏阳市| 宜阳县| 宜良县| 两当县| 平山县| 玛沁县| 贵德县| 内江市| 上蔡县| 青州市| 云霄县| 桦甸市| 搜索| 邹城市| 澄迈县| 德安县| 泾源县| 施甸县| 郎溪县| 彩票| 富阳市| 麟游县|