Подключение R и Vertica с помощью RODBC

Это мое первое подключение к Vertica. Я уже успешно подключился к базе данных MySQL, используя библиотеку RODBC.

У меня есть настройка базы данных в vertica, и я установил 64-разрядный драйвер ODBC для windows из https://my.vertica.com/download-community-edition/

когда я пытался подключиться к vertica с помощью R, я получаю следующую ошибку:

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

может кто подскажет как это исправить? Или есть какие-либо другие способы подключения для vertica с помощью R?

2 ответов


это может быть не самый быстрый, но я предпочитаю использовать драйвер Vertica JDBC от R. получение драйверов ODBC работает немного грязно в разных операционных системах. Если у вас уже установлена среда выполнения Java (JRE) для других приложений, это довольно просто.

загрузите драйверы Vertica JDBC для версии сервера Vertica с портала MyVertica. Место водителя (а .файл 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")

вы должны использовать двойную косую черту в аргументе classPath в функции JDBC. например,

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

работал для меня, а просто копирование и вставка маршрута не удалось.