Published on

December 29, 2019

Utilisation de BCP pour importer et exporter des données dans SQL Server

Lorsqu’il s’agit de charger de petits ensembles de données dans SQL Server, il existe de nombreux outils basés sur une interface graphique disponibles, tels que SSMS, Azure Data Studio et Visual Studio. Cependant, que faire si vous n’avez pas accès à ces outils et que vous devez exporter/importer des données depuis/vers une instance SQL Server exécutée sur Linux? Dans de tels cas, l’utilitaire BCP (Bulk Copy Program) vient à la rescousse.

Installation de mssql-tools

Pour utiliser l’utilitaire BCP sur Linux, vous devez installer le package mssql-tools séparément. Les étapes d’installation peuvent varier en fonction de la distribution Linux que vous utilisez. Par exemple, sur Ubuntu, vous pouvez installer mssql-tools en suivant ces commandes:

$ curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
$ curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list
$ apt-get update
$ apt-get install mssql-tools

Une fois l’installation terminée, vous aurez accès à l’utilitaire BCP.

Exploration des données

Avant d’importer des données, il est toujours bon de parcourir l’ensemble de données. Dans cet exemple, nous avons un fichier CSV appelé “hw_25000.csv” qui contient des informations biométriques sur 25 000 individus, y compris leur ID, leur taille et leur poids. Pour obtenir un aperçu rapide des données, vous pouvez utiliser les commandes “head” et “tail” pour vérifier les dix premières et les dix dernières lignes du fichier:

$ head -10 hw_25000.csv
$ tail -10 hw_25000.csv

En examinant les données, vous pouvez vous assurer de leur propreté et vérifier la structure de l’ensemble de données.

Importation de données avec BCP

Pour importer des données à l’aide de l’utilitaire BCP, vous devez fournir plusieurs arguments, notamment le nom du serveur, le nom d’utilisateur SQL Server, le mot de passe, la base de données cible et le séparateur de champ. Voici un exemple de commande pour importer des données à partir d’un fichier CSV séparé par des virgules appelé “hw_25000.csv” dans une table appelée “HW” dans la base de données “Biometrics”:

bcp HW in hw_25000.csv -S localhost -U sa -P MyP@ssw0rd# -d Biometrics -c -t ','

Après avoir exécuté la commande, vous verrez la progression et le nombre de lignes envoyées à SQL Server. Une fois l’importation terminée, vous pouvez vérifier les données en exécutant une requête simple:

sqlcmd -S localhost -d Biometrics -U sa -P MyP@ssw0rd# -I -Q "SELECT TOP 10 * FROM HW;"

Cela affichera les dix premières lignes de la table “HW”, confirmant que les données ont été importées avec succès.

Exportation de données avec BCP

L’exportation de données avec BCP est similaire à l’importation. Vous devez fournir les mêmes arguments, mais cette fois utiliser l’option “out” pour spécifier que vous exportez des données. Voici un exemple de commande pour exporter toutes les données de la table “HW” dans un fichier séparé par des virgules appelé “hw_bcp_out.csv”:

bcp HW out hw_bcp_out.csv -S localhost -U sa -P MyP@ssw0rd# -d Biometrics -c -t ','

Après avoir exécuté la commande, vous verrez la progression et le nombre de lignes exportées avec succès. Vous pouvez vérifier le fichier exporté dans votre dossier actuel.

Conclusion

L’utilitaire BCP est un puissant outil en ligne de commande qui vous permet d’importer et d’exporter des données dans SQL Server, indépendamment du système d’exploitation. Que vous travailliez sur Windows, Linux ou des conteneurs Docker, BCP offre un moyen fiable et efficace de gérer le transfert de données. En maîtrisant cet outil, vous pouvez facilement gérer les données dans SQL Server sans vous fier aux outils basés sur une interface graphique.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.