Подключение 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")
работал для меня, а просто копирование и вставка маршрута не удалось.