2012-08-11 47 views
4

我被要求接管剛剛寫過的SSIS包的所有權。看起來有可能進入並修改,編輯和升級這個軟件包,但它對於軟件包的工作量看起來也非常麻煩。將SSIS包轉換爲.NET應用程序?

我的任務大致是這樣的:遍歷包,查找特定表中某些特定列的任何用法,更改它們以匹配最新的數據庫變更集,並寫出一些額外的日誌記錄數據以幫助團隊診斷任何特定問題。

由於SSIS包含大約3兆字節的文本,SQL語句和非常簡單(但冗長)的代碼路徑,所以對我來說這似乎令人望而生畏。我已經花了我一段時間來雙擊每個SSIS對象並瀏覽其設置,以查看我是否能夠發現我被要求維護的列,並且SSIS一直在拋出連接錯誤(正確的是,因爲我的開發環境被阻止從生產數據庫中刪除)。

我真的很想考慮將此SSIS包轉換爲.NET應用程序,但是我一直無法找到任何可以幫助我實現的工具。

有沒有人有建議維護這個SSIS包或將其轉換爲適當的應用程序?

回答

4

回覆那些喜歡誰.NET到SSIS

SSIS並不意味着傳輸數據量小。它可以,但是當數據傳輸量大到100到500 GB,並且涉及複雜的業務邏輯時,SSIS比.NET更受歡迎。如果有多個數據文件包含多個數據源,那麼SSIS就可以走了。 .Net是首選,如果你有小的進口或出口,幾乎沒有業務邏輯來增強或轉換數據

不幸的是,沒有工具可以將ssis包轉換爲.NET應用程序,但有免費的工具可以幫助您你可以在不打開的情況下提供更多有關你的軟件包的信息

BI Documentor是一個工具,它爲您提供了SSIS包的完整架構。您只需將應用程序指向dtx pkg即可。如果您有許多sql代碼和表達式,需要修改的變量,連接管理器,你可以在這個工具的幫助下做到這一點。有時在BIDS中打開一個複雜的ssis包需要很多時間,所以在這種情況下這可能是有用的。

有一個叫SSIS Log Analyser多了一個工具,它可以幫助您在不打開BIDS

+0

謝謝 - 這看起來像我所能得到的一樣近。我將檢查BI Documentor,看看是否可以提供幫助。 – 2012-08-13 16:27:13

+0

首選誰?我的偏好恰恰相反。 – 2015-01-06 16:07:44

+0

如果它涉及一個*非常複雜的業務邏輯*,那麼它肯定不在SSIS中。業務邏輯不應該遍佈各處,我曾經看到人們將業務邏輯放在應用程序,程序中,觸發器中,而且我不相信現在有人希望在任何地方都有業務邏輯,所以最好將它隔離到一個地方地點。 – Alisson 2018-01-26 13:06:14

0

我不認爲有任何具體的工具。只需要使用一些文本編輯器並查看代碼並確定需要處理的更改列即可。

個人而言,我不喜歡SSIS,因爲它太多了「可視化工具」,並且可能會使用.NET應用程序,但是由於您已經完成了所有工作,並且您可能不想投入你的職業生涯重新構建你已經獲得的數據轉換工具,只需在SSIS中進行這些更改,使其工作,然後繼續你愉快的編程生活......或者甚至更好,找到一些SQL Server管理員爲你的,他們喜歡SSIS。

+0

這是沿着我的建議的線路多,我同意你的看法。 – GrayFox374 2012-08-11 05:13:47

5

只是爲了好玩,我寫一個SSIS反編譯調試包。在查看運行Integration Services的Visual Studio的UI並將其與.DTSX文件中的原始XML數據進行比較後,我能夠將DTSX文件轉換爲C#/ .NET項目。

我將這一點與一小部分剖析數據結合起來,通過追蹤出現問題的組件,我能夠在SSIS包中獲得40%的速度提升。

似乎很適合我使用的SSIS包。也許這會幫助別人。

https://github.com/tspence/csharp-dessist