Apache Spark 結構化串流是一種近即時的處理引擎,可使用熟悉的 Spark API,提供端對端容錯與一次處理保證。 結構化串流可讓您以對靜態資料表示批次運算的相同方式,在串流資料上表示計算。 結構化串流引擎會以累加方式執行計算,並在串流資料送達時持續更新結果。
如需逐步教學,請參見 「執行你的第一個結構化串流工作負載」。
從資料流讀取
使用結構化串流(Structured Streaming)從支援的資料來源逐步擷取資料。
| Feature | 說明 |
|---|---|
| 自動裝載機 | 當新資料檔案進入雲端儲存時,逐步且有效率地處理。 |
| Delta 數據表串流讀取和寫入 | 使用 Delta Lake 資料表作為串流來源和接收端,並保證精確一次處理。 |
| 標準連接器 | 使用標準連接器連接訊息匯流排、佇列及企業應用程式。 |
| 微批次尺寸 | 限制輸入速率以維持批次大小一致並防止處理延誤。 |
將資料寫入資料接收器
設定結構化串流如何將資料傳送到目標系統。
| Feature | 說明 |
|---|---|
| 檢查點 | 儲存處理狀態以啟用容錯性及精確一次傳遞語意。 |
| 輸出模式 | 選擇附加模式、更新模式和完成模式來進行有狀態串流查詢。 |
| 觸發間隔 | 設定觸發間隔以平衡延遲與成本,以符合你的處理需求。 |
| 結構化串流中的即時模式 | 處理即時工作負載的資料,端到端延遲低至五毫秒。 |
有狀態與無狀態處理
無狀態查詢處理資料列時不保留狀態。 有狀態查詢會維持聚合、連接和去重的中間狀態。
| Feature | 說明 |
|---|---|
| 無狀態串流查詢 | 優化查詢,處理資料且不維持中間狀態。 |
| 浮水印 | 控制結構化串流在有狀態作業中等待遲到資料的時間。 |
| 有狀態串流 | 使用有狀態運算子管理聚合、串流連接及重複刪除。 |
監視及管理
追蹤查詢效能、套用優化,並管理生產環境結構化串流工作負載的資料存取。
| Feature | 說明 |
|---|---|
| 透過 StreamingQueryListener 進行監控 | 使用 Spark UI 與監聽器 API 追蹤查詢進度與效能指標。 |
| 以 Unity Catalog 管理和控制 | 配置 Unity Catalog 以支援串流工作負載,並確保治理和存取控制。 |