Reputation: 607
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
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
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
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
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