算子探查功能可以在不修改作業的情況下看到中間結果的輸出,降低排查數據正確性錯誤的難度,提高人效和業務的連續性,減少重點實時業務的中斷時間。本文為您介紹如何進行算子探查。
背景信息
Flink作業運維時,會遇到產出結果不符合預期的情況,這類問題常稱為數據正確性問題。數據正確性問題的產生原因復雜且不易定位,常見的解決方法是將SQL作業進行邏輯拆解,通過Print連接器打印每一步的結果,對數據結果進行分析,找到可能的原因。這個處理流程不僅耗費時間精力,而且可能因為測試數據與線上數據或者State不一致導致無法排查到原因。因此,此類問題的解決常需要很長的時間,并進行多次作業啟停。實時計算Flink版提供了算子探查功能,可以在不修改作業的情況下,探查選中算子的輸入輸出情況,幫助您更好地排查數據正確性問題。
使用限制
僅支持運行中的SQL作業。
僅支持實時計算引擎VVR 8.0.4及以上版本作業。
不支持CTAS、CDAS作業。
不支持部署到Session集群的作業。
在探查沒有停止前,無法再次進行探查。
操作步驟
登錄實時計算控制臺,單擊目標工作空間操作列下的控制臺。
在左側導航欄上,選擇
。單擊目標作業名稱,單擊狀態總覽頁簽。
開啟算子探查。
打開算子探查開關。
單擊需要進行探查的算子,支持選擇多個算子。
設置最大采樣時間。
支持設置1~30min的采樣時間,采樣過程中如果達到最大存儲上限會提前終止采樣。
單擊開始探查。探查狀態變更為采樣中。
說明在探查沒有停止前,無法再次進行探查。
查看探查結果。
您可以單擊提示中的TM 日志列表進入到運行日志頁面,查看Log Name為inspect-taskmanager_0.out的日志。
結果展示如下。您可以在狀態總覽頁簽的DAG圖中復制算子名稱,在日志頁面搜索查看具體算子的輸出。
探查停止方式
作業發生failover后自動停止(JM & TM)。
達到最大存儲上限會提前終止采樣。
達到采樣時間后停止。
手動停止探查。