Azure Data Factory is a cloud-based data integration service while SQL Server Integration Service (SSIS) is the on-premise service for various operations including data transformations in ETL. However, it is still not matured as SSIS, and has a lot of limitations. We have used SSIS on-premise and SSIS in Azure is quite new. The purpose of this exercise is to experiment SSIS in Azure with ADF V2 hhosting the runtime in Azure.
Microsoft now provides an Azure-SSIS integration runtime (IR) in Azure Data Factory V2 to deploy and run SSIS packages on Azure. Please refer to https://docs.microsoft.com/en-us/azure/data-factory/concepts-integration-runtime#azure-ssis-integration-runtime for details on Azure-SSIS integration runtime. We can use SQL Server Data Tools (SSDT) or SQL Server Management Studio (SSMS) to deploy SSIS packages to this runtime on Azure, once Azure-SSIS integration runtime is deployed and configured. Deployment method is not graphical currently. Below is a summary on how to configure and deploy Azure-SSIS integration runtime and deploy SSIS packages.
We should have an Azure subscription for this exercise. Further, we need an SSIS package developed using SSDT for testing. Deployment of Azure-SSIS integration runtime (IR) in Azure would be done using PowerShell scripts.
- Launch Windows PowerShell ISE (X86) as administrator, and import AzureRM module as below.
Import-Module AzureRM
If Azure RM is not installed, you would need to install AzureRM with Administrator privileges as per below instructions.
-----------------------------------------------------------------------
Untrusted repository
You are installing the modules from an untrusted repository. If you trust this repository, change its InstallationPolicy value by running the Set-PSRepository cmdlet.
Are you sure you want to install the modules from 'PSGallery'?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "N"): Y
--------------------------------------------------------------------------
Answering as Yes or Yes to All will install the module. If you have a NuGet version older than 2.8.5.201, you will be prompted to download and install a latest version of NuGet. Please refer to https://docs.microsoft.com/en-us/powershell/azure/install-azurerm-ps?view=azurermps-4.4.0 for any details.
- Create a resource group using Azure Portal under EastUS or EastUS2 location. Create a data factory with a unique name using Data Factory V2.
- Next, run the below PowerShell script from PowerShell ISE (X86). Modify the script according to your settings before execution.
- Once completed we can connect to the SSIS Catalogs created from the above step using SSMS version 17.2 or higher. In the Connect to the server dialog box in SSMS, enter the server name and credentials where SSIS Catalogs are created. Select Options and enter SSISDB in the Connect to database field in the expanded option dialog box to view the SSIS Catalogs.
- Create an SSIS project using SSDT. Create an SSIS package with a data flow task or SQL execute task. Build the project without errors. Please make sure an isac package is created in the build folders.
From the deployment wizard in the above step, locate isac file as the project file. Next, select Integration Services Catalog, and enter deployment server details in the destination page. You must enter the fully qualified name of the DB server. Browse the folder you created in the SSIS catalogs and deploy the SSIS packages. Once you have successfully deployed, you will see a similar interface as below. You can right click on the SSIS packages to execute.
With this installation, it enables connectivity to Excel, Access and various Azure data sources. However, we cannot install third party components at the present. We can deploy SSIS packages in project deployment model and currently package deployment model is not supported. https://docs.microsoft.com/en-us/sql/integration-services/lift-shift/ssis-azure-lift-shift-ssis-packages-overview#benefits
Many developers are familiar with SSIS, and SSIS can be used to build complex data transformations easily. Many people have already built SSIS packages. With Azure-SSIS runtime we can easily deploy the existing packages to Azure rather than having to recreate or migrate.