MacOS環境下,通過 R 連線 sqlserver
阿新 • • 發佈:2018-12-11
Mac環境安裝 sqlserver 看這篇文章
通過 R 連線 sqlserver 等資料庫,重要的是配置 odbc 驅動和驅動資料來源,在 mac 環境下,使用 unixODBC 配合 freeTDS 實現。
Install unixODBC
brew update
brew install unixodbc
Install freeTDS
brew install freetds --with-unixodbc
安裝好之後檢視配置
odbcinst -j
$ odbcinst -j unixODBC 2.3.7 DRIVERS............: /usr/local/etc/odbcinst.ini SYSTEM DATA SOURCES: /usr/local/etc/odbc.ini FILE DATA SOURCES..: /usr/local/etc/ODBCDataSources USER DATA SOURCES..: /Users/ianly/.odbc.ini SQLULEN Size.......: 8 SQLLEN Size........: 8 SQLSETPOSIROW Size.: 8
配置相關配置檔案
vim /usr/local/etc/freetds.conf
[MYMSSQL]
host = 127.0.0.1
port = 1401
tds version = 8.0
client charset = UTF-8
vim /usr/local/etc/odbc.ini
[mytest]
Driver=/usr/local/lib/libtdsodbc.so
Trace=No
Server=127.0.0.1
Port=1401
TDS_Version=8.0
Database=mhga002
測試連線
測試odbc驅動
$ isql mytest sa 1234qwer! +---------------------------------------+ | Connected! | | | | sql-statement | | help [tablename] | | quit | | | +---------------------------------------+ SQL>
R通過 RODBC 連線 sqlserver
在 R 環境中安裝 RODBC 包
install.packages(“RODBC”, type = “source”)
然後測試連線
> library("RODBC") > bcp <- odbcConnect("mytest", uid="sa", pwd="1234qwer!") > bcp #看到這些資訊 #RODBC Connection 1 #Details: # case=nochange # DSN=mytest # UID=sa # PWD=****** # 試一下查詢 lcbd <- sqlQuery(bcp, "SELECT * FROM PERSON") # 看看得到了什麼? dim(lcbd) #> [1] 919 14
OK!!