我已經創建了一個SSIS包,該包指定了5列中有10列的表作爲我的數據源。該數據源被饋送到下游的其他幾個SSIS組件。SSIS上游數據源修改
如果我然後想要將數據源中引用的列更改爲包含其他5個列或從指定的原始5中刪除列,是否有方法可以輕鬆傳播其他列或缺少組件下游?
我已經創建了一個SSIS包,該包指定了5列中有10列的表作爲我的數據源。該數據源被饋送到下游的其他幾個SSIS組件。SSIS上游數據源修改
如果我然後想要將數據源中引用的列更改爲包含其他5個列或從指定的原始5中刪除列,是否有方法可以輕鬆傳播其他列或缺少組件下游?
這取決於你在SSIS包中做了什麼。如果您有任何asynchronous components,您需要觸摸每一個,讓它知道新列應該通過它們。
如果您的數據類型相同,並且您只想將column6
替換爲column4
,那麼您可以在查詢中完成此操作,並且它將會正常工作。因此,
SELECT column6 as column4, ... FROM mysource
只要數據類型匹配,SSIS應該隨它一起滾動。你的軟件包的未來維護者可能不會感激它。
新的元數據將自動傳播到下游。只要你不在下游使用它們,你就不需要修改任何東西。但是,如果您從源修改「原始」列,則需要在使用該列的所有組件中刷新元數據。如果沒有組件使用它,你應該沒問題。
更改無法自行傳播,需要程序員在每個組件上相應地檢查元數據。
謝謝rvphx!它看起來像列被傳播,直到它到達一個異步轉換,在這種情況下合併轉換和合並下的所有轉換。 – crosan
謝謝Bill!我在2005年發現了一篇文章Jamie Thompson在這方面的文章:http://consultingblogs.emc.com/jamiethomson/archive/2005/02/11/SSIS_3A00_-Asynchronous-and-synchronous-data-flow-components.aspx From他說這聽起來像可能不是一個簡單的方法來做到這一點。 – crosan