我有幾個平行數據管道運行在不同的氣流熟練的技藝。所有這些選擇器在一個專用的管道執行兩個辯證行為療法磚集群:其中一個是一種常見的選擇器中執行所有的裝飾邊。這個選擇器包括一個在印度生物技術部測試定義的。
想象這個設置:
- - - - - - - - - - -氣流
> DAG答:
- - - - - - >印度生物技術部運行模型
- - - - - - >印度生物技術部測試常見的模型
> DAG B:
- - - - - - >印度生物技術部運行模型B
- - - - - - >印度生物技術部測試常見的模型
然而,現在我麵臨一個錯誤在印度生物技術部測試常見模型的階段。DAG & DAG B使用不同的集群,但都與相同的背景模型和對象。我收到這個錯誤:
com.databricks.sql.transaction.tahoe。DeltaFileNotFoundException: s3: / / s3 bucket / common_model_test_name / _delta_log / 00000000000000000000。json:無法重建狀態在版本2的事務日誌截斷由於手動刪除或日誌保留政策(δ。logRetentionDuration = 30天)和檢查點保留政策(δ。checkpointRetentionDuration = 2天)
我不知道如何解決這個問題。博客我看告訴我我應該清楚δ日誌緩存,但我不知道如何去做,如果我沒有訪問集群。有人能幫助我去理解發生了什麼以及如何解決這個問題?
謝謝你!
@Ammar見圖:
你看到的錯誤消息的三角洲湖事務日誌表明,公共模型的測試表已被截斷或刪除,手動或由於保留政策設定在您的集群。這可能發生,如果日誌太大或如果它已經存在了太久。
為了解決這個問題,你可以嚐試以下步驟:
% sql清除緩存
這將清除所有三角洲表的緩存狀態在當前集群。如果你沒有訪問集群,您可能需要問問你的磚管理員運行此命令。
3)如果清理緩存不起作用,你可以嚐試設置為δ日誌和檢查點文件保留政策持續時間更長,這樣他們就不會被刪除前管道有機會運行。你可以通過設置以下配置選項在磚集群:
spark.databricks.delta.retentionDurationCheck.enabled = true spark.databricks.delta.retentionDurationCheck.intervalHours = 1 spark.databricks.delta.logRetentionDuration =“30天”spark.databricks.delta.checkpointRetentionDuration =“2天”
4)這將使保留時間檢查,這將提醒你當δ日誌或檢查點文件將被刪除由於保留政策。然後您可以調整政策是必要的,以確保文件保留更長一段時間。
我希望這可以幫助你解決你的問題!