我創建了一個測驗來檢查資料集的聚合是否順利。當我在 IDE 中預覽開發的測驗時,沒有回傳任何結果(根據需要),當我在 IDE 中運行測驗時,它通過并獲得綠色復選標記。測驗:使用的測驗查詢和 IDE 中的結果:在 IDE 中通過
為了每周檢查測驗,我為我的測驗創建了一個作業。但是,我收到錯誤并在同一個測驗/查詢中失敗。錯誤:測驗作業中的錯誤
有誰知道這個失敗來自哪里?我該如何解決這個問題?
uj5u.com熱心網友回復:
您的測驗可能針對不同的環境運行targets——在 Cloud IDE 中,您可能已將 dbt 配置為將模型構建到開發模式中,然后它將在開發模式中測驗這些模型。在您的每周作業中,您可能會針對生產目標運行,這會將模型構建到另一個模式中。
有一些可能的原因導致開發和生產模式包含不同的資料(這會導致測驗在一個環境中通過而在另一個環境中失敗):
- 您的開發分支中的代碼可能與主/生產分支中的代碼不匹配。確保拉出 main 然后將 main 合并到 dev 或將 dev 分支重新定位到 main 的頭部。
- 代碼可能匹配,但模型本身的狀態可能會有所不同。我建議使用
dbt build -s orders_items_rev_influencer以確保所有上游模型都已構建在開發目標中。 - 可能有其他配置故意使 dev 和 prod 不同,這可能導致您的測驗在 dev 中通過而在 prod 中失敗。一種常見的策略是對開發中的大型資料集進行子集化,以便它們構建得更快(例如,通過過濾掉超過一周/一個月/一年的資料)。如果舊資料導致測驗失敗,您的測驗可能會在 dev 中通過并在 prod 中失敗。
從失敗的測驗開始的一個好地方是查看測驗失敗本身。為此,我將從目標目錄(例如)獲取已編譯target/compiled/test/scheduled_test_good/orders_items_revenue_influencer.sql的測驗代碼,并在 SQL 客戶端中針對 dev 和 prod 運行該代碼,并查看回傳的記錄。然后,您可能希望使用該資料在源表上撰寫一個新查詢,該查詢將回傳更多詳細資訊。一旦你知道哪條記錄失敗了,你就可以開始除錯模型了。
祝你好運!
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/524066.html
標籤:测试数据库
上一篇:模塊'@badeball/cypress-cucumber-preprocessor'沒有匯出成員'And'-TS2305
