2013-06-24 43 views
5

這是我第一次連接到Vertica。我已經通過使用RODBC庫成功連接到MySQL數據庫。使用RODBC連接R和Vertica

我在Vertica的數據庫設置,我從https://my.vertica.com/download-community-edition/

安裝了Windows 64位ODBC驅動程序當我嘗試使用R鍵連接到Vertica的,我得到了以下錯誤:

channel = odbcDriverConnect(connection = "Server=myserver.edu;Database=mydb;User=mydb;Password=password") 

Warning messages: 
1: In odbcDriverConnect(connection = "Server=myserver.edu;Database=mydb;User=mydb;Password=password") : 
[RODBC] ERROR: state IM002, code 0, message [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified 
2: In odbcDriverConnect(connection = "Server=myserver.edu;Database=mydb;User=mydb;Password=password") : 
ODBC connection failed 

有人能告訴我如何解決這個問題嗎?或者有沒有其他方法可以使用R連接到Vertica?

回答

11

它可能不是最快的,但我更喜歡使用R的Vertica JDBC驅動程序。在不同的操作系統上運行ODBC驅動程序會有點麻煩。如果您已經爲其他應用程序安裝了Java運行時環境(JRE),那麼這非常簡單。

從MyVertica門戶下載適用於Vertica服務器版本的Vertica JDBC驅動程序。將驅動程序(.jar文件)放置在適合您的操作系統的合理位置。

安裝RJDBC到工作區:

install.packages("RJDBC",dep=TRUE) 

在你的[R腳本,加載RJDBC模塊,並創建了Vertica的驅動程序的實例,調整類路徑參數指向驅動程序的位置和文件名,你下載:

library(RJDBC) 
vDriver <- JDBC(driverClass="com.vertica.jdbc.Driver", classPath="full\path\to\driver\vertica_jdbc_VERSION.jar") 

使用驅動程序對象創建一個新的連接,替代你的連接細節爲主機,用戶名和密碼:

vertica <- dbConnect(vDriver, "jdbc:vertica://host:5433/db", "username", "password") 

然後運行SQL查詢:

myframe = dbGetQuery(vertica, "select Address,City,State,ZipCode from MyTable") 
+2

Thanks @bpanulla。有效。我需要爲此添加一個小的更正。 vDriver應該是vDriver < - JDBC(driverClass =「com.vertica.jdbc.Driver」,classPath =「path \ to \ driver \ vertica_VERSION_jdk_5.jar」) – Jana

+0

Ahhh有趣。我仍在使用Vertica 5,因此他們可能會更改新版本的軟件包。 – bpanulla

+0

謝謝@ bpanulla。有沒有反正我可以上傳一個製表符分隔的文本文件到Vertica使用JDBC? – Jana

1

你必須在JDBC功能的CLASSPATH arguement使用雙斜線。 例如,

vDriver <- JDBC(driverClass="com.vertica.jdbc.Driver", 
classPath="C:\\Program Files\\Vertica Systems\\JDBC\\vertica-jdk5-6.1.2-0.jar") 

爲我工作,而只是複製和粘貼的路線失敗。