本頁說明了結構化串流中即時模式的概念,包括它是什麼、如何達成低延遲,以及何時使用。
什麼是即時模式?
即時模式是一種結構化串流的觸發類型,能實現超低延遲的資料處理,端到端延遲低至五毫秒。 對於需要即時回應串流資料的營運工作負載,例如詐欺偵測、即時個人化及即時決策系統,請使用即時模式。
即時模式如何達成低延遲
即時模式可藉由下列方式改善執行架構:
- 執行一些耗時的批次作業(預設為五分鐘),系統會在資料於來源中可用時進行處理。
- 同時排程執行查詢的所有階段。 這需要可用的工作位置數目等於或大於批次中所有階段的工作數目。
- 在產生資料後立即透過串流洗牌在各階段間傳遞資料。
在處理一批次結束且下一批批次開始前,結構化串流會執行檢查點以保存進度並發布指標。 批次持續時間會影響檢查點的頻率:
- 對於較長批次,檢查點執行的頻率較低,這意味著在發生失敗時重播時間較長,且指標的可用性會延遲。
- 對於較短批次,檢查點會更頻繁,這可能會影響延遲。
Azure Databricks 建議將即時模式與目標工作負載進行基準測試,以找出合適的觸發間隔。
何時使用即時模式
當您的使用情境需要時,請選擇即時模式:
- 亞秒延遲:需要在毫秒內回應資料的應用程式。 例如,當詐騙分數超過基於異常地點、龐大交易規模或快速消費模式的門檻時,即時封鎖或標記信用卡交易。
- 營運決策:根據輸入資料觸發即時行動的系統。 例如,當點擊流數據顯示用戶正在瀏覽某產品時,發送促銷訊息,若用戶在接下來15分鐘內購買則提供折扣。
- 連續處理:資料必須在抵達後立即處理,而非定期批次處理的工作負載。
當你的使用情境需要時,請使用微批次模式(預設的結構化串流觸發器):
- 分析處理:ETL 管線、資料轉換,以及以秒或分鐘計量延遲需求的 medallion 架構實作。
- 成本優化:不需要亞秒延遲的工作負載,因為即時模式需要專用的運算資源。
- 檢查點頻率很重要:能從更頻繁的檢查點中獲益、以加快恢復的應用程式。
功能支援與限制
有關完整支援的環境、語言、運算類型、來源、匯、運算元及已知限制,請參見即時模式參考。