結構化串流的生產考量

本文章包含使用 Azure Databricks 結構化串流設定生產增量處理工作負載的建議,以滿足即時或批次應用程式的延遲和成本要求。 瞭解 Azure Databricks 上結構化串流的重要概念,可協助您避免在相應增加數據量和速度並從開發移至生產環境時常見的陷阱。

Azure Databricks 引進了 Delta Live Tables,以減少管理結構化串流工作負載生產基礎結構的複雜性。 Databricks 建議針對新的結構化串流管線使用 Delta 實時數據表;請參閱 什麼是 Delta Live Tables?

注意

計算自動調整有相應減少結構化串流工作負載的叢集大小限制。 Databricks 建議針對串流工作負載使用差異即時資料表與增強型自動調整。 請參閱 使用增強式自動調整優化差異實時數據表管線的叢集使用率。

使用筆記本進行結構化串流工作負載

使用 Databricks 筆記本進行互動式開發時,您必須將筆記本附加至叢集,才能手動執行查詢。 您可以使用工作流程,排程 Databricks 筆記本以進行自動化部署和從查詢失敗自動復原。

您可以在互動式開發期間將筆記本中的結構化串流查詢可視化,或用於對生產工作負載進行互動式監視。 如果人類會定期監視筆記本的輸出,您應該只在生產環境中將結構化串流查詢可視化。 trigger雖然 和 checkpointLocation 參數是選擇性的,但最佳做法 Databricks 建議您一律在生產環境中指定它們。

控制 Azure Databricks 上結構化串流的批次大小和頻率

Azure Databricks 上的結構化串流已增強選項,可協助控制使用自動載入器和 Delta Lake 串流時的成本和延遲。

什麼是具狀態串流?

狀態結構化串流查詢需要中繼狀態資訊的累加更新,而狀態結構化串流查詢只會追蹤從來源到接收處理哪些數據列的相關信息。

具狀態作業包括串流匯總、串流 dropDuplicates、數據流聯結、 mapGroupsWithStateflatMapGroupsWithState

具狀態結構化串流查詢所需的中繼狀態資訊,若未正確設定,可能會導致非預期的延遲和生產問題。

在 Databricks Runtime 13.3 LTS 和更新版本中,您可以使用 RocksDB 啟用變更記錄檢查點,以降低結構化串流工作負載的檢查點持續時間和端對端延遲。 Databricks 建議為所有結構化串流具狀態的查詢,啟用變更記錄檢查點。 請參閱 啟用變更記錄檢查點