6

这是我第一次连接到 Vertica。我已经使用 RODBC 库成功连接到 MySQL 数据库。

我在 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?

4

2 回答 2

13

它可能不是最快的,但我更喜欢使用 R 的 Vertica JDBC 驱动程序。让 ODBC 驱动程序在不同的操作系统中工作有点混乱。如果您已经为其他应用程序安装了 Java 运行时环境 (JRE),那么这相当简单。

从 MyVertica 门户下载适用于您的 Vertica 服务器版本的 Vertica JDBC 驱动程序。将驱动程序(一个 .jar 文件)放置在适合您的操作系统的合理位置。

RJDBC安装到您的工作区中:

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

在您的 R 脚本中,加载 RJDBC 模块并创建 Vertica 驱动程序的实例,调整 classPath 参数以指向您下载的驱动程序的位置和文件名:

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")
于 2013-06-25T19:38:13.977 回答
1

您必须在 JDBC 函数的 classPath 争论中使用双斜杠。例如,

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

为我工作,而只是复制和粘贴路线失败。

于 2015-11-27T07:23:05.183 回答