Dans un monde idéal pour un administrateur de base de données, tout serait pareil. Tous les serveurs seraient identiques et exécuteraient les mêmes charges de travail. Ils sont plus faciles à gérer. Mais, ce n’est pas le cas. De nos jours, les administrateurs système doivent gérer différents environnements. Cela ne pourrait pas être plus évident dans le besoin d’effectuer des requêtes SQL à partir d’une machine Linux. Dans cet article, vous apprendrez comment vous connecter à SQL Server depuis Linux !
Une façon de se connecter à SQL Server depuis Linux est d’utiliser un module Python. Mais avant d’aller aussi loin, couvrons d’abord l’environnement avec lequel je travaille.
Dans cet article, je vais démontrer cette tâche en utilisant Ubuntu 16.04 et je vais me connecter à SQL Server 2012 R2. Cependant, la même technique devrait s’appliquer également à d’autres distributions Linux et versions de SQL Server. Les administrateurs de bases de données, réjouissez-vous !
Prérequis
Pour commencer, vous devrez installer quelques prérequis. Tout d’abord, puisque vous allez vous connecter à une instance SQL Server depuis Python, vous aurez besoin d’un module Python. Un module Python courant pour se connecter à SQL est appelé PyODBC. Ce module vous permet d’interroger des bases de données SQL via ODBC à l’aide d’un pilote ODBC SQL Server pour Linux. Pour installer la dernière version, utilisez pip (le gestionnaire de paquets Python).
Si cela ne fonctionne pas, vous pourriez ne pas avoir pip installé. Pour installer pip :
Ensuite, vous devez créer un script Python. Je vais l’appeler sql_server.py. Pour créer un script Python, créez d’abord un fichier vierge.
Ensuite, en utilisant votre éditeur de choix, ajoutez les lignes ci-dessous. Le shebang suivi du chemin vers le binaire Python indique à l’interpréteur qu’il s’agit d’un script Python. L’instruction import
vous permet ensuite d’appeler les méthodes de la bibliothèque à l’intérieur du module pyodbc. Enregistrez ce script.
Une fois que vous avez créé le script Python, exécutez le script :
Si cela fonctionne sans erreur, le module pyodbc a été installé avec succès.
Ensuite, ajoutez le code pour exécuter une requête de test. Pour ce faire, créez une chaîne ODBC.
Pour en savoir plus sur la création de chaînes ODBC, voici une bonne ressource.
La chaîne ODBC est pointilleuse sur ce qui est inclus. Il a fallu un certain temps pour comprendre comment faire fonctionner cela, mais voici à quoi ressemble la mienne. Ci-dessous, je transmets la chaîne ODBC comme argument à la méthode connect()
qui est incluse dans le module pyodbc.
La plupart de la chaîne ODBC est évidente, mais un fait important est le double antislash pour UID. Assurez-vous toujours d’avoir échappé à tous les antislashs dans la chaîne ODBC. De plus, certaines des options que j’utilise sont facultatives.
De plus, vous pouvez soit utiliser le nom d’hôte pour SERVER
comme je l’ai fait ci-dessus, soit utiliser l’adresse IP du serveur SQL.
N’hésitez pas à les ajouter ou à les supprimer comme bon vous semble pour correspondre à votre serveur SQL.
Ensuite, vous devez créer un objet curseur qui vous permettra de passer une instruction T-SQL. Cela se fait avec la méthode cursor()
.
Maintenant, vous avez un objet avec une méthode execute()
qui peut être utilisée pour transmettre n’importe quelle instruction T-SQL que nous souhaitons, comme indiqué ci-dessous. Cela crée une variable rows
contenant le jeu de données résultant.
Vous en êtes maintenant au point où vous devrez décider quoi faire avec le jeu de données. Vous pouvez envoyer les résultats dans un fichier CSV, mettre les résultats dans une autre base de données ou écrire le contenu dans la console.
En dessous, j’affiche les résultats dans la console si le jeu de données est renseigné.

Vous pouvez voir que si le jeu de données est affiché dans la console, la sortie n’est pas très esthétique. À ce stade, c’est à vous de décider comment formater ou analyser les données de la base de données. La partie difficile est terminée!
Vous vous retrouverez maintenant avec un script qui ressemble à ceci:
Résumé
Dans ce billet de blog, vous avez appris comment utiliser le module Python pyodbc sur Linux pour vous connecter à une source de données SQL Server. La partie la plus difficile pour moi a été de comprendre la chaîne ODBC, mais une fois que vous l’avez couverte, tout devrait bien se passer.
Une fois que vous vous connectez depuis Linux, pourquoi ne pas voir si vous pouvez améliorer les performances en utilisant des compteurs de performances?
Source:
https://adamtheautomator.com/connect-to-sql-server-from-linux/