Académique Documents
Professionnel Documents
Culture Documents
Abstract
SQL Server Integration Services (SSIS) is an Extract Transform Load
(ETL) tool of enterprise class, which is available as part of SQL Server 2005/
2008. The Data Transformation Service (DTS), which existed as part of SQL
Server 2000, is re-written in SQL Server 2005 as SSIS.
To avail of the improved features of SSIS, along with the SQL 2008 database
engine features, existing DTS packages will have to be migrated to SSIS.
However, some challenges, during the migration of complex DTS packages
(these include ActiveX Scripts, data driven query tasks, etc.) to SSIS, are
inevitable.
This white paper explains the upgrade process:
Usage of Upgrade Advisor
Different methods of upgrading DTS packages to SSIS packages
Possible exceptions and recommended work around for those exceptions
Oct 2008
Upgrade Advisor
Upgrade Advisor is a tool that is used to check readiness of SQL Server 2000/ 2005 database to be upgraded to SQL Server
2008. It reports issues that need to be rectified to ensure a successful upgrade from SQL Server 2000/ 2005 to SQL Server
2008. The server components that are analyzed for issues include:
SQL Server
Analysis Services
Notification Services
Reporting Services
Data Transformation Services
Integration Services
Of the above listing, this paper focuses only on DTS. Looking at the challenges we have in DTS to SSIS migration, it is
recommended to use Microsoft SQL 2008 upgrade advisor to check for upgrade issues not only on the databases, but also on
the DTS packages.
The Upgrade Advisor will not make any changes to the packages, but suggests the features and configuration changes that
might affect the upgrade process. It also provides links to documentation that describes the issue and its resolution process. It
can be used to define the scope of DTS to SSIS migration.
The upgrade advisor needs the DTS client to be installed on the machine. It needs the DTS object model to analyze the DTS
package and report the issues. It can be installed from the SQL 2008 installation media, using the SQLServer2005_BC*.msi
package. It installs other components as well, along with the DTS client as shown in Figure 1.
The upgrade advisor takes location of the DTS packages as input from the user. After analysis, the upgrade advisor reports
four types of issues:
Pre-Upgrade issues - need to be fixed before the upgrade process
Post-Upgrade issues - need to be fixed after the upgrade process
Migration
There are three ways to handle DTS packages during your SQL 2000 to SQL 2008 upgradation.
1. Without Migration/ Upgrade
2. Migration Wizard
3. Complete Rewrite
This white paper outlines the process of the upgrade with the first two methods. It also highlights the issues faced during this
upgrade and the tools that can be used for migration of DTS packages. The third approach is a complete rewrite of the DTS
packages into SSIS. The document explains advantages of rewriting DTS packages to SSIS as well.
2. Migration Wizard
Migration Wizard helps upgrading DTS packages to SSIS packages. It converts DTS packages to SSIS packages to a large
extent. Subsequently, the developer needs to rewrite those portions of packages that did not get upgraded properly, by using
SSIS tasks and transformations. During this process developer/ designer involvement is required, where the migration process
do not identify mapping objects of DTS package to SSIS package and retains it as DTS package tasks itself. Performance
improvements are possible with this approach. A drawback of this approach is that higher effort may be needed than
Without Migration/Upgrade approach.
The migration Wizard can be invoked from two locations:
a. In SQL Management Studio, the migration wizard can be found by right-clicking on Data Transformation Services
node, as shown in Figure 4
b. In Business Intelligence Development Studio (BIDS), the migration wizard can be found by right-clicking on the
Packages node, as shown in Figure 5
The migration wizard accepts the DTS package as a source that can reside either in SQL Server, or in windows folder, and the
destination where migrated packages need to be stored.
The migration of DTS packages to SSIS happens as much as possible. However, few of the DTS tasks - like data driven
query task, custom tasks, dynamic properties task, etc. - do not have equivalent mapping tasks available with SQL Server
2008. Even the ActiveX script task migration is not a straight forward activity. In such cases, the migration wizard attempts
migration. So, in this process, either the DTS package is migrated completely or some tasks are still kept as DTS 2000 tasks.
The following two scenarios explain the behavior of the Migration Wizard during upgrade.
Scenario 1
In this scenario, the DTS package transfers data from source to destination. Using the migration wizard, the package can be
successfully migrated.
When the package is migrated successfully, there will be no changes (or very minimal changes) required on the migrated
package, and it works as is in the SSIS environment. In this scenario, since all the components used in DTS package have
corresponding mapping components in SSIS, the package is successfully migrated. Figure 6 shows the post migration
package in SQL 2008.
Scenario 2
In second scenario, the migration wizard cannot map all the components of the DTS package to SSIS equivalent components.
Hence, the migration wizard keeps the component as it existed in the DTS package. Error! Reference source not found. shows
that the migrated package has the execute DTS 2000 package task for the non migrated task. This is kind of partial migration
and the DTS 2000 package task will continue to run using the backward compatibility support.
Figure 9 shows DTS packages editing, using the DTS designer support in BIDS.
Availability of the DTS designer components in the system can be viewed from add remove programs option, available in
Control Panel.
3. Complete Rewrite
This approach doesnt need any knowledge on the backward compatibility and DTS designer components. Even the upgrade
advisor is not required. It requires strong SSIS knowledge to rewrite the DTS package, using the new tasks in SSIS.
In this approach, the DTS package will be rewritten to achieve the functionality, by making use of the rich features
available with SSIS. This is the best approach and you can avail all the benefits of the new technology. The efforts required
in this approach would be the highest, and its worth putting the efforts as you would see a good amount of performance
improvement. It will also reduce the complexity of your DTS packages. Most of the times; Active X script task had to be used
in DTS to achieve functionality - like Looping, conditional logic, lookups, UPSERT statements, etc.
There are three basic reasons why the packages should be re-written in SSIS as mentioned below:
1. SSIS has major feature additions, which boosts the power of your ETL programs. Some of the important features are
listed below.
a. Enhanced Debugging features with super dump option
b. Security Enhancements
c. Deployment utilities
d. Separate Data Flow and Control Flow engine
e. More heterogeneous data sources supported
f. Various new transformations
g. Configuration Capabilities
h. Data Profiling Tasks to identify the data quality issues.
i. Cached lookup transformation
2. SSIS performance is better than DTS due to buffer oriented architecture. All the data is loaded and handled in the
memory. Due to this, SSIS transformations are faster than DTS. Also, in SQL 2008, the SSIS package is executed using
the parallelism.
3. DTS is deprecated by Microsoft, which means it will not be supported in future versions. SQL 2008 still supports the
backward compatibility.
Migration Wizard
Complete Rewrite
Efforts
Low
Medium
High
Complexity
Low
Medium
Medium
Performance Benefits
Low
High
Maintenance
High
Medium
Low
Looping
ActiveX Script Task is used to implement looping in DTS. It accesses the DTS object model to achieve the looping
functionality. A global variable is used to implement the loop variable. The script checks if the loop variable is less than the
maximum iterations and accesses the package object to invoke an appropriate step within the workflow. The code for looping
is available in Appendix A
SSIS has a feature called looping container. Any task that needs to be looped should be placed in the looping container.
Conclusion
Use upgrade advisor to check readiness of the source database for an upgrade. This will be helpful in scoping and effort
estimation for DTS migration to SSIS. Based on the number of issues, one can decide upon the desirable DTS packages to be
migrated and the ones that should be maintained and run with the DTS 2000 designer components support.
Upgrade advisor is a tool that helps in performing the upgrade. After the upgrade, DTS packages are migrated to SSIS, using
the Package Migration Wizard.
References
1. Why Upgrade to SQL 200S - http://www.microsoft.com/sqlserver/2008/en/us/oltp.aspx
2. Microsoft SQL 2005 Upgrade Advisorhttp://www.microsoft.com/downloads/details.aspx?familyid=1470E86B-7E05-4322-A67795AB44F12D75&displaylang=en
3. How to: Ensure Support for Data Transformation Services Packages http://msdn.microsoft.com/en-us/library/ms143755.aspx
4. SSIS backward compatibility - http://msdn.microsoft.com/en-us/library/ms143706.aspx
5. Mainstream support for SQL 2005 sp1 and SQL 2000 sp4.http://blogs.msdn.com/sqlreleaseservices/archive/2008/02/15/end-of-mainstream-support-for-sql-server-2005-sp1and-sql-server-2000-sp4.aspx
6. DTS Designer Componentshttp://www.microsoft.com/downloads/details.aspx?FamilyID=50b97994-8453-4998-8226fa42ec403d17&displaylang=en
Acknowledgements
We would like to acknowledge the support provided by the following:
1. Naveen Kumar (nkumar@infosys.com), Atul Gupta (atulg@lnfosys.com) - Principal Architects, Microsoft
Technology Center. Their timely reviews and suggestions were very valuable to get this paper in its current
shape.