2013-06-24 4 views
5

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

У меня есть настройки баз данных в Vertica и я установил окно 64-разрядный драйвер ODBC от 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?

ответ

11

Возможно, это не самый быстрый, но я предпочитаю использовать драйвер Vertica JDBC от R. Получение драйверов ODBC немного беспорядочно для разных операционных систем. Если у вас уже есть Java Runtime Environment (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") 
+2

Спасибо @bpanulla. Это сработало. Мне нужно добавить небольшую поправку к этому. vDriver должен быть vDriver <- JDBC (driverClass = "com.vertica.jdbc.Driver", classPath = "путь \ to \ driver \ vertica_VERSION_jdk_5.jar") – Jana

+0

Ahhh интересно. Я все еще использую Vertica 5, поэтому, возможно, они изменили пакет для более новых версий. – bpanulla

+0

спасибо @bpanulla. Есть ли в любом случае, я могу загрузить текстовый файл с разделителями табуляции в vertica с помощью JDBC? – Jana

1

Вы должны использовать двойной слэш в пути к классам arguement в функции JDBC. , например,

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

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