Importer un fichier texte avec SSIS dans une base SQL

Comment importer un fichier texte avec SSIS dans une base SQL ? C’est possible avec la suite Microsoft Business Intelligence et Microsoft Integration services en particulier. Très souvent, les projets d’intégration de données nécessitent de charger des données depuis des fichiers plats. Soit des fichiers CSV, TXT, bruts ou encore sous d’autres formats moins courants.

Ce tutoriel SSIS en Français est pratique et explique comment charger un fichier plat dans une base de données. Le chargement des données depuis un fichier texte vers une table SQL Server se fait en deux étapes.

Comment importer un fichier texte dans une base SQL Server avec SSIS ?

En effet, commencer par paramétrer de la connexion au fichier texte, depuis son emplacement sur le disque. Ensuite, paramétrer la destination et la connexion à la base de données pour charger toutes les lignes contenues dans le fichier. 

Première étape du chargement : paramétrer les composants SSIS

Cette étape permet de gérer la source et la connexion au fichier plat à importer dans la base de données SQL Server.

1 – Pour importer un fichier avec SSIS, ouvrir Microsoft Visual studio et créer un nouveau projet SSIS. Ensuite, cliquer sur Business Intelligence puis sur Integration Services.

Note: Les projets Microsoft BI se créent dans une solution SSIS. Sur cette capture d’écran, la création du projet créé automatiquement la solution et un dossier pour cette dernière.

Nouveau projet pour charger un fichier texte avec SSIS dans une base SQL

2 – Un package est créé, si ce n’est pas le cas alors faire un clic droit et ajouter un nouveau package au projet. Depuis l’espace de travail Visual Studio, dans la boîte à outils qui se trouve à gauche. Sélectionner Data flow Task et le glisser sur l’espace de travail puis double-cliquer dessus.

Nouveau flux de données SSIS pour charger un fichier texte dans une base SQL

3 – Dans la boîte à outils SSIS, sélectionner maintenant Flat File Source (Source de fichier plat) et le faire glisser sur l’espace de travail, puis double-cliquer dessus.

Utiliser des variables SSIS pour gérer les chemins des fichiers

Avec SSIS, à peu près tous les composants et propriétés sont paramétrables avec des variables. Il est une bonne pratique d’utiliser des variables pour gérer les chemins et paramètres changeants de manière efficace.

4 – La fenêtre Flat File Source editor s’ouvrira, cliquer sur New puis sur Browse et choisir le fichier plat à importer avec SSIS. Dans notre cas ce sera un fichier simple, avec seulement deux colonnes et avec un séparateur “point-virgule” : c’est à dire le caractère « ; ». Le fichier texte peut être un fichier avec une extension csv ou txt.

5 – Une fois le fichier sélectionné, cliquer sur l’onglet Columns. Noter que le gestionnaire de connexion détecte le séparateur des colonnes automatiquement et aussi l’encodage du fichier.

Configurer la connexion au fichier plat à charger dans le flux de données SSIS.
Configurer la connexion au fichier plat dans le flux de données SSIS

6 – Cliquer ensuite sur l’onglet Advanced. Ensuite, renommer les colonnes et leur attribuer un type de données. Dans le cas présent, les colonnes contiennent du texte, nous attribuerons comme type de données Text Stream [DT_TEXT].

Note importante: les noms et les types de données de vos colonnes doivent correspondre aux noms et aux types de données de vos colonnes dans la base de données, ce qui facilitera le mapping des données dans SSIS.

Deuxième étape du chargement du fichier texte : paramétrer la base de données SQL Server

En effet la configuration de la base cible permet de charger les données avec le bon format. C’est à dire un format compatible avec les données du fichier plat.

7 – Valider les deux fenêtres puis dans l’onglet Data Flow Destination. Faire glisser le type de destination dans lequel importer le fichier plat. Dans ce cas, c’est une base de données SQL Server. Choisir l’option SQL Server Destination. Puis relier le composant Flat File source au composant SQL Server Destination à l’aide de la flèche verte.

paramétrer le composant SSIS fichier source pour charger les données dans la table SQL

8 – Ensuite double-cliquer sur SQL Server Destination. Puis dans l’onglet New, choisir la base de données et la table dans laquelle importer le fichier texte depuis SSIS.

Mapping automatique avec SSIS

Note: Il est possible de mapper automatiquement les colonnes SSIS à l’étape suivante. S’assurer de nommer toutes les colonnes sources et cibles exactement de de la même manière. Ensuite faire un clic -droit et mapper.

9 – Paramétrer le mappage des données dans l’onglet Mappings pour vérifier que les colonnes du fichier plat et de la table SQL Server correspondent bien.

10 – Valider ensuite la fenêtre. Puis retourner dans l’onglet Control Flow et faire un clic droit sur Data Flow Task et cliquer enfin sur Exectute Task

Exécuter le lux de données SSIS pour charger le fichier dans la table SQL

11 – La tâche Data Flow Task devient verte. Ce qui signifie que le chargement s’est bien passé. Les données du fichier plat se trouvent également dans la base de données.

Le flux de données SSIS pour charger le fichier dans la table SQL est en succès

Pour finir, exécuter une requête SELECT pour vérifier les données chargées dans la base.

Cet exemple permet donc d’importer facilement un fichier texte dans une base SQL Server avec SSIS. Voici comment charger plusieurs fichiers plats dans une base avec une boucle SSIS (composant For Each File).

Pour aller encore plus loin, il est possible de parcourir tous les tutoriels SSIS en Français. Voici la page qui regroupe tous les liens des articles SSIS.

Ainsi, l’intégration des fichiers plats avec Integration Services et Visual Studio est puissante. Toutefois les erreurs sont courantes, à moins de préparer et vérifier en amont les types de données autant dans la source que dans la table cible.

Une erreur courante est le code SSIS 0x80019002 qui signale que le nombre maximum d’erreur autorisées a été atteint. Il est possible en effet de paramétrer le nombre d’erreur tolérée via le paramètre MaximumErrorCount. Toutefois ce n’est pas recommandé sauf en cas de gestion automatique des erreurs et des reprises de chargement.

Comment éviter les erreurs d’importation de données avec SSIS ?

Trois éléments sont clefs pour réussir l’intégration de fichiers et éviter les erreurs classiques. Toujours vérifier :

  • Le séparateur de colonnes
  • Le séparateur de lignes
  • Et l’encodage du fichier texte à importer (dans l’image ci-dessus, le fichier est encodé en ANSI Latin 1 associé au numéro 1252.

Soyez le premier à commenter

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.


*