2013-06-18 12 views
7

Ho impostato un collegamento ODBC a un Netezza (database SQL). La connessione va bene. Tuttavia, R estrae solo 256 righe per impostazione predefinita e limita il numero di righe che può estrarre.Connessione RODBC - righe limitate

Se ho eseguito la query in Netezza, restituirebbe un numero totale di righe (300k). Mi aspetto lo stesso numero di righe in R. Tuttavia, ha restituito solo 256 righe un po 'corte rispetto a 300k.

Il driver che sto usando la versione 7.00.02 NetezzaSQL NSQLODBC.DLL

Ho provato a cambiare le pre-fetch contare fino a zero nel "Drivers opzione' dal Pannello di controllo> Strumenti di amministrazione> Origini dati (OBBC)> sistema DNS

non ha funzionato. Tutte le idee?

+0

Quante righe ti aspetti? E quale libreria di connessione ODBC stai usando? –

+0

full size (300k). Suppongo che volessi dire Amministratore ODBC Data Source> System DSN –

+0

E che tipo di driver? –

risposta

7

Penso RODBC agisce male con Netezza. Una soluzione http://datamining.togaware.com/survivor/Database_Connection.html

basta aggiungere believeNRows=FALSE all'e o la tua chiamata sqlQuery o odbcConnect (usa la versione successiva se usi anche sqlFetch.

+0

Correggere, basta aggiungere l'argomento alla query, ad esempio 'results = sqlQuery (dbhandle," SELECT * FROM TABLE ", believeNRows = FALSE)' – DavidJ

+0

È passato un anno ma, a prescindere, funziona per me: D – gtnbz2nite

2

si può anche provare utilizzando JDBC conducente:

library(RJDBC) 
drv <- JDBC("org.netezza.Driver", "nzjdbc.jar", "'") 

conn <- dbConnect(drv, "jdbc:netezza://host:5480/database", "user", "password") 

res <- dbSendQuery(conn, "select * from mytable") 

In questo modo non si ha a che fare con i DSN, ecc

+1

Alex, I ho provato questo metodo usando nzjdbc.jar su un Mac e sto ancora recuperando 256 righe. Qualche idea? –

+0

@FrankP., 256 è la lunghezza predefinita del buffer di pre-recupero per il driver. Hai scaricato i dati usando 'fetch (res, n = -1)'? -1 costringerebbe tutti i record a essere recuperati. –

0

So che questo è un po 'fuori-datato, ma il problema è non con il pacchetto RODBC. Il problema sta nel modo in cui si imposta la connessione ODBC se si configura la connessione in Windows, verrà visualizzata un'ultima scheda nelle impostazioni in cui è possibile specificare la quantità di righe che verrà recuperata. E il valore predefinito è 256.