June 2006 - Posts

A tool to improve DTS to SSIS migration

I wrote a small tool to improve the migration from SSIS to DTS. The problem I had to solve was this: I have many Data Transform Tasks that have a simple behavior, read data from a query and write data on a table, using fast load with batch insert.

You say: why not to use the SSIS Migration Wizard? This is exactly what I want to do, but unfortunately I used UDL files into my package and the migration wizard do not migrate them and leave embedded a legacy DTS package for each Data Transform Task.

My idea was to modify the DTS changing properties where needed, and my tool (DtsToSsisPrepare) generate a new DTS file that can be better migrated to SSIS.

This is the command line help:

Dts to SSIS Prepare 1.0.0.0
Syntax: DtsToSsisPrepare.exe [switch:value]
  /ConsolidateUdl
     Consolidate UDL connections into regular connections
  /OptimizeConnections
     Optimize connections recycling the same connection for several tasks
  /RemoveAdvancedTransformations
     Remove advanced transformations phases from Transform Data Task
  /ResetMaxErrorCount
     Reset Maximum Error Count property from Transform Data Task
  /DtsSource
     Source DTS file name
  /DtsDestination
     Destination DTS file name
  /help
     show help
  /all
     Activate all conversion features

The best way to use the tool is to specify /all to enable all conversions.
DtsSource and DtsDestination are mandatory parameters.

I wish to write an article explaining the tool behavior in the coming days, in the meantime I'd like to receive feedback on this. Full source code and binaries are downloadable on www.sqlbi.eu. Enjoy!

TableDifference: a faster way to handle SCD

I had the opportunity to test TableDifference (a component written by Alberto Ferrari) since early versions and I can say it is a very interesting way to handle Slowly Changing Dimension (SCD) much faster than with the standard SCD component of SSIS.

While you work with dimensions with millions of members and you don't have a "LastModified" field to filter variations since last dimension processing, the need to compare the whole dimension with an equally wide table force you to implement custom solutions. TableDifference is a general purpose component that helps you to implement fast SCD processing in a more standardized way.

TableDifference is well described in this article and you can download source code and binaries here.