D.Roca
D.Roca

Reputation: 607

Connect R to a SQL Server database engine

At my work I have R-Studio (Microsoft R Open 3.2.5) installed and would like to connect to a Microsoft SQL Server database, to run scripts using the tables I have.

Is there any chance that I can connect to a SQL Server database using Pentaho and then using the object Execute R-Script to make an OLAP Cube? Do I need a package to connect SQL engine? What would be the steps to perform?

I already have the snowflake arquitectura of the data base. With the fact table and the state tables. But I do not know where to start.

Upvotes: 11

Views: 59375

Answers (4)

Jeff Winchell
Jeff Winchell

Reputation: 113

SQL Server has had native support for calling R programs since SQL Server 2016. So besides calling SQL Server from R scripts like others here have suggested, you can put R scripts into SQL Server and get native scalable functionality, particularly for machine learning.

Upvotes: 0

ASH
ASH

Reputation: 20302

Something like this should work:

library(RODBC)
dbconnection <- odbcDriverConnect("Driver=ODBC Driver 11 for SQL Server;Server=YourDBName\\SQLEXPRESS; Database=TestDB;Uid=; Pwd=; trusted_connection=yes")
initdata <- sqlQuery(dbconnection,paste("select * from MyTable;"))
odbcClose(dbconnection)

Check out these links:

RODBC odbcDriverConnect() Connection Error

https://andersspur.wordpress.com/2013/11/26/connect-r-to-sql-server-2012-and-14/

Finally, make sure SQL Server has all proper permissions applied.

Upvotes: 10

ASH
ASH

Reputation: 20302

Here is another way to connect to SQL Server, using Windows creds.

library("RODBC")
#library("XLConnect")

dbhandle <- odbcDriverConnect('driver={SQL Server};server=Name_Of_Server;database=Name_Of_DB;trusted_connection=true')
currTableSQL<-paste("SELECT * From Your_Table",sep="")
currTableDF<-sqlQuery(dbhandle,currTableSQL)

Uncomment the XLConnect if you want to utilize that library. I feel like a lot of times if you are using SQL Server, you are using Excel as well.

Upvotes: 7

Miha Trošt
Miha Trošt

Reputation: 2022

You can connect to SQL Server directly from R using at least 4 libraries (RODBC, rsqlserver, RSQLServer, RJDBC).

As long as you have enough RAM, you can import your data into R and do your analysis there using for example amazing dplyr or data.table packages. On the other hand, you can just connect to SQL Server and send SQL queries to the server and do your data wrangling inside your database and then import results to R for further (statistical) analysis and visualization.

Upvotes: 12

Related Questions