Compresser et décompresser les fichiers à l’aide de 7-Zip dans SQL Server Intégration Services SSIS

Il est souvent nécessaire de compresser et de décompresser les fichiers que nous souhaitons traiter avec  (SSIS). Il existe plusieurs outils différents dotés de cette fonctionnalité. Dans cette astuce, je montrerai les étapes à suivre pour compresser et décompresser des fichiers à l’aide de 7-Zip dans le cadre d’un package SQL Server Integration Services

Nous pouvons utiliser n’importe quel extracteur de fichier dans SQL Server Integration Services, mais pour cette démonstration, je vais utiliser 7-Zip pour compresser et décompresser des dossiers et des fichiers.

Après avoir installé le 7-Zip sur mon PC, voici l’emplacement d’installation de 7-Zip

Ceci est l’emplacement où je veux compresser les fichiers.

Maintenant j’ai fait glisser une tâche d’exécution de processus de la boîte à outils SSIS vers le flot de contrôle et l’a renommé  » ZIP Data « .

Maintenant, faites un clic droit sur la tâche et choisissez « Modifier … » pour ouvrir l’éditeur de tâche d’exécution, puis cliquez sur « Processus » à gauche et modifiez le chemin de l’exécutable, les arguments et le répertoire de travail comme suit et conservez les autres comme valeurs par défaut. Je l’explique plus bas

Exécutable

Placez le chemin complet de l’exécutable en tant que: C: \ Program Files \ 7-Zip \ 7z.exe*

Arguments

Fournissez les arguments d’invite de commande: a -t7z « C:\unzipfile\file.zip » « C:\ZIPfile*.* »

  • Je vais archiver les fichiers en utilisant l’ argument de commande « a » .
  • Le format est spécifié avec le commutateur -t -t7z
  • Placez tous les fichiers dans le fichier zip «  C:\unzipfile\file.zip « 
  • De l’emplacement «  C:\ZIPfile « 

Exécution du package SSIS dans des fichiers Zip

Le paquet est maintenant configuré pour l’archivage des données.

Selon la configuration, tous les fichiers sont compressés dans BulkFiles sur le lecteur  c:\

J’ai ajouterai au package SSIS une autre tâche d’exécution de processus pour extraire les fichiers que nous venons de compresser.

Voici les paramètres pour décompresser les fichiers.

Exécutable

Placez le chemin complet de l’exécutable en tant que: C: \ Program Files \ 7-Zip \ 7z.exe


Je vais extraire les fichiers en utilisant l’ argument de la commande « e » 

j’utilise un argument pour gérer le changement dynamique du nom

Exécution du package SSIS pour décompresser des fichiers

Voici le paquet

Si nous regardons le lecteur c: \unzipfile , nous pouvons voir les fichiers extraits.

Bonne lecture

Comment Supprimer les fichiers antérieurs à une période de conservation du dossier avec le paramètre à l’aide de la tâche de script SSIS

Bonjour

Après avoir utilisé certains des moyens de supprimer les fichiers du dossier particulier, comme Supprimer le fichier à l’aide de la tâche de script et de la tâche du système de fichiers dans SSIS. Nous avons vu de telles méthodes et utilisé la logique pour extraire les fichiers du conteneur de boucles et les traiter pour les supprimer. La même chose s’applique également aux scripts. Nous avons également recherché les fichiers supprimés, qui sont plus anciens qu’une période de conservation avec une tâche de script.  

 ici, je voudrais utiliser des paramètres pour le chemin du dossier et la période de conservation, puis passer à travers les scripts et les supprimer conformément à la condition. 

  1. vérifier les fichiers du dossier cible.
  1. Créez des paramètres et définissez les valeurs. Dans ce cas, supprimez les fichiers de plus de 3 jours du dossier C:\source

3. Faites glisser et déposez la Tâche de script

4. Mettez les paramètres en tant que ReadOnlyVariables

5. Appliquez un script attaché dans l’éditeur doté d’une logique supplémentaire avec condition pour vérifier la date de dernière modification du fichier et vérifier si elle est plus ancienne que la période de conservation spécifiée. Ici vous pouvez voir les paramètres utilisés dans le script

Veuillez noter ici que nous devons importer un espace de noms system.IO. 

	// TODO: Add your code here
            int RetentionPeriod = Convert.ToInt32(Dts.Variables["User::Period"].Value.ToString());
            string directoryPath = Dts.Variables["User::BackupFolder"].Value.ToString();
            string[] oldFiles = System.IO.Directory.GetFiles(directoryPath, "*.*");
            foreach (string currFile in oldFiles)
            {
                FileInfo currFileInfo = new FileInfo(currFile);

                if (currFileInfo.LastWriteTime < (DateTime.Now.AddDays(-RetentionPeriod)))
                {
                    currFileInfo.Delete();
                }

6. Activez la dernière étape et exécutez le package. Les fichiers plus anciens que la période de conservation spécifiée doivent être supprimés.

J’espère que vous avez aimé ce post. Restez à l’écoute pour plus.

Synchroniser vos données a travers le composant SSIS Jointure de fusion

Bonjour

Auparavant, j’ai écrit un article sur la conception et la mise en œuvre d’un UPSERT LOOKUP qui concerne la mise à jour des enregistrements existants et l’insertion de nouveaux enregistrements. Aujourd’hui, je souhaite également étendre cela en ajoutant l’opération de suppression  Ainsi, la méthode utilisée dans cet article peut être utilisée pour trouver des enregistrements INSERTED / UPDATED / DELETED à partir de la table source et appliquer ces modifications à la table de destination.

Dans cet exemple, j’ai utilisé la transformation de jointure de fusion, le fractionnement conditionnel et la transformation de commande OLE DB pour implémenter la solution

Tout d’abord, nous appliquons une jointure externe complète sur la table source et de destination dans la ou les colonnes clés avec la transformation Fusion de jointure. Nous utilisons ensuite une division conditionnelle pour déterminer le type de modification (enregistrements supprimés, nouveaux ou existants). Les enregistrements existants nécessiteront un autre traitement pour savoir s’il y a eu des changements ou non? Nous utilisons un autre fois le fractionnement conditionnel pour comparer la valeur des colonnes équivalentes dans la source et la destination

Je montrerai donc comment synchroniser ces données entre serverA et serverB en utilisant une jointure de fusion dans SSIS

Voici à quoi ressemble mon package SSIS. Je vais discuter de chacune des étapes

Sans titre

J’ai deux sources OLE DB, une pour serverA (source) et l’autre pour serverB (destination). Voici comment ces connexions sont configurées

Sans titre

Lors de l’application d’une jointure par fusion, les données doivent être triées pour les deux entrées. J’applique donc une opération de tri des deux côtés

Sans titre

Maintenant Faites glisser le composant Jointure de fusion connecter Sur les deux sources OLE DB  Définissez la table source comme gauche et la table de destination comme entrée droite de cette transformation.

Allez dans l’éditeur du composant Jointure de fusiones , le colonne ID sera utilisé comme colonne de jointure (sélectionnée en fonction des propriétés de tri des composants précédents). Notez que si vous ne triez pas les colonnes d’entrée de la transformation de jointure de fusion, vous ne pouvez pas entrer dans l’éditeur de cette transformation et vous rencontrez l’erreur concernant le tri des entrées.

Sélectionnez toutes les colonnes des tables Source et Destination dans la transformation de jointure de fusion et renommez-les comme le montre l’image ci-dessous

Sans titre

À l’étape suivante, j’ai appliqué le composant Fractionnement conditionnel J’ai ajouté trois conditions différentes en fonction du résultat de la jointure externe complète. Ce sont les trois conditions:

  1. UPDATE (correspondance avec ID): Si le ID existe à la fois sur la source et la destination, nous effectuons une mise à jour.
  2. INSERT (id introuvable dans la destination): Si ID se trouve uniquement à gauche (source), nous devons insérer ces données dans la table de destination.
  3. DELETE (ID est introuvable dans la source): Si ID n’est pas trouvé dans la table source, nous devons supprimer ces données de la table de destination                           Sans titre
1 Insert !ISNULL(id) && ISNULL(id_NEW)
2 Delete ISNULL(id) && !ISNULL(id_NEW)
3 Update !ISNULL(id) && !ISNULL(id_NEW)

Nous avons donc maintenant trois flux de données pour effectuer une insertion, une mise à jour ou une suppression.

  • Opération insert

Ajouter une destination OLE DB et connecter la sortie NEW RECORDS. Définissez la configuration de la table de destination et utilisez des colonnes avec le préfixe source dans le mappage de colonnes de la destination OLE DB. Ce composant de destination insérera de nouveaux enregistrements dans la table de destination

Sans titre.png

  • Opération delete

Pour supprimer des données, j’ai une connexion de destination OLE DB et j’ai ajouté une commande sql comme suit à l’aide de l’éditeur avancé

Sans titre

Sans titre

delete from Produit_new
where id_NEW=?
  • Opération Update

Ajouter de nouveau le composant  Fractionnement conditionnel   Nous utilisons ce composant pour rechercher uniquement les enregistrements qui ont changé dans l’une des valeurs. Nous comparons donc les colonnes source et destination équivalentes pour trouver des données non correspondantes.C’est l’expression utilisée pour trouver les données de correspondance dans la capture d’écran ci-dessous

Sans titre

Sans titre

Après avoir lancé la commande avec le paramètre «?», J’ai ensuite appliqué le mappage de colonne d’entrée avec les colonnes de destination de paramètres disponibles en fonction de la table de destination

Sans titre

Exécution du package

Après avoir configuré toutes les étapes ci-dessus, en changeant au hasard certaines des données, je lance alors le package et obtient les éléments suivants

Sans titre

Conclusion

la synchronisation a été bien passer entre la table source et la destination  en effectuant  des opérations d’insertion, de mise à jour et de suppression avec des données de la source vers la destination

Dimension à variation lente

bonjour

SCD ou Slowly Changing Dimension est l’un des composants de la boîte à outils SSIS. Ce composant est utilisé si vous souhaitez insérer ou mettre à jour des enregistrements de données dans des tables de dimensions. L’explication la plus simple peut être de comparer les données source entrantes avec les données de table de dimension de destination existantes à l’aide d’une clé professionnelle (clé unique). Si aucun enregistrement ne correspond, il sera considéré comme un nouvel enregistrement ou un enregistrement correspondant, puis il compare les attributs des attributs modifiés si les données semblent actualisées, puis met à jour l’enregistrement ou sinon, il reste inchangé.

Slowly Changing Dimension vérifie les attributs pour trois scénarios New, Changed ou UnChanged records, comme nous venons de le décrire.

Le terme Dimension à variation lente ou Slowly Changing Dimension englobe les trois méthodes suivantes pour gérer les modifications apportées aux colonnes dans une table de dimension d’un entrepôt de données:

Méthode 1 – mettez à jour les colonnes de la ligne de dimension sans conserver l’historique des modifications.
Méthode  2 – conservez l’historique des modifications dans la table de dimension et créez une nouvelle ligne en cas de modification.
Méthode  3 – une combinaison de type 1 et de type 2, conservant généralement plusieurs instances d’une colonne dans la ligne de dimension; Par exemple, une valeur actuelle et une ou plusieurs valeurs précédentes.

L’assistant SCD a quelques fonctions: il est rapide et facile à mettre en œuvre, il gère la plupart des scénarios SCD et son approche multi-composants vous permet de le personnaliser avec les fonctionnalités dont vous avez besoin

Il est maintenant temps de glisser-déposer le composant SCD de la boîte à outils SSIS. Il suffit donc de faire glisser et de déposer SCD et de le joindre au composant de conversion de données, comme illustré ci-dessous.

Sans titre

Maintenant, faites un clic droit et modifiez le SCD et configurez le moment où vous cliquez avec le bouton droit de la souris, un assistant vous demandera de suivre ces étapes

 

 

Sans titre

Faites ensuite pour passer à l’étape suivante. Cliquez maintenant sur Nouveau bouton pour créer un nouveau gestionnaire de connexion. Au moment où vous cliquez sur le nouveau bouton, il affiche le nom de votre serveur SQL Server, comme illustré ci-dessous

Sans titre

Cliquez sur le bouton OK et maintenant, il y a une liste déroulante sur la vue Table, sélectionnez simplement la table Dim.Produit

Au moment où vous sélectionnez la table Dim.Produit ci-dessous, elle affichera les noms de colonne de cette table Dim.Produi dans lesquels vous devez associer ces colonnes à des colonnes de source entrante (colonnes de fichier plat). choisissez le type de clé comme clé métier.

Pour référence s’il vous plaît vérifier l’image ci-dessous.

 

Sans titre

Ici, dans cette étape, vous devez sélectionner un attribut quelconque si vous pensez qu’une colonne particulière sera corrigée (elle ne sera pas mise à jour à tout moment), puis choisissez l’attribut Fixe pour cette colonne OU si des données de colonne changent périodiquement, choisissez L’attribut d’historique, si vous souhaitez conserver l’historique des enregistrements modifiés précédents, sélectionnez uniquement l’attribut d’historique, mais la plupart des cas choisissent l’option Modifier l’attribut (aucun historique n’est conservé).

Avec l’utilisation de Changer d’attribut, nous pouvons mettre à jour toutes les données de colonne à tout moment. Donc, sélectionnez ce passage à l’étape suivante.

 

Sans titre

Sans titre

À l’étape suivante  cliquez simplement sur le bouton suivant.

Sans titre

Au moment où vous cliquez sur le bouton Terminer, l’assistant met automatiquement à jour notre onglet de flux de données avec deux nouveaux composants, à savoir la destination d’insertion OLEDB et la commande OLEDB

Sans titre

OLEDB Insérer la destination: Pour insérer de nouveaux enregistrements.

Commande OLEDB1: pour mettre à jour des enregistrements existants.

Si vous avez configuré ces deux composants automatiquement, vous n’avez pas besoin de le faire. Merci à l’assistant SCD.

Enfin, nous avons tous maintenant fait et on se termine par  exécuter ce projet.Sans titre

Donc, les gars, si vous voyez, nous avons mis à jour les enregistrements et inséré de nouveaux enregistrements avec succès.

 

Sans titre

Comme vous l’avez vu ci-dessus, nous avons exécuté le projet avec succès. J’espère que vous avez compris cet article si vous avez des doutes n’hésitez pas à nous contacter. Je vous remercie…!

cordialement

Expression ssis pour Récupérer le nom de fichier à partir du chemin complet

bonjour

Je partage avec vous une super astuce SSIS qui vous permet rapidement de récupérer le non de fichier a partir du chemin complet

RIGHT( @[User::FullPath] , FINDSTRING(REVERSE( @[User::FullPath] ) , "\\", 1) - 1)

Mettons cette Expression dans une variable Et essayer d’afficher le a travers un composant Task Script

public void Main()
		{
			// TODO: Add your code here
            MessageBox.Show(Dts.Variables["User::File"].Value.ToString());
            MessageBox.Show(Dts.Variables["User::File_name"].Value.ToString());
			Dts.TaskResult = (int)ScriptResults.Success;
		}

Sans titre

Sans titre

Bonne configuration

 

Tester Existence du Fichier a travers SSIS

Bonjour

J’ai créé un package SSIS qui vérifie si un fichier spécifié existe, Si oui il fait leur importation si non  je m’envoie un courrier électronique pour me faire savoir que le fichier est Absent

Dans cette méthode, j’utiliserai la tâche du composant script. Je vais utiliser script C# pour vérifier l’existence du fichier. Pour utiliser cette méthode, faites glisser « Script Task » dans le package. Je déclare une variables de  booléenne nommé dans cette Exemple FileExists

Ensuite, assurez-vous que notre variable FileExists a été déclarée dans le champ « Script Task Editor » pour le champ « ReadOnlyVariables » comme indiqué ci-dessous et que la langue sélectionnée est définie sur Microsoft Visual C#2012

 

Sans titre

Nous sommes maintenant prêts à créer un simple script C# qui remplit la variable FileExists (paramètre TRUE ou FALSE) selon que le fichier que nous souhaitons vérifier leur existence

n’oublier au début du votre script d’ajouter Using System.IO

Sans titre

public void Main()
{
string filelocation = @"c:\source\production.txt";
if (File.Exists(filelocation) == true)
{
Dts.Variables["FileExits"].Value = true;
}
else
{
Dts.Variables["FileExits"].Value = false;
}
Dts.TaskResult = (int)ScriptResults.Success;
}

a Travers une autre méthode

	public void Main()
		{
		if (System.IO.Directory.GetFiles(@"c:\dossier", "*.*").Length > 0)
{
    Dts.Variables["User::result"].Value = true;
}
else
{
    Dts.Variables["User::result"].Value = false;
}
			Dts.TaskResult = (int)ScriptResults.Success;
		}

Tout ce qui est dans  le script ci-dessus est  de vérifier si le fichier existe sur le lecteur c: \source , puis de remplir notre variable de package SSIS FileExists avec une valeur « TRUE » si elle existe et « FALSE » si ce n’est pas le cas. Cela peut ensuite d’être utilisé en contrôlant le flux des conteneurs de package suivants en fonction de la logique appliquée dans la contrainte de priorité qui suit la tâche de script. Ensuite, nous allons appliquer une logique simple dans le champ d’expression des deux contraintes de priorité à la manière de procéder à l’exécution. Dans le premier, définissez l’opération d’évaluation sur Expression et tapez l’expression suivante dans le champ ‘Expression’:

Sans titre

La deuxième contrainte de priorité sera presque identique à l’exception de l’expression réelle. Ici, nous le changeons en @ FileExists == FALSE. Lorsque vous avez terminé, Jusqu’à présent, la partie du paquet que nous venons de développer devrait ressembler à ceci

Sans titre

Pour vérifier si le paquet fonctionne, il suffit de placer votre  fichier CSV dans le répertoire cible (c: \source\c dans notre cas) et l’exécution doit suivre le chemin de la «contrainte de priorité», où elle était définie sur ‘@ FileExists == TRUE’

Sans titre

 

Si nous supprimons le fichier, l’exécution doit aller de paire avec l’autre contrainte de précision

 

 

 

Sans titre

bonne configuration

Suppression les lignes dupliquées avec SSIS

Bonjour

Vous avez  plusieurs enregistrements dupliquées dans votre base de données SQL Server. et vous chercher un moyen rapide et facile de les supprimer

Il existe plusieurs façons de supprimer les enregistrements en double dans SQL Server. Dans cette astuce, je vais utiliser la transformation de tri SSIS pour supprimer les enregistrements et vous montrer à quel point cela peut être facile                                          pour commencer Essayer de Configurez le gestionnaire de connexions pour qu’il pointe vers votre ensemble de données. Dans cet exemple, j’utilise localhost et ma base de donnée AdventureWorksLT2014

Sans titre

Cliquez sur OK pour fermer la tâche Source OLEDB. Faites glisser la tâche Trier la transformation sur l’écran de conception. Connectez la tâche Source OLEDB à la tâche Trier

Sans titre

Faites de nouveau un clic droit sur la tâche Trier et vous remarquerez en bas, « Supprimer les lignes avec des valeurs en double » Cliquez sur l’option Supprimer les lignes et choisissez OK:

Sans titre

Cliquez avec le bouton droit sur la contrainte de précédence entre la colonne Trier et Dérivée et cliquez sur Activer la visionneuse de date. Cela nous permettra d’afficher les données lors de leur passage dans la contrainte

Sans titre

Cliquez à nouveau sur le bouton de lecture dans la barre d’outils pour afficher les résultats. Sur l’écran de conception, vous pouvez voir que j’ai passé 128 lignes à la colonne de tri, mais la colonne de tri n’a transmis que 94 lignes à la tâche suivante. Cela signifie que la transformation a supprimé 34 doublons en fonction de l’état de la colonne

Sans titre

Vous pouvez maintenant voir que j’ai des colonnes « Distinct » Name et que j’ai pas eu de doublons

Sans titre

Bonne configuration


 

backup multi databases sur multi serveurs a travers SSIS

bonjour

Dans cet article de blog, je souhaite montrer comment utiliser l’énumérateur Foreach ADO de SSIS pour parcourir une liste de noms de serveurs SQL et collecter des données de base afin de faire finalement une opération du sauvegarde Multi Server Multi base de donnée

le flux de traitement principal de ce paquet commence par déterminer les listes des serveurs ou des instances SQL j’utilise pour ce ETL cette petit requête

select 'localhost\sqlprod' as servername
union all
select 'localhost\sqlprod02' as servername
union all
select 'localhost\sqlprod03' as servername
union all
select 'localhost\sqlprod04' as servername

Dans ton SQL Task, il faut :
– mettre la propriété ResultSet sur Jeu de résultats complet (car ta requête  retourne Plusieurs lignes)
– dans le menu à droite, tu as une catégorie Result Set, tu cliques sur Add. Dans ResultName tu mets 0 (premier et seul élément retourné par ta requête) et dans variable name tu choisis la variable à renseigner par la valeur retournée par la requête

1-Parcours listes des serveurs

Sans titre

L’étape suivante consiste à créer notre boucle ADO Foreach. Comme vous pouvez le voir dans l’image ci-dessous, vous devez spécifier la variable dans laquelle nous avons écrit le jeu de résultats de notre Tâche d’exécution de requêtes SQL

Sans titre

En plus de cela, nous devons spécifier une deuxième variable ( de type String! ) Dans laquelle la boucle écrira le contenu de chaque ligne du jeu de résultats. Le contenu de la variable passera de l’itération à l’itération

Sans titre

2-Parcours Listes des bases

Sans titre

Les listes des bases  à examiner est lue dans notre Requéte SQL Server à l’aide d’une tâche d’exécution de requétes SQL

select name from sys.databases where name not in
('master','tempdb','model','msdb')

Nous devons écrire le jeu de résultats d’une requête SQL dans une variable  de type system.object . La boucle parcourra ensuite toutes les lignes de toute votre requétes  de cette variable. Il est important de spécifier le jeu de résultats complet ; Si vous ne définissez pas cette option, vous ne pourrez pas stocker le jeu de résultats dans une variable.

Sans titre

Une fois que vous avez entré l’instruction SQL et que vous avez défini l’option ResultSet , vous devez basculer vers le volet jeu de résultat et spécifier le nom de la variable dans laquelle vous souhaitez stocker le jeu de résultats. La variable doit être de type object  :

Sans titre

Sans titre

.

 

Sans titre

Deuxièmement, nous utilisons les propriétés de la connexion pour spécifier une expression à travers laquelle la chaîne de connexion de la connexion sera changée en chaîne de connexion dans la variable qui est modifiée par la boucle Foreach ADO

"Data Source="+ @[User::serveur]+" ;Initial Catalog=master;
Provider=SQLNCLI11.1;Integrated Security=SSPI;Auto Translate=False;
""Data Source="+ @[User::serveur]+"
;Initial Catalog=master;Provider=SQLNCLI11.1;
Integrated Security=SSPI;Auto Translate=False;"

Sans titre

Enfin, nous définissons l’instruction SQL backup du façon paramétrer de cette maniérer

"BACKUP DATABASE" +" "+ @[User::name_DATABASE]  +" "+
"TO DISK = '"+ @[User::Path_Folder]+"\\"+@[User::name_dATABASE] +  ".bak'"

Sans titre

Sans titre

À la fin, le flux de données de notre paquet devrait ressembler à ceci:
Sans titre

j’espère que cela pourra vous aider Bonne suivi && configuration du  Package

Comment utiliser WinSCP et SSIS pour télécharger des fichiers depuis SFTP

bonjour

SSIS fournit des fonctionnalités pour se connecter à un serveur FTP mais pas à un serveur SFTP

Heureusement SSIS vous permet d’exécuter un processus (dans notre cas WinSCP), que nous allons utiliser pour télécharger les fichiers

J’ai créé un nouveau package dans SSIS et j’ai déplacé une tâche Execute Process Task sur la palette comme indiqué ci-dessous

Tache_FTP

Puis un  double-clique sur la tâche d’exécution de processus  ,éditer les propriétés de la tâche. Sous l’onglet Général, de l’éditeur de tâche d’exécution de processus, j’ai renommé la tâche pour qu’elle soit plus descriptive

Cliquez sur « Traiter » sur le côté gauche de l’éditeur de tâches Execute Process pour afficher les paramètres du processus.

  • Définissez la propriété d’exécutable sur le chemin d’accès complet et le nom du fichier winscp.exe: C:\Program Files (x86)\WinSCP\WinSCP.exe
  • Définissez la propriété Arguments pour deux arguments. Le premier argument acceptera le fichier de configuration « WinSCP.ini » suivi du chemin complet et du nom de fichier Le deuxième argument  représente le chemin complet du fichier de script          
  • Enfin, le Working Directory doit être défini sur le dossier dans lequel WinSCP peut être trouvé, le mien est défini sur « C: \ Program Files (x86) \ WinSCP ».

                                                                                      

Tacge_FTP2

Pour récupérer le fichier de configuration winscp.ini cliquer sur le bouton « Exporter / sauvegarder la configuration »

Tache_FTP3

Ensuite, j’ai testé le package SSIS dans le débogueur Visual Studio

Sans titre

Après l’exécution du package, vérifiez bien que votre fichier a été transféré avec succès. Si vous rencontrez des problèmes, vous pouvez résoudre le problème avec le client winscp

Le fichier de script que j’ai utilisé est posté ci-dessous                                                                 

option batch on
option confirm off
open sftp: // :  @
cd /informatique/FTP
put C:\backup\Test_Ftp.txt
close
exit

bonne configuration

Comment utiliser le composant Row count dans SSIS?

bonjour,

La transformation de nombre de lignes dans SSIS est utilisée pour compter les lignes lorsqu’elles traversent un flux de données et stocke le compte final dans une variable. Par exemple, si nous souhaitons informer le gestionnaire du nombre de lignes dans lesquelles ce package est inséré, nous pouvons utiliser la transformation Nombre de lignes pour compter les lignes, puis utiliser la tâche de script pour envoyer un message électronique au gestionnairete transformation

Laissez-nous concevoir un paquet afin que nous puissions mieux comprendre cette transformation.

1-Créez une variable pour stocker la valeur du nombre de lignes

Sans titre

Dans ce cas, nous avons choisi d’ajouter une variable nommée vAR de type entier et la valeur affectée est  0

Sans titre

 

2-Glisser et déposer la source  Rowcount (Nombre de lignes), la transformation du nombre de lignes de la boîte à outils vers la région de flux de données

Sans titre

3-L’etape suivante consiste à configurer la transformation Nombre de lignes. Double-cliquez sur la transformation du nombre de lignes pour ouvrir la petite fenêtre Nombre de lignes afin de sélectionner la variable définie par l’utilisateur dans la liste déroulante. Ici, nous sélectionnons la variable déjà créée (VAR)

 

Sans titre

4-Ajoutez une tâche de script dans le volet DataFlowDesigner et connectez-la..

Sans titre

5-Sélectionnez la variable définie par l’utilisateur en tant que variable d’écriture lue, comme illustré ci-dessous

.Sans titre

6-Cliquez sur Modifier le script et utilisez le code ci-dessous dans la fonction principale

Sans titre

Fermez votre  fichier de script et Exécutons notre package de transformation du nombre de lignes. Dans la capture d’écran ci-dessous, vous pouvez observer qu’il affiche les informations de la boîte de message avec le nombre de lignes.

Sans titre

Voyons la région de flux de données si la transformation donne le résultat correct ou non

Sans titre

Vous pouvez observer la boîte de message affichant le nombre de lignes passées à travers cette transformation

Bonne configuration