We are doing a huge Data Migration Project using SSIS packages. We were insisted on not using stored procedures in SSIS packages. Can you please suggest whether we should be using stored procedures in SSIS packages or not? What are the advantages of using stored procedures?
It is correct that merge statements can easily be used in SSIS and your directive to encapsulate everything in SSIS is not necessary, as SQL processing aggregations faster than SSIS, for example. Further, if you are not deploying to SSISDB or have proper logging wrappers or email alerts, then troubleshooting your ETL is going to be more difficult via the SQL agent than otherwise as the errors are frequently more cryptic - thus the SSISDB and its reports in 2012. SSIS can be extremely powerful, however.
Here is a fairly blatant benchmark that will tell you never to use the out of the box SCD ever in SSIS. Taskfactory however does have a nice deployable which does basically merges behind the scene.
SSIS has more powerful functions than Stored Procedures.
However you can easily use Execute T-SQL Statement tasks in SSIS for existing tasks, and then build out from there.
SSIS is superior at the vast majority of ETL
Below Via Microsoft
Microsoft Integration Services is a platform for building enterprise-level data integration and data transformations solutions. You use Integration Services to solve complex business problems by copying or downloading files, defining business logic, sending e-mail messages in response to events, updating data warehouses, cleaning and mining data, and managing SQL Server objects and data. The packages can work alone or in concert with other packages to address complex business needs. Integration Services can extract and transform data from a wide variety of sources such as XML data files, flat files, and relational data sources, and then load the data into one or more destinations.
Integration Services includes a rich set of built-in tasks and transformations; tools for constructing packages; and the Integration Services service for running and managing packages. You can use the graphical Integration Services tools to create solutions without writing a single line of code; or you can program the extensive Integration Services object model to create packages programmatically and code custom tasks and other package objects.
A stored procedure in SQL Server is a group of one or more Transact-SQL statements or a reference to a Microsoft .NET Framework common runtime language (CLR) method. They can be called from within SSIS just the same as the unencapsulated SQL statement. For more information about it, please see: http://msdn.microsoft.com/en-us/library/ms190782(v=sql.110).aspx
Related
I am looking for the different ways how within SSIS APIs can be called (e.g. getting data from a JSON file) or by calling APIs objects in SSIS can be accessed or configured (e.g. triggering an SSIS package).
Since I'm relatively new to SSIS and also have no hands-on experience with APIs in general, it's a bit hard to figure out the topic for me. What I have already found out through research is:
You can call an API from your own code within a script task, but for that you need .NETor C# experience. (source)
There are third party tools like ZappySys, KingswaySoft or CozyRoc that provide so called Custom Tasks in SSIS, which are programmed by the third party themselves in .NET or C# (commercial).
Interfaces like APIs are one of the key requirements when it comes to data integration tools? It seems to me that SSIS is "lagging behind" here.
Doesn't SSIS provide standardized tasks that allow the user to communicate with APIs like JSON, REST or Webhooks in a simple (no code) way?
I'm sorry to say, SSIS is lagging behind in terms of integration functionality. Most of features required in a modern platform are in Azure data factory.
Your research of using a script component or 3rd party component is your only option.
I know it's not a new question but maybe somebody find some documentation and/or the sql scripts and SSIS ETL used to create Adventure works DW (2014 at least).
Not sure why Microsoft released a lot about AdventureWorks for Analysis Services ( https://github.com/Microsoft/sql-server-samples/releases/tag/adventureworks-analysis-services ) but nothing for SSIS.
Any help will be much appreciated.
Adventure works DW (tables and procedures) are part of an executable which installs the SQL objects (facts and dimension) tables in the target edition of SQL Server instance.
Never has been the case to create such dimensional model using SSIS since this data is static and one-off. You may want to create SSIS artifacts on top of this DW and there are a lot of samples and workflows available online for reference.
One such repository on Git is - Repo link
We are planning to migrate an Oracle 10g database to SQL Server 2008 R2. At the moment nothing is implemented in the target database and this will give us the opportunity to change and improve the existing schema during the migration.
Not only the data, but also stored procedures and views have to be imported.
I already worked with SSIS and I found an excellent product for data manipulation. A colleague mentioned SSMA for the migration. However after some research on the net it seems that it would be suitable mainly for data migration and conversion, while SSIS seems to provide a wider set of functinalities (Tasks, custom scripts, etc).
Which are the pro/contra of the two products and which one would best fit for the task?
I would recommend a hybrid approach. Use SSMA to convert the schema and objects from Oracle to SQL Server. Then improve and or change the objects as you see fit on the SQL end. Once your satisfied with your new schema. Use SSIS to move the data still waiting on the Oracle side into the new schema waiting for it on SQL.
As for a quick comparison of SSMA and SSIS... SSIS is by far superior for the ETL aspects of moving data from one place to another; but I wouldn't necessarily recommend it for the creation/modification phase of what you describe above. I think you'll find that process much easier with SSMA. On the flip side SSMA doesn't offer much in the way of transformation during the copy process.
I would go for an hybrid of the two.
Do you know you can trig SSMA from command line? This way you can execute the SSMA migration as a part of the SSIS solution.
You can also save your SSMA project as an SSIS package:
Once migrated keep doing the extra work with SSIS.
I've hit the inevitable state where I have to do a diff on the code within two versions of a SSIS package.
What have you used successfully other than what I'm going to do now by opening up 2 instances of VS and go over it box by box and variable by variable?
Note: The things that are important to compare in my case are:
Variables
Code in Execute SQL Tasks
Order of Tasks
Data Flows
Order of data flow components
Try BIDS Helper. It prepares both versions by normalizing whitespace and splitting long lines before making the comparison. Most changes can be easily recognized.
A Visual Studio extension has been deployed in March 2017 to Visual Studio Marketplace. It is called SSIS Compare and Merge Tool. You can install it using Tools menu than Extensions and updates and search for online extensions or download and install the .VSIX file from Visual Studio Marketplace
https://marketplace.visualstudio.com/items?itemName=TamasTIPost.SSISCompareMergeTool-18170
There are some utilities that will do this:
http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?dg=microsoft.public.sqlserver.dts&tid=0619e97f-4dd4-4946-bd41-888e751a5d72&cat=en_US_2b8e81a3-be64-42fa-bd81-c6d41de5a219&lang=en&cr=US&sloc=&p=1
ApexSQLDiff
Randy
I use Notepad++ to compare dtsx (xml) files. Some times even write some code to extract components for example to extract all SQL stored in a large SSIS package with dozens of ExecuteSQL tasks.
UPDATE: Just found this Bi xPress. Here is a video explaining how it works
Updated with the latest locations and consolidated the different answers.
There are a number of tools that try to help managing, comparing and merging SSIS and other otherwise difficult to merge file formats favored by SQL Server Analysis Services, Integration Services and reporting services.
Putting SQL code in stored procedures and managing these using SSDT and Git/TFVC is a useful first step. For the more exotic file formats extend your toolbelt with additional tools like:
BI Developer Extensions (formerly BIDS Helper) free!
Apex SQL Diff Pro
Bi xPress
SSIS Compare Merge Tool
Each work slightly differently and the cost varies, but they all apply normalization and visualization to help you understand and potentially merge the differences between these files.
Aside from that, many changes may be possible with enough understanding of the XML using tools like Notepad++ or Araxis Merge. Many merge tools now have have special XML compare/merge capabilities where you can configure how files should be normalized prior to comparison.
We have a large collection of DTS packages that need to be converted to SSIS as part of SQL upgrade?. How effective is this tool compared to the wizard?. Some of the functionality that is available in DTS
Import/Export
SQL operations
Copying/Renaming/moving files
Activex scripts (Not complex, most of the business functionality is in Stored procedures). Any help in sharing documentation or web links or any insight is well appreciated.
You can find a full comparison here: http://www.pragmaticworks.com/products/business-intelligence/dtsxchange/DTSxChange-vs-MSWizard.htm
At a high-level, the existing Microsoft wizard does not handle some common tasks like Dynamic Properties Task. It also doesn't handle things like ODBC or all the flat file conditions. With the DTS xChange tool, it will migrate pretty much all conditions, re-engineer the logging and auditing framework of the package and turn on some of the new features in SSIS. It also includes BI xPress, which will help migrate ActiveX Scripts post-migration with code snippets.