Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Exporter des données de SQL Server vers Excel et un fichier texte via l'utilisation du package SSIS

Tout en utilisant le flux de données SSIS, nous pouvons effectuer une tâche ETL qui peut être utilisée pour la migration des données, le déchargement des données, la conception et la mise en œuvre de l'entrepôt de données.

Dans cet article, j'explique comment exporter des données d'une table SQL vers Excel et un fichier texte à l'aide de la tâche de flux de données SSIS.

Dans cette démo, je vais effectuer les étapes suivantes :

1. Créez un package SSIS et créez un gestionnaire de connexions ADO.NET.

2. Créez une tâche de flux de données avec une source ADO.NET pour remplir les données de SQL Server. Les données seront écrites dans un fichier Excel et un fichier texte, configurez donc la destination du fichier plat et la destination Excel.

3. Exécutez le package SSIS et vérifiez que les données ont été écrites dans des fichiers Excel et texte.

Créer un package SSIS et une connexion ADO.NET

Pour cette démo, j'ai utilisé les outils de données SQL Server 2015. Tout d'abord, je crée un nouveau projet de service d'intégration nommé "Exporter des données SQL ” :

Après la création d'un projet SSIS, je créerai la tâche de flux de données. La tâche de flux de données utilisera SQL Server comme source. Le fichier Excel et le fichier plat seront déterminés comme destination. Avant la création de la tâche de flux de données, nous devons créer la connexion ADO.NET .

Configurer la connexion ADO.NET

Comme je l'ai mentionné ci-dessus, je vais utiliser "WideWorldImportors ” base de données de démonstration téléchargeable ici.

Pour créer un "Source " connexion, cliquez avec le bouton droit sur "Gestionnaires de connexion " et sélectionnez " Nouvelle connexion ADO.NET ” comme indiqué dans l'image ci-dessous :

Une boîte de dialogue "Configurer le gestionnaire de connexion ADO.NET " ouvrira. Dans la boîte de dialogue, cliquez sur "Nouveau ” comme indiqué dans l'image suivante :

Une boîte de dialogue "Gestionnaire de connexion " ouvrira. Je vais configurer les paramètres de connectivité SQL :

1. Nom du serveur – est le nom d'hôte ou l'adresse IP du serveur de base de données sur lequel SQL est installé.

2. Authentification - est un "type d'authentification" utilisé pour connecter le serveur qui est sélectionné sur "Nom du serveur ” liste déroulante. Il peut s'agir de l'authentification SQL ou de l'authentification Windows.

3. Nom de la base de données – est le nom de la base de données que nous allons utiliser pour extraire les données.

Dans cette démo, je vais utiliser ma machine virtuelle locale. J'utiliserai l'authentification Windows pour connecter l'instance SQL et je vais utiliser "WideWorldImportors ” base de données.

Regardez l'image suivante :

Cliquez sur "Tester la connexion ” pour vérifier la connexion réussie. Regardez l'image suivante :

Une fois la connexion SQL configurée, vous pourrez voir la connexion dans les "Gestionnaires de connexion " la fenêtre. Il est situé en bas de la fenêtre de flux de contrôle, comme illustré dans l'image suivante :

Créer une tâche de flux de données

La tâche de flux de données est utilisée pour déplacer des données entre les sources et la destination. Il peut être utilisé pour effectuer des tâches ETL (extraction, transformation et chargement). J'exporterai des données de SQL Server vers Excel ou un fichier texte, nous utiliserons donc la tâche de flux de données.

Pour configurer la tâche de flux de données, je vais d'abord faire glisser et déposer la tâche de flux de données dans la fenêtre de flux de contrôle et la renommer en "Exporter les données de vente vers Excel ” comme indiqué dans l'image ci-dessous :

Configurer la source ADO.NET

Pour remplir les données de la table SQL Server, nous devons configurer le composant source ADO.Net. Double-cliquez sur "Tâche de flux de données " pour faire ça. La fenêtre "Configurer la tâche de flux de données " ouvrira. Vous pouvez également sélectionner "Flux de données " qui se trouve à côté de " Flux de contrôle ”. Comme nous avons déjà configuré la connexion SQL, nous allons faire glisser et déposer la source ADO.NET dans la fenêtre de flux de données, comme indiqué dans l'image ci-dessous :

Nous allons maintenant configurer ADO.NET Source afin d'extraire les données de la table en interrogeant la table SQL Server. Pour ce faire, double-cliquez sur " ADO Net source ”. Une boîte de dialogue s'ouvrira. Dans la boîte de dialogue, nous devons configurer les paramètres suivants :

1. Gestionnaire de connexion ADO.NET – remplit la liste des connexions ADO.NET créées dans le package SSIS.

2. Mode d'accès aux données a deux options :

un. Si vous sélectionnez "Tableau ou Affichage " dans " Mode d'accès aux données ” liste déroulante, “Nom de la table ou de la vue » sera rempli de tables et de vues qui existent dans la base de données. Voir l'image ci-dessous :

b. Si nous sélectionnons "Commande SQL ”, il ouvrira une zone de texte multiligne où nous pourrons écrire la requête Ad-Hoc pour extraire les données de la base de données.

Voir l'image ci-dessous :

Nous avons déjà créé la connexion ADO.Net, donc dans la liste déroulante du gestionnaire de connexion ADO.NET pour sélectionner le nom créé de celui-ci. Dans cette démo, nous allons écrire notre propre requête afin que la méthode d'accès aux données soit "SQL Command ”.

J'ai créé une requête qui me donnera la liste des clients de la base de données. Cette requête est ci-dessous :

SELECT s.CustomerID, 
s.CustomerName, 
sc.CustomerCategoryName, 
pp.FullName AS PrimaryContact, 
ap.FullName AS AlternateContact, 
s.PhoneNumber, 
s.FaxNumber, 
bg.BuyingGroupName, 
dm.DeliveryMethodName AS DeliveryMethod, 
c.CityName AS CityName 
FROM Sales.Customers AS s 
LEFT OUTER JOIN Sales.CustomerCategories AS sc 
ON s.CustomerCategoryID = sc.CustomerCategoryID 
LEFT OUTER JOIN [Application].People AS pp 
ON s.PrimaryContactPersonID = pp.PersonID 
LEFT OUTER JOIN [Application].People AS ap 
ON s.AlternateContactPersonID = ap.PersonID 
LEFT OUTER JOIN Sales.BuyingGroups AS bg 
ON s.BuyingGroupID = bg.BuyingGroupID 
LEFT OUTER JOIN [Application].DeliveryMethods AS dm 
ON s.DeliveryMethodID = dm.DeliveryMethodID 
LEFT OUTER JOIN [Application].Cities AS c 
ON s.DeliveryCityID = c.CityID

Enfin, l'éditeur de source ADO.NET ressemblera à l'image ci-dessous :

Nous pouvons prévisualiser le résultat de la requête en cliquant sur "Aperçu ” dans la boîte de dialogue. Le résultat de la requête sera comme indiqué dans l'image ci-dessous :

Configurer la destination Excel

Une fois que nous avons configuré la source ADO.NET, nous allons configurer la destination Excel.

Dans la boîte à outils SSIS, faites glisser et déposez la destination Excel dans la fenêtre de flux de données et renommez-la en "Fichier Excel de vente ” comme indiqué dans l'image ci-dessous :

Double-cliquez sur la destination Excel. Une boîte de dialogue "Editeur de destination Excel " s'ouvrira pour configurer les paramètres suivants :

1. Gestionnaire de connexion Excel – utilisé pour connecter le fichier excel.

2. Méthode d'accès aux données . La feuille de calcul Excel est considérée comme un tableau ou une vue. Si vous sélectionnez "Tableau ou Affichage », liste déroulante « Nom de la feuille Excel " sera rempli avec toutes les feuilles de calcul créées dans le classeur Excel.

3. Nom de la feuille Excel . Par défaut, cette liste déroulante est désactivée. Il sera activé automatiquement lorsque nous sélectionnerons "Table ou Afficher ” comme mode d'accès aux données. Nous pouvons également sélectionner la feuille de calcul Excel appropriée.

Nous n'avons pas encore créé de connexion de destination Excel, il est donc tout d'abord nécessaire de créer un gestionnaire de destination Excel. Pour cela, cliquez sur "Nouveau ” à côté de “Gestionnaire de connexion Excel ” liste déroulante comme indiqué dans l'image ci-dessous :

La boîte de dialogue "Gestionnaire de connexion Excel " ouvrira. Ici, nous pouvons configurer :

1. Chemin du fichier Excel – l'emplacement du fichier excel.

2. Version Excel – peut sélectionner la version Excel dans la liste déroulante.

Pour cette démo, j'ai créé un fichier Excel et l'ai enregistré sur mon ordinateur. Pour localiser le fichier, cliquez sur Parcourir, parcourez le système de fichiers, sélectionnez le fichier et cliquez sur OK , comme illustré dans l'image ci-dessous :

Maintenant, sélectionnez le mode d'accès aux données en tant que "Table ou vue ” dans “Gestionnaire de destinations Excel ”. La liste des feuilles de calcul Excel sera remplie dans la liste déroulante. Sélectionnez "Nom de la feuille Excel " dans la liste déroulante comme indiqué dans l'image ci-dessous :

Maintenant, pour exporter les données de la table SQL vers un fichier Excel, nous devons mapper les champs de la table SQL et du fichier Excel. Pour ce faire, faites glisser la flèche bleue sous "Données de vente du serveur de base de données » et déposez-le sur « Fichier Excel de vente ” composant comme indiqué dans l'image ci-dessous :

Double-cliquez sur "Destination Excel ” pour cartographier les champs. « Éditeur de destination Excel (fichier Excel de vente) " ouvrira. Sélectionnez "Mappages ” dans le volet gauche de la boîte de dialogue. Dans le mappage, les colonnes d'entrée seront les colonnes de sortie de la requête SQL et les colonnes de destination seront les colonnes du fichier Excel. Il est suggéré de conserver le même nom de sortie de requête SQL et de colonnes Excel. Cela rendra la cartographie beaucoup plus facile car nous n'avons pas besoin de mapper les champs manuellement. SSIS mappera automatiquement les colonnes.

Pour cette démonstration, le fichier Excel et la sortie de la requête SQL portent le même nom, de sorte que le mappage a été effectué automatiquement. Vérifiez que le mappage s'est bien déroulé et cliquez sur OK . Voir l'image ci-dessous :

Une fois le mappage terminé, l'ensemble de la tâche de flux de données ressemblera à l'image ci-dessous :

Nous pouvons maintenant exécuter le package. Pour ce faire, cliquez sur "Démarrer ” qui se trouve dans la barre de menu. Si le package s'exécute avec succès, vous pouvez voir l'icône verte sur chaque composant, comme illustré dans l'image ci-dessous :

Configurer la destination du fichier plat

Comme je l'ai mentionné au début de l'article, dans SSIS, nous pouvons exporter des données de SQL Table vers un fichier texte. Pour ce faire, nous devons créer une destination de fichier plat dans la tâche de flux de données. Faites glisser et déposez « Destination du fichier plat " dans la fenêtre de tâche de flux de données et renommez-la en "Données de vente dans un fichier texte ” comme le montre l'image ci-dessous :

Double-cliquez maintenant sur "Destination du fichier plat ”. Une boîte de dialogue "Éditeur de destination de fichier plat " s'ouvrira comme indiqué dans l'image ci-dessous :

Cliquez maintenant sur "Nouveau ” à côté de “Gestionnaires de connexions de fichiers plats ” liste déroulante. La boîte de dialogue "Format de fichier plat " ouvrira. Il a quatre options :exporter les données vers une largeur délimitée, fixe, une largeur fixe avec des délimiteurs de ligne et une droite irrégulière. Pour cette démo, nous choisirons "Délimité ”.

Sélectionnez "Délimité " et cliquez sur OK comme indiqué sur l'image ci-dessous :

Une autre boîte de dialogue "Éditeur du gestionnaire de connexions de fichiers plats " ouvrira. Nommez le gestionnaire de connexion comme "Exporter les données de vente ” comme indiqué sur l'image suivante :

Pour enregistrer les données SQL dans un fichier texte, nous pouvons soit créer le nouveau fichier texte, soit choisir celui existant.

Pour cette démo, nous allons créer un nouveau fichier. Je vais créer le fichier nommé "Sales Data ”. Pour ce faire, je vais cliquer sur parcourir et parcourir le système de fichiers comme indiqué dans l'image ci-dessous :

Nous allons maintenant configurer les paramètres du fichier plat :

  • Les données exportées de la table SQL seront stockées dans le format délimité, alors sélectionnez "D éliminé " dans "Formater ” liste déroulante comme indiqué dans l'image ci-dessous :

  • "Délimiteur de ligne d'en-tête " sera "{CR}{LF} ", alors choisissez l'option appropriée dans la liste déroulante, comme indiqué dans l'image ci-dessous :

  • Dans le fichier texte, la première ligne sera l'en-tête de colonne, alors cochez "Noms de colonne dans la première ligne de données ” comme le montre l'image ci-dessous :

Cliquez sur OK pour fermer "l'éditeur du gestionnaire de connexions de fichiers plats ”.

Nous allons maintenant mapper les colonnes. Pour cela, cliquez sur "Mappings " sur le côté gauche de "Éditeur de destination de fichier plat ” comme le montre l'image ci-dessous :

Comme les noms de "entrée de requête SQL " et " Destination du fichier texte " les colonnes sont les mêmes, le package SSIS mappe automatiquement les colonnes.

Une fois le mappage terminé, l'ensemble de la tâche de flux de données ressemblera à l'image ci-dessous :

Nous pouvons maintenant exécuter le package. Pour ce faire, cliquez sur "Démarrer ” qui se trouve dans la barre de menu. Si le package s'exécute avec succès, vous pouvez voir l'icône verte sur chaque composant, comme illustré dans l'image ci-dessous :

Ci-dessous, la capture d'écran des données extraites de la table SQL :

Résumé

Dans cet article, j'ai abordé :

  1. Création du gestionnaire de connexions ADO.NET
  2. Création d'une tâche de flux de données et configuration de la base de données source
  3. Configuration de la destination Excel et exportation des données de la table SQL vers le fichier Excel.
  4. Configuration de la destination du fichier plat et exportation des données de la table SQL vers le fichier texte.

Outils utiles :

Devart SSIS Data Flow Components - vous permet d'intégrer des données de base de données et de cloud via SQL Server Integration Services.