Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Convert an SSIS package to a .NET application?

I've been asked to take over ownership of an SSIS package that was written a while ago. It certainly seems possible to go in and modify, edit, and upgrade this package, but it also seems extremely cumbersome for the amount of work the package does.

My task is roughly this: Sift through the package, find any usage of some specific columns in specific tables, change them to match the latest database changeset, and write some additional logging data out to help the team diagnose any particular problems.

This appears daunting to me because the SSIS package contains about 3 megabytes of text, SQL statements, and extremely simple (but lengthy) code pathways. It's already taken me a while to double click on each SSIS object and skim through its settings to see if I can spot the columns I've been asked to maintain, and SSIS keeps throwing connection errors (rightly so, because my dev environment is blocked off from the production database).

I'd really like to consider converting this SSIS package to a .NET application, however I haven't been able to locate any tools that could help me do so.

Does anyone have suggestions for maintaining this SSIS package or converting it to a proper application?

like image 464
Ted Spence Avatar asked Aug 11 '12 04:08

Ted Spence


People also ask

Does SSIS use .NET framework?

SSIS projects don't target a specific . NET framework. The framework dropdown you see when creating a new project only filters the project templates in the dialog.

How do I open an existing SSIS package in Visual Studio?

In Visual Studio, click New > Project on the File menu. In the Installed Templates area of the New Project window, expand Business Intelligence, and click Integration Services. Select Integration Services Import Project Wizard from the project types list.

Can SSIS run C#?

SSIS allows the developer to choose between two different scripting languages: C# or Visual Basic (VB).

Is SSIS being deprecated?

Microsoft is clearly continuing to support SSIS, and with its ubiquitous use in enterprises worldwide, it's not likely to be deprecated any time soon.


2 Answers

Just for fun I wrote an SSIS decompiler. After a bit of looking at the UI of Visual Studio running Integration Services, and comparing that to the raw XML data in the .DTSX file, I was able to put together a program that converts the DTSX file into a C# / .NET project.

I combined this with a tiny bit of profiling data, and I was able to get a 40% speed improvement in my SSIS package by tracking down the components that had problems.

Seems to work pretty well for the SSIS packages I use. Maybe this will help someone else.

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

like image 175
Ted Spence Avatar answered Nov 15 '22 05:11

Ted Spence


Replying to those who prefer .NET to SSIS

SSIS is not meant to transfer small amount of data . It can do , but when the data transfer is huge around 100 to 500 GB and involves a pretty complex business logic then SSIS is more preferred than .NET.If there are multiple data files with multiple data sources then SSIS is way to go . .Net is preferred if you have small import or export with very little business logic for enhancement or transformation of data

Unfortunately there is no tool out there which can transform you ssis package to .NET app but there are free tools to help you give more information about your package without opening it .

BI Documentor is a tool which gives you the complete schema of your SSIS package .You just need to point the application to your dtx pkg .If you have numerous sql codes and expressions,variable ,connection manager which you need to modify ,you can do this with the help of this tool .Sometimes Opening a complex ssis package in BIDS takes a lot of time so this may be useful in this case .

There is one more tool called SSIS Log Analyser which helps you to debug your package without opening BIDS

like image 45
praveen Avatar answered Nov 15 '22 04:11

praveen