2017-08-24 52 views
0

我有一個ETL項目,我用Visual Studio 2015開發SSIS使用。我已經添加了一個新的維度鍵列到我的數據倉庫中的一個事實表,在數據流中添加查找以從適當的維度表中獲取主鍵。我把所有這些都設置好了,它運行良好,沒有錯誤,但是我得到的結果是不正確的。每行都爲該列填充-1,這就是我們使用派生列組件默認爲NULL的值。我知道這些值不是NULL,因爲SSIS:奇怪的問題與特定查找

1)我使用SSMS中的源組件中的源組件以及源組件中的預覽按鈕,手動檢查了這些值。 2)我通過visual studio手動運行包,並在查找前後啓用了數據查看器,並且兩個查看器都顯示了輸入列和查找列的正確值。 3)我從忽略失敗更改爲重定向行到錯誤輸出,並設置一個平面文件的目的地打印輸入密鑰,據說是NULL,並且該文件顯示我期待的所有有效密鑰。

我已將這些鍵和手動完成的查找添加到我的暗淡表格中,以驗證查找列是否匹配並存在。這是真正奇怪的部分。如果我單獨運行包,那麼一切正常。當我通過目錄或通過SQL代理運行整個主包時,那就是當我得到全部-1值時。我知道沒有任何進一步的任務正在修改該值,因爲我只是將它添加到表格中。我無法弄清楚爲什麼我的所有行都被重定向到錯誤輸出,但它們不是NULL值。如果任何人有任何不同的建議可以嘗試,我都是耳朵/眼睛。

回答

0

我知道這可能很愚蠢,但你可能沒有在目的地映射正確的列或者可能根本不映射?

+0

是的映射是正確的。如果我通過Visual Studio自己運行包,或者通過目錄運行它,那麼它會正確填充。我非常接近從頭開始重新構建整個軟件包,看看是否能解決這個問題,但我真的很想知道是什麼導致了這個問題。 – dmcnair81