Harsh est un DBA SQL ayant une expérience de plus de 13 ans. Il a travaillé sur la plupart des technologies liées à SQL Server. Il aime la politique, la lecture
Connectez-vous à SQL Server à partir de R
De quoi parle cet article
La plupart des données d’aujourd’hui sont stockées dans des bases de données relationnelles et R a besoin d’un moyen d’accéder à ces données.
Bien que vous obteniez probablement beaucoup de données à partir de fichiers de données tels que des fichiers séparés par des virgules ou des tabulations, vos données commerciales peuvent souvent être stockées dans une base de données relationnelle telle que SQL Server, Oracle ou MySQL. Parfois, votre entreprise peut copier ces données dans le format de votre choix, comme des fichiers séparés par des virgules, et vous les donner.
Mais souvent, ils peuvent simplement vous donner un accès en lecture à la base de données et vous demander d’obtenir ces données directement de la base de données. Dans un tel scénario, vous devez pouvoir vous connecter à la base de données relationnelle stockant les données. Vous devez également avoir au moins quelques connaissances de base sur les bases de données relationnelles et T-SQL comme select, joins, clause where, etc. Fondamentalement, vous devez être capable d’écrire des requêtes SQL.
Cet article montrera simplement comment se connecter à SQL Server à partir de R et exécuter une requête simple.
Ceci n’est pas un article sur l’écriture de requêtes SQL.
De quoi as-tu besoin
Pour vous connecter à SQL Server, vous devez connaître 3 bits d’informations avant même de commencer.
- Adresse IP de SQL Server :
- Nom d’utilisateur pour se connecter à SQL Server
- Mot de passe permettant à l’utilisateur de se connecter
Vous pouvez demander ces informations à l’équipe de DBA qui gère les serveurs sur lesquels résident les données.
Une fois que vous avez ces informations prêtes, nous pouvons maintenant commencer à configurer notre connexion à SQL Server à partir de R.
Forfait RODBC
Il existe de nombreux packages qui vous aident à vous connecter à des bases de données relationnelles dans R. Pour cette démonstration, j’utilise un package nommé RODBC. Vous devez d’abord installer ce paquet.
install.packages("RODBC")
Assurez-vous que cette installation est terminée sans aucune erreur. Vous pouvez également vérifier si ce package a été installé correctement ou non en exécutant la commande suivante.
library(RODBC)
Vous devriez voir l’invite de commande sans aucune erreur. Si cela se produit, cela signifie que la bibliothèque est chargée dans R. Comme vous pouvez le voir, il s’agit d’un pilote ODBC pour la connexion à la base de données relationnelle. La même bibliothèque peut être utilisée pour se connecter à pratiquement n’importe quelle source de données prenant en charge les connexions ODBC.
Créer une source de données sous Windows
Donc, pour se connecter à SQL Server, nous allons d’abord créer une source de données (DSN) dans Windows.
Faites défiler pour continuer
(Je comprends que beaucoup de gens utilisent R sous Linux. J’ai bien peur que je n’ai pas de machine Linux moi-même, je ne peux pas le faire pour les utilisateurs Linux.)
Pour créer une source de données, cliquez sur Démarrer → Outils d’administration → Sources de données (ODBC).
Cela ouvrira la fenêtre suivante où vous pourrez créer la source de données ODBC qui pointe vers le serveur SQL hébergeant les données.
Comme vous pouvez le voir, j’ai surligné en jaune une source de données que j’ai déjà créée. Je l’ai nommé UAT.
Cliquez sur Ajouter pour créer une nouvelle source de données et sélectionnez l’option indiquée dans la capture d’écran ci-dessous et cliquez sur Terminer.
Dans la fenêtre suivante, vous devez remplir deux champs. L’un est le nom de cette source de données. Cela sera utilisé dans R. Dans mon cas, j’ai ce nom de source de données UAT.
La description peut être n’importe quoi.
Le serveur est la chose la plus importante. C’est ici que vous entrez l’adresse IP du serveur SQL sur lequel les données sont hébergées. Veuillez noter que pour des raisons de confidentialité, j’ai effacé l’adresse IP que j’ai saisie lors de la création de cette source de données.
Une fois ces informations saisies, cliquez sur Suivant.
Sur cet écran, vous devez indiquer à la source de données comment se connecter à SQL Server. C’est ici que vous devrez spécifier le nom d’utilisateur et le mot de passe pour le serveur SQL que vous avez peut-être obtenu du DBA.
Une fois de plus, j’ai effacé mon ID utilisateur de la capture d’écran suivante. Cliquez sur suivant après avoir entré le nom d’utilisateur et le mot de passe.
Sur cet écran, vous n’avez pas besoin de changer quoi que ce soit et cliquez simplement sur suivant.
Sur l’écran suivant également, n’apportez aucune modification et cliquez simplement sur suivant. Vous arriverez maintenant à l’écran final.
Ici, vous verrez UAT au lieu de UST dans mon cas. Comme j’avais déjà nommé une source de données, j’ai dû changer le nom en UST. De plus, dans le champ du serveur marqué en jaune dans la capture d’écran, j’ai effacé l’adresse IP de mon serveur. Dans votre cas, vous verrez ici l’adresse IP du serveur que vous avez entrée au début.
Maintenant, pour vous assurer que la source de données fonctionne, cliquez sur le bouton Tester la source de données. Si tout se passe bien, vous devriez voir un écran comme celui-ci.
Utiliser DSN dans R
Eh bien, c’était la partie la plus difficile. Maintenant, il suffit d’utiliser cette source de données (DSN en R) pour s’y connecter et lancer une requête simple.
Nous allons maintenant exécuter les commandes suivantes dans R. Cette première commande créera un objet de connexion pointant vers le DSN que nous avons créé précédemment. Nous devons utiliser le même nom UAT que nous avons utilisé pour le DSN.
uat_conn = odbcConnect("UAT")
Dans la deuxième étape, nous utiliserons l’objet de connexion créé à l’étape précédente et obtiendrons les données du serveur SQL.
Dans la deuxième étape, nous utiliserons l’objet de connexion créé à l’étape précédente et obtiendrons les données du serveur SQL. C’est la requête que je vais exécuter. Cela me donnera la liste des bases de données du serveur.
sqlQuery(uat_conn,"select name from master.sys.sysdatabases where dbid > 4")
Ici, la requête que j’exécute est entre guillemets.
La source de données sur laquelle cette requête doit être exécutée est uat_conn que nous avions créée lors de la première étape. Donc, fondamentalement, cette commande R se connecte à l’objet de source de données (DSN) nommé uat_conn et exécute une requête. La requête est comme indiqué ci-dessous
select name from master.sys.sysdatabases where dbid > 4
Une fois que vous l’avez exécuté dans R, vous devriez voir la capture d’écran suivante.
Sommaire
Ainsi, cette commande de R se connectera au nom DSN UAT (cela pointe vers le serveur SQL que vous avez utilisé lorsque vous avez créé le DSN), obtiendra une liste des bases de données de ce serveur et l’affichera dans R.
Cet article est exact et fidèle au meilleur de la connaissance de l’auteur. Le contenu est uniquement à des fins d’information ou de divertissement et ne remplace pas un conseil personnel ou un conseil professionnel en matière commerciale, financière, juridique ou technique.
© 2018 Harshvardhan Diwan
ammu le 31 mai 2020 :
Merci, ça marche. Pouvons-nous écrire une requête à partir de R pour créer une table dans la base de données sélectionnée à l’aide de cette instruction sqlQuery ? Si oui, pourriez-vous s’il vous plaît aider en montrant comment faire cela?
Marilia le 14 août 2019 :
J’essaie ça, mais ça ne marche pas !
Anonyme le 16 avril 2019 :
Merci!
Utilisateur anonyme le 15 avril 2019 :
Merci beaucoup, ça marche.
Jeff Jenkins le 03 avril 2019 :
Belles instructions ! J’ai pu me connecter.