Vous avez un fichier CSV à charger dans une base de données SQL Server ? Ce guide étape par étape est parfait pour simplifier votre travail sur l’import de données. En effet, avec SSIS, li est facile d’importer des données d’un fichier CSV dans une table SQL Server à l’aide d’un seul package.
Les fichiers CSV sont parfaits pour toutes sortes de données, comme les listes de clients ou les chiffres de vente. Grâce à notre guide, vous utiliserez Microsoft SSIS et Visual Studio 2019 pour faciliter ce processus.
Nous allons vous guider à travers 10 étapes essentielles pour importer vos données de manière fluide et efficace. Chaque étape est facile à suivre, ce qui garantit que vous pouvez faire le travail, quel que soit votre niveau de compétence.
Voici 10 étapes simples pour importer des données CSV dans une table SQL Server avec SSIS:
- Préparer le fichier CSV : le rendre prêt pour SSIS.
- Configurer la table SQL Server : préparer la base de données avec SSMS.
- Créer le package SSIS : montrer comment faire, étape par étape.
- Se connecter au fichier CSV : se relier à la source de données.
- Ajuster les colonnes : peaufiner les détails pour mapper les données.
- Définir les types et longueurs des colonnes : s’assurer que tout correspond.
- Convertir les données si nécessaire : utiliser les outils SSIS pour modifier les données.
- Pointer vers le serveur SQL : définir l’emplacement des données cibles.
- Exécuter le package SSIS : importer le fichier CSV en toute confiance.
- Vérifier les données importées : s’assurer que toutes les données sont correctes depuis SSMS.
We’ve split the process into two parts: first, preparing and connecting your CSV file, and second, setting up your SQL Server table and importing the data. This guide is all about making your data import as straightforward as possible. Let’s get started and make your data work for you!
Let’s check first a few requirements
- Se connecter à une base existante ou créer une une base de données SQL Server avec SSMS
- Installer Visual Studio 2019 ou 2022 et l’extension des projets SSIS pour le développement du package SSIS.
Table of Contents
1. Préparer le fichier CSV à importer avec SSIS (Premium)
Commencer par télécharger le fichier utilisé dans l’exemple et créer la table cible des clients. Le fichier Customers_Data.csv contient 49 lignes, soit une ligne d’entête et 48 lignes de données générées automatiquement.
2. Créer la table SQL Server cible depuis SSMS (Premium)
Le but de ce package est d’importer les 48 lignes sans erreurs dans la table des clients, dont le code de création est disponible ici. Exécuter le code dans une base d’exercices ou de développement avec SSMS.
3. Créer le package pour importer le fichier CSV avec SSIS
Cette étape permet de gérer la connexion au fichier plat à importer dans la base SQL Server. Cette étape se fait dans un data flow SSIS.
- Ouvrir Microsoft Visual studio 2019 et créer un nouveau projet SSIS ou ouvrir un projet existant.
- Ouvrir un package existant à modifier. Sinon, faire un clic droit et ajouter un nouveau package au projet SSIS.
- Depuis l’espace de travail, repérer 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 pour l’ouvrir.
Dans la boîte à outils SSIS, sélectionner maintenant Flat File Source, source de fichier plat et faire glisser le composant sur l’espace de travail. Puis double-cliquer dessus pour l’ouvrir et le paramétrer.
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, les chaines de connexions et les paramètres SSIS changeants de manière efficace. Comme les changements d’environnements du développement vers le test ou la production par exemple.
4. Créer une connexion au fichier CSV à importer avec SSIS
Créer et configurer une nouvelle connexion de type fichier plat, pour cela choisir les éléments suivants:
- Le nom de la connexion
- Le chemin du fichier
- L’encodage du fichier
- Le format, dans notre cas c’est délimité
- Le délimiteur de fin d’entête
- Si le nom des colonnes se trouvent dans la première ligne du fichier
5. Configurer les colonnes et vérifier l’encodage du fichier CSV
Il faut paramétrer les colonnes et vérifier les données:
- Valider ou modifier le délimiteur de lignes
- Choisir le délimiteur de colonne, c’est le caractère qui se trouve à la fin de chaque ligne de données
- Vérifier si les données et notamment les accents ou caractères spéciaux s’affichent correctement. Les lignes 29 et 32 ont une erreur car les accents sont mal interprétés. Il faut changer l’encodage.
Choisir le bon encodage pour le fichier CSV source avec Notepad++
Changer l’encodage du fichier source jusqu’à ce que les données s’affichent correctement. Pour trouver l’encodage du fichier, utiliser simplement Notepad++ et ouvrir le fichier. Il existe 2 possibilités pour vérifier l’encodage :
- Depuis le menu Encodage (Encoding en Anglais)
- En bas à droite du logiciel ou des informations sur le fichier sont affichées.
Pour charger le fichier texte sans erreurs, changer l’encodage et utiliser 65001 (UTF-8) au lieu de 1252 (ANSI – Latin I) proposé par défaut par SSIS.
6. Ajuster le type de fichier CSV et les colonnes dans SSIS
Une fois le bon encodage sélectionné, cliquer à nouveau sur l’onglet Columns et vérifier à nouveau les données.
Cliquer ensuite sur l’onglet Advanced. Ensuite, renommer éventuellement les colonnes et leur attribuer un type de données cohérent. Par défaut, SSIS utilise le type DT_STR avec une longueur de 50 caractères. Adapter donc le type de chaque colonne avec la longueur des champs de notre table des clients.
Utiliser donc le type DT_WSTR avec la bonne longueur pour éviter les erreurs de conversions plus tard dans le développement du package SSIS.
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 grandement le mapping des données dans SSIS.
Vérifier maintenant les colonnes dans le composant Flat File Source:
7. Ajouter le composant SSIS Colonne dérivée et le lier à la source
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.
- Dans la boîte à outil SSIS, depuis la partie Général ou Common. Faire glisser la transformation Derived Column dans le flux de données.
- Puis relier le composant Flat File Source à Derived Column comme sur l’image ci-dessous.
Configurer une nouvelle colonne pour changer le type de l’identifiant du client
La colonne CustomerID est de type entier, il faut donc en créer une nouvelle basée sur celle du fichier. Pour la convertir en une nouvelle colonne SSIS de type Entier (DT_I8).
8. Configurer le composant cible Integration Services
Pour ce faire, il faut au préalable créer une connexion à la base de données cible depuis le gestionnaire de connexions SSIS. Paramétrer ainsi 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. Utiliser la colonne Derived Column.CustomerID et non la colonne originale du fichier plat.
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.
9. Exécuter le package SSIS et importer le fichier plat
Une fois le flux de données complètement configurer, exécuter le package SSIS pour insérer les lignes dans la table des clients. Les 48 lignes sont traitées et intégrées dans la base. C’est cette étape qui va importer effectivement un fichier source au format CSV dans une table cible avec SSIS.
10. Vérifier les données CSV dans la table SQL Server
Depuis SSMS, vérifier les données avec deux requêtes SQL. La table comporte bien 48 lignes, identiques au contenu du fichier.
SELECT COUNT(*) AS [NumberOfCustomers] FROM [dbo].[Customers]; SELECT * FROM [dbo].[Customers];
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).
Eviter les erreurs d’import de fichier plat avec SSIS
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. Il y a trois éléments clefs à vérifier pour réussir l’intégration de fichiers et éviter les erreurs classiques:
- Le séparateur de colonnes
- Le séparateur de lignes
- L’encodage du fichier texte
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 le fichier source que dans la table cible.
Pour conclure sur l’import de fichier CSV avec SSIS
Pour conclure, ce tutoriel explique pas à pas comment importer un fichier CSV dans une table SQL Server avec un package SSIS. Et ceci à travers quelques étapes relativement simples. Une étape clef et parfois négligée est de bien préparer le nommage des colonnes depuis le fichier source vers le fichier cible. Pour facilier le mappage des colonnes dans le flux de données.
Pour aller encore plus loin, il est possible de la même manière de charger un fichier Excel dans une table avec SSIS.
Soyez le premier à commenter