2013-06-24 14 views
5

Questa è la prima volta che mi collego a Vertica. Ho già collegato con successo un database MySQL utilizzando la libreria RODBC.Connect R e Vertica tramite RODBC

Ho la messa a punto di database in Vertica e ho installato il Windows driver ODBC a 64 bit da https://my.vertica.com/download-community-edition/

Quando ho provato a connettersi a Vertica utilizzando R, ottengo l'errore sotto:

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 

Qualcuno può dirmi come risolvere questo problema? O ci sono altri modi per connettersi a Vertica usando R?

risposta

11

Potrebbe non essere il più veloce, ma preferisco utilizzare il driver Vertica JDBC di R. Ottenere il funzionamento dei driver ODBC è un po 'complicato tra i diversi sistemi operativi. Se hai già un Java Runtime Environment (JRE) installato per altre applicazioni, questo è abbastanza semplice.

Scaricare i driver Vertica JDBC per la versione del server Vertica dal portale MyVertica. Posizionare il driver (un file .jar) in una posizione ragionevole per il proprio sistema operativo.

Installare RJDBC nel vostro spazio di lavoro:

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

Nello script R, caricare il modulo RJDBC e creare un'istanza del driver Vertica, regolando l'argomento classPath per indicare la posizione e il nome del driver che si scaricato:

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

effettuare una nuova connessione utilizzando l'oggetto conducente, sostituendo i dettagli di connessione per l'host, username e password:

vertica <- dbConnect(vDriver, "jdbc:vertica://host:5433/db", "username", "password") 

Quindi eseguire le query SQL:

myframe = dbGetQuery(vertica, "select Address,City,State,ZipCode from MyTable") 
+2

Grazie @bpanulla. Ha funzionato. Devo aggiungere una piccola correzione a questo. il vDriver deve essere vDriver <- JDBC (driverClass = "com.vertica.jdbc.Driver", classPath = "percorso \ a \ driver \ vertica_VERSION_jdk_5.jar") – Jana

+0

Ahhh interessante. Sto ancora utilizzando Vertica 5, quindi forse hanno cambiato il pacchetto per le versioni più recenti. – bpanulla

+0

grazie @bpanulla. Posso comunque caricare un file di testo delimitato da tabulazioni su vertica usando JDBC? – Jana

1

Devi usare doppia barra nella arguement classPath nella funzione JDBC. per esempio,

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

lavorato per me, mentre semplicemente copiando e incollando il percorso non è riuscita.

Problemi correlati