我正在寫入2008年SSIS包中的平面文件目標。它的99.99%正常工作。但是,我在目標文件中獲得一個重複記錄。SSIS平面文件目標中的重複記錄
這裏是包的基本流程:
1.讀取的兩個ISO-8859-1編碼的文件和編碼它們的文本到UTF8在存儲器
2.合併兩個文件一起在存儲器並加載它們成查找高速緩存
3.從磁盤讀取
4.匹配從源文件的ID列中查找緩存
5.如果ID在查找高速緩存中的ID匹配的ID列中的另一源文件,將其寫入到匹配文件,如果ID不匹配將其寫入另一個文件
一切正常 從開始到結束。但是,我在匹配文件中得到了重複。我開始懷疑複製是由加入時查找緩存文本文件中的文件結尾(或其他)特殊字符引起的。這些文件是在UNIX系統上生成的(但我在閱讀時將它們編碼爲UTF8)。重複記錄每次都是相同的記錄。我如何避免重複(或找出重複的來源)?我無法使用刪除重複項,因爲目標中有合法的重複項。我一直試圖弄清楚這幾個星期。
我目前的理論是,SSIS查找緩存不能處理來自平面文件源的超過250,000條記錄。我認爲它需要再次從源代碼中讀取(或者沿着這些代碼行),並且在執行此操作時會生成一個副本。我通過刪除源文件中的重複行來測試了這一點。然後我得到另一個重複的記錄。然後我把總行數減少到約25萬,並且我沒有得到任何重複。我已經運行了大約10次的流程,並且沒有收到少於250,000條源記錄的重複項。 還有其他建議嗎? – 2011-04-15 15:39:01