web-dev-qa-db-fra.com

Lecture des données de Microsoft SQL Server dans R

Est-il possible de lire les données stockées sur le serveur MS SQL à partir de l'interface R?

Si c'est le cas, je serais également reconnaissant si quelqu'un pouvait montrer le moyen de le faire.

33
Niko Gamulin
18
Joris Meys

J'ai appliqué la fonction RODBC suggérée par d'autres utilisateurs. LienConnexion SQL Server RODBC

library(RODBC)
dbhandle <- odbcDriverConnect('driver={SQL 
Server};server=mysqlhost;database=mydbname;trusted_connection=true')
res <- sqlQuery(dbhandle, 'select * from information_schema.tables')

changer deux variables beased sur votre table de données. 'server = mysqlhost; database = mydbname'

6
Jfang

Niko, quel système d'exploitation utilisez-vous? La réponse à votre question varie en fonction de la plate-forme que vous utilisez.

Si vous utilisez Windows (quelle que soit la bande), la connexion à MSSQL Server via ODBC (RODBC) est la solution la plus judicieuse. Lorsque je me connecte à un serveur MSSQL sous Linux, j'utilise JDBC comme suggéré par Joris. Je suppose que JDBC est également la meilleure solution pour les Mac, mais je pourrais très bien me tromper.

6
Choens

Il existe une autre option qui semble surperformer RODBC et RJDBC

rsqlserver paquet écrit par agstudy.

Installation:

require(devtools)
install_github("rClr", 'jmp75')
install_github('rsqlserver', 'agstudy',args='--no-multiarch')
5
marbel

La dernière bibliothèque qui vous permet de vous connecter aux bases de données MSSQL est RSQLServer.

Vous pouvez le trouver sur GitHub et CRAN .

2
epo3

Vous pouvez vous connecter au serveur SQL à l'aide du package DBI, qui, à mon avis, fonctionne mieux que RODBC. DBI est un package d'interface de base de données pour les bases de données relationnelles. pour SQL je l'utilise avec le paquet odbc comme dans l'exemple ci-dessous.

Visitez cette page pour plus de détails: Requêtes avec R

Un exemple serait comme suit

library(DBI) library(odbc) con <- dbConnect(odbc::odbc(), .connection_string = "driver={SQL Server}; server= ServerName; database=DatabaseName; trusted_conncetion=true")) dbGetQuery(con,'Select * from Table')

0
Ashish Singhal