Lors de la migration de SQL Server sur site vers le cloud, il y a toujours une question sur la façon de migrer les packages SSIS ou d’autres travaux ETL vers le cloud. Azure Data Factory SSIS Integration Runtime (IR) propose d’exécuter des packages SSIS dans le cloud.
Cependant, dans certaines circonstances, ces travaux ETL ou packages SSIS exécutent des exécutables tels que .EXE dans le cadre d’un flux de travail ou de pipelines ETL. Cela devient plus difficile si vous migrez SQL Server exécuté sur site vers PaaS car il n’y a pas d’accès au calcul PaaS pour exécuter ces exécutables.
Dans cet article, je vais décrire comment exécuter des packages SQL Server Integration Services (SSIS) sur un Azure-SSIS Integration Runtime (Azure-SSIS IR) avec un runtime d’intégration auto-hébergé (IR auto-hébergé) configuré en tant que proxy.
Cette fonctionnalité nous permet d’accéder aux données et d’exécuter des tâches telles que des exécutables ou des processus sur site ou sur une machine virtuelle n’importe où.
Cette fonctionnalité ne peut être activée que sur SSIS Data Flow Task et Execute SQL/Process Tasks pour le moment. Vous pouvez activer l’exécution de la tâche de processus d’exécution dans le runtime d’intégration auto-hébergé.
SSIS — Architecture SHIR
Vous trouverez ci-dessous l’architecture de haut niveau utilisée pour configurer cet environnement.
Cette architecture provisionne Azure Data Factory avec des points de terminaison privés.
- Les PE ADF sont créés sur le sous-réseau affiché en rouge (par exemple 10.0.2.0/24).
- Le compte de stockage doit être configuré avec un point de terminaison privé et connecté à l’un des sous-réseaux du réseau virtuel d’instance gérée.
- SSIS-IR doit être configuré avec l’injection vNet sur les mêmes sous-réseaux (par exemple, 10.0.2.0/24). si vous utilisez la méthode d’injection vNet express, vous avez besoin d’un sous-réseau dédié.
- Dans cet environnement de laboratoire, la passerelle VPN est configurée pour avoir une connectivité sur site. la configuration d’une passerelle VPN dépasse le cadre de cet article.
- Configurez les règles de pare-feu entrantes pour les sous-réseaux où SSIS-IR est monté pour autoriser les ports 29876 et 29877.

- Configurez le runtime d’intégration auto-hébergé (SHIR) dans ADF et installez le SHIR sur la machine sur site. SHIR établit une connectivité avec ADF via la connexion VPN. Dans un environnement d’entreprise, il peut également s’agir d’une connectivité Express Route (ER).
- SQL Server Managed Instance (MI) fait également partie de cette topologie pour les exemples de cas d’utilisation de lecture et d’écriture de données. Cependant, la configuration de MI dépasse également le cadre de cet article.
Installer et configurer le runtime d’intégration auto-hébergé (SHIR)
Utilisez les étapes suivantes pour créer un IR auto-hébergé à l’aide de l’interface graphique Azure Data Factory.
Sélectionnez Integration runtimes dans le volet de gauche, puis sélectionnez +Nouveau.

Sur la page de configuration du runtime d’intégration, sélectionnez Azure, auto-hébergé, puis sélectionnez Continuer.

Sur la page suivante, sélectionnez Auto-hébergé pour créer un IR auto-hébergé, puis sélectionnez Continuer.
Donnez un nom unique à votre IR. vous pouvez également fournir une description facultative. Sélectionnez ensuite Créer.

Cela générerait deux clés qui seraient utilisées pour configurer SHIR. Dans cet article, j’utilise l’option deux pour installer le runtime d’intégration, qui est « Configuration manuelle ».
Téléchargez le runtime comme indiqué ci-dessous à partir de l’option 2 sur la machine sur laquelle SHIR va être configuré.
Exécutez le programme d’installation pour installer le SHIR.
Une fois l’installation terminée, sur la page Register Integration Runtime (Self-hosted), fournissez la clé que vous avez capturée précédemment et sélectionnez Register.
Remarque : Si vous utilisez un point de terminaison privé pour votre ADF. Assurez-vous que la machine sur laquelle vous installez SHIR doit résoudre le point de terminaison privé ADFt.
Sur la page Nouveau nœud d’exécution d’intégration (auto-hébergé), sélectionnez Terminer.
Le processus d’inscription va commencer. Cela peut prendre quelques minutes. Une fois le runtime d’intégration auto-hébergé correctement enregistré, la fenêtre suivante s’affiche :
Cliquez sur « Lancer le gestionnaire de configuration » ; il devrait ressembler à celui illustré ci-dessous.
Visitez l’interface graphique ADF. Cliquez sur Gérer → Runtime d’intégration.
Vérifiez l’état de SHIR. Il doit être dans l’état « En cours d’exécution », comme indiqué dans la figure ci-dessous.
Configurer et configurer le runtime d’intégration SSIS (SSIS IR) avec SHIR en tant que proxy
Dans les étapes suivantes, nous allons créer SSIS IR et définir SHIR comme un proxy créé dans les étapes précédentes.
Dans l’interface graphique ADF, sélectionnez Runtimes d’intégration dans le volet de gauche, puis sélectionnez +Nouveau.
Sélectionnez Azure-SSIS pour la configuration du runtime d’intégration, comme illustré dans la figure ci-dessous.

Fournissez les éléments suivants :
- Nom: nom du runtime d’intégration.
- Emplacement: spécifiez l’emplacement où le runtime d’intégration est créé.
- Taille du nœud: La taille du nœud correspond à la taille et à la puissance de la ou des machines virtuelles qui exécutent votre environnement d’exécution d’intégration. Si vous prévoyez d’exécuter de nombreux packages en parallèle, il est recommandé de sélectionner un niveau hautes performances pour cette machine virtuelle. Cliquez sur Configurer les performances pour le runtime d’intégration Azure-SSIS — Azure Data Factory | Microsoft Docs pour en savoir plus sur la configuration de SSIS-IR pour des performances élevées.
- Numéro de nœud : ajuste l’évolutivité du runtime d’intégration. Le débit du runtime d’intégration est proportionnel à AzureSSISNodeNumber. Définissez d’abord AzureSSISNodeNumber sur une petite valeur, surveillez le débit du runtime d’intégration, puis ajustez la valeur pour votre scénario.
- Édition/licence : sélectionnez la licence appropriée en fonction de votre environnement et de vos besoins. Vous pouvez également tirer parti des avantages hybrides Azure pour SQL Server dans les licences.
- Cliquez sur Continuer.
Remarque : Assurez-vous d’autoriser les ports 29876 et 29877 sur le sous-réseau NSG, sur lequel vous allez monter l’IR.
Configurez maintenant l’injection vNet pour SSIS IR.
Cochez la case « Configurer le runtime d’intégration auto-hébergé en tant que proxy… ». Sélectionnez SHIR dans la liste déroulante créée précédemment. Cela nécessite également un service de liaison de stockage.
Sélectionnez votre service lié Azure Blob Storage existant ou créez-en un nouveau qui référence le magasin de données intermédiaire à utiliser lors du déplacement de données entre les runtimes d’intégration auto-hébergés et Azure-SSIS. À cette fin, la propriété connect Via du service lié au stockage intermédiaire doit être définie sur « AutoResolveIntegrationRuntime ».
Fournissez également un chemin d’accès intermédiaire → Spécifiez le chemin d’accès dans votre magasin de données intermédiaire à utiliser lors du déplacement de données entre les runtimes d’intégration auto-hébergés et Azure-SSIS ; un conteneur par défaut sera utilisé s’il n’est pas spécifié.
Effectuez la validation vNet et cliquez sur « Continuer ».
Cliquez sur « Créer » sur la page de résumé. Cela provisionnera votre SSIS-IR avec SHIR agissant en tant que proxy.
Une fois créé avec succès, assurez-vous que l’état Azure SSIS IR et SHIR affiche « Running » afin de l’utiliser pour exécuter les packages SSIS.
Créer un exemple de fichier .bat exécutable de démonstration
Créez un fichier batch dans le bloc-notes avec ce qui suit. L’exécution de ce fichier .bat créera un fichier demo.txt avec le contenu fourni, comme indiqué ci-dessous.
echo 'This is a test from SSIS IR' > demo.txt
Développer un exemple de package SSIS
Dans les étapes suivantes, nous allons développer un package SSIS très simple qui appellerait le fichier .bat créé précédemment à l’aide de « Execute Process Task ».
Lancez Visual Studio.
Créez un nouveau projet, comme indiqué ci-dessous, en sélectionnant l’un des modèles de projet de services d’intégration.
Créez maintenant un package dans VS.
Sélectionnez « Nouveau package SSIS » et indiquez un nom de package.
Faites glisser « Exécuter la tâche de processus » de la boîte à outils SSIS vers le panneau du concepteur.

Double-cliquez sur « Exécuter la tâche de processus » et cliquez sur l’onglet Processus comme indiqué ci-dessous.

Spécifiez « Executables » et « WorkingDirectory » comme indiqué ci-dessous. Dans mon environnement, les entrées suivantes ont été faites. Veuillez apporter des modifications en fonction de votre configuration.
Exécutables → Demo.bat
Répertoire de travail → C:\Development\bat
Cliquez avec le bouton droit sur Exécuter la tâche de processus et cliquez sur Propriétés.
Définissez ExecuteOnProxy = True, comme indiqué dans la figure ci-dessous.
Une fois que le paquet est prêt, assurez-vous qu’il ne contient aucune erreur. Cliquez avec le bouton droit sur le projet et sélectionnez l’élément de menu Construire, comme indiqué ci-dessous.
Charger le package dans Azure Files
Chargez votre package dans les fichiers Azure. La configuration d’un compte de stockage et de fichiers Azure dépasse le cadre de cet article. Assurez-vous qu’ils sont disponibles pour les packages à télécharger.
Pipeline de conception dans ADF
Lancez l’interface graphique ADF.
Vous pouvez créer un pipeline comme indiqué ci-dessous.
Sous l’onglet Général, faites glisser et déposez le package Exécuter SSIS comme indiqué ci-dessous.
Cliquez sur l’onglet Paramètres et remplissez les champs suivants comme indiqué ci-dessous.
Sélectionnez l’IR créé.
Spécifiez le nom du dossier, du projet et du package.
Cliquez sur Publier.
Assurez-vous que l’IR que nous avons créé précédemment est dans l’état « Running » avant d’exécuter le pipeline. Cliquez sur Gérer → Runtime d’intégration dans l’interface graphique ADF.
Exécutez le pipeline. Cliquez sur Ajouter un déclencheur → Déclencher maintenant.

Cliquez maintenant sur Gérer → Exécutions du pipeline.

Cliquez sur la canalisation. Comme vous pouvez, le statut indique « Réussi ».

Vérifiez dans la machine virtuelle ou sur site que la « tâche d’exécution de processus » a été exécutée via le SHIR. Comme vous pouvez le voir, le fichier .txt est créé à la suite de l’exécution du pipeline.
Conclusion
Après avoir configuré l’IR auto-hébergé en tant que proxy pour SSIS IR, vous pouvez déployer et exécuter vos packages pour accéder aux données et/ou exécuter des instructions SQL. De plus, vous pouvez exécuter n’importe quel exécutable/processus, que ce soit sur site ou sur une machine virtuelle dans Azure ou n’importe où. Le pipeline s’exécute en tant qu’activités Exécuter le package SSIS dans Data Factory.
…