使用RODBC连接R和Vertica

Jan*_*ana 6 r vertica rodbc

这是我第一次连接到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
Run Code Online (Sandbox Code Playgroud)

谁能告诉我如何解决这个问题?或者有没有其他方法使用R连接到vertica?

bpa*_*lla 13

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

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

RJDBC安装到您的工作区:

install.packages("RJDBC",dep=TRUE)
Run Code Online (Sandbox Code Playgroud)

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

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

使用驱动程序对象建立新连接,用连接详细信息替换主机,用户名和密码:

vertica <- dbConnect(vDriver, "jdbc:vertica://host:5433/db", "username", "password")
Run Code Online (Sandbox Code Playgroud)

然后运行SQL查询:

myframe = dbGetQuery(vertica, "select Address,City,State,ZipCode from MyTable")
Run Code Online (Sandbox Code Playgroud)

  • 谢谢@bpanulla.有效.我需要添加一个小的修正.vDriver应该是vDriver < - JDBC(driverClass ="com.vertica.jdbc.Driver",classPath ="path\to\driver\vertica_VERSION_jdk_5.jar") (2认同)