web-dev-qa-db-fra.com

Meilleure méthode pour les fichiers SFTP ou FTPS via SSIS

Cette question demandait à l'origine quelle était la meilleure méthode pour télécharger des fichiers via SFTP ou FTPS dans SSIS. Il répertorie désormais uniquement les avantages et les inconvénients de chaque solution. J'utilise personnellement la bibliothèque SFTP de CozyRoc ces jours-ci, mais j'ai utilisé chacune des solutions ci-dessous à un moment ou à un autre.

BIBLIOTHÈQUE DES COMPOSANTS SSIS

Méthode: installez une bibliothèque de composants SSIS à partir de CozyRoc , Codeplex , BizCrypto , PragmaticWorks , ou d'un autre fournisseur sur chacun serveur de développement et de production et utilisez la tâche SFTP pour télécharger les fichiers.

Avantages: Facile à utiliser. Il ressemble, sent et ressemble à une tâche SSIS normale. SSIS reconnaît également le mot de passe en tant qu'informations sensibles et vous offre toutes les options normales de protection des informations sensibles au lieu de simplement les stocker en texte clair de manière non sécurisée. Fonctionne bien avec d'autres tâches SSIS telles que les conteneurs de boucles ForEach. Des erreurs se produisent lorsque les téléchargements et les téléchargements échouent. Fonctionne bien lorsque vous ne connaissez pas les noms des fichiers sur le site FTP distant à télécharger ou lorsque vous ne connaîtrez pas le nom du fichier à télécharger avant l'exécution.

Inconvénients: à l'exception de la solution Codeplex, cela coûte de l'argent pour obtenir une licence dans un environnement de production. Nécessite l'installation des bibliothèques sur chaque machine de développement et de production. S'il s'agit de la solution Codeplex, vous utilisez un logiciel qui n'est pris en charge par aucun fournisseur spécifique. Cela vous rend également dépendant du fournisseur pour mettre à jour ses bibliothèques entre chaque version. Par exemple, avant 2008 RTM'd, je développais un nouveau serveur sur une version CTP de 2008 et la bibliothèque CozyRoc 2005 était incompatible avec elle. Finalement, ils ont sorti une version compatible 2008, mais j'ai dû utiliser temporairement la solution de ligne de commande pour contourner ce problème.

PROGRAMME SFTP DE LIGNE DE COMMANDE

Méthode: installez une application SFTP en ligne de commande gratuite telle que PuTTY et WinSCP et exécutez-la en exécutant un fichier de commandes ou une tâche de processus du système d'exploitation. Les instructions pour le faire via WinSCP sont listées ici .

Avantages: gratuit, gratuit et gratuit. Vous pouvez être sûr qu'il est sécurisé si vous utilisez PuTTY puisque de nombreux clients FTP GUI semblent utiliser PuTTY sous les couvertures. Vous savez DÉFINITIVEMENT que vous utilisez SSH2 et non SSH.

Inconvénients: les deux utilitaires de ligne de commande que j'ai essayés (PuTTY et Cygwin) nécessitaient de stocker le mot de passe SFTP dans un emplacement non sécurisé. Je n'ai pas trouvé un bon moyen de capturer les échecs ou les erreurs lors du téléchargement de fichiers. Le processus ne ressemble pas et ne sent pas comme SSIS. La plupart du code est encapsulé dans des fichiers texte au lieu de SSIS lui-même. Difficile à utiliser si vous ne connaissez pas le nom exact du fichier que vous téléchargez ou téléchargez.

UNE BIBLIOTHÈQUE C # OU VB.NET DE 3ÈME PARTIE

Méthode: installez une bibliothèque SFTP ou FTPS et utilisez une tâche de script qui référence la bibliothèque pour télécharger les fichiers. (Je n'ai jamais essayé cela, donc je vais deviner les avantages et les inconvénients)

Avantages: Probablement facile de capturer les erreurs. Devrait bien fonctionner avec des variables, donc il serait probablement facile à utiliser même si vous ne connaissez pas le nom exact du fichier que vous téléchargez ou téléchargez.

Inconvénients: c'est une tâche de script combinée avec des bibliothèques .NET. Si vous utilisez SSIS, vous êtes probablement plus à l'aise avec les tâches SSIS qu'avec le code .NET. Les tâches de script sont également difficiles à dépanner car elles n'ont pas les mêmes outils et fonctionnalités de débogage que les projets .NET classiques. Crée une dépendance sur le code tiers qui peut ne pas fonctionner entre les différentes versions de SQL Server. Pour être honnête, il est probablement PLUS susceptible de fonctionner entre différentes versions de SQL Server qu'une bibliothèque de tâches SSIS tierce. Un autre énorme con - Je n'ai pas encore trouvé de bibliothèque C # ou VB.NET gratuite qui le fasse. Donc, si quelqu'un en connaît un, alors faites-le moi savoir!

30
Registered User

La question suivante pourrait être utile:

Quel serait un choix recommandé de composant SSIS pour effectuer une tâche SFTP ou FTPS?

Cozyroc:

Il devrait être facile de tester la disponibilité du protocole ssh en définissant le serveur sur "autoriser uniquement SSHv2" et en effectuant des tests. Avez-vous essayé de demander au département des ventes de Cozy?

Sftp de ligne de commande:

Le problème du nom de fichier inconnu pourrait être résolu par un simple scriptage/utilisation de caractères génériques (au moins sous Cygwin).

Bibliothèque tierce:

Pourquoi avez-vous besoin d'une bibliothèque tierce pour FTPS? .NET prend en charge ce protocole depuis environ 2.0.

http://msdn.Microsoft.com/en-us/library/system.net.ftpwebrequest.enablessl.aspx

9
Martin Carpenter

Je voulais juste fournir une mise à jour sur ce que nous avons réellement décidé de faire pour résoudre les problèmes SFTP dans SSIS. Voici la ventilation de ce qui s'est passé:

  1. J'ai d'abord essayé d'utiliser PuTTY et certains fichiers batch pour télécharger des fichiers, mais il était difficile de capturer les erreurs. De plus, je stockais nos informations d'identification SFTP dans des fichiers en texte clair car elles faisaient partie des scripts de téléchargement de PuTTY.

  2. Nous avons acheté une licence CozyRoc pour notre serveur SSIS pour quelques centaines de dollars par an et je suis complètement satisfait des résultats de l'utilisation de leur produit. Avec le produit CozyRoc, la tâche de flux de contrôle génère des erreurs en cas de problème avec le téléchargement. Comme j'ai également plusieurs programmeurs SSIS juniors dans mon équipe, il leur était plus facile de comprendre comment configurer la tâche de flux de contrôle que d'utiliser la méthode des scripts PuTTY. Et enfin, le mot de passe est crypté à l'aide du cryptage natif de SSIS pour protéger les données sensibles. Je n'ai plus de mots de passe stockés en texte clair sur mon serveur.

J'ai examiné certaines des autres bibliothèques tierces recommandées dans cette question, mais il semble que CozyRoc était le moins cher des fournisseurs et ils avaient également quelques autres tâches SSIS que j'ai pu utiliser dans mon équipe de BI. Merci, CozyRoc!

2
Registered User