Sto lavorando con un database Oracle e mi piace recuperare una tabella con 30 milioni di record.Accelerare sqlFetch()
library(RODBC)
ch <- odbcConnect("test", uid="test_user",
pwd="test_pwd",
believeNRows=FALSE, readOnly=TRUE)
db <- sqlFetch(ch, "test_table")
Per 1 milione di record il processo richiede 1074,58 sec. Quindi, ci vuole un po 'di tempo per tutti i 30 milioni di dischi. C'è qualche possibilità di accelerare il processo?
Apprezzerei qualsiasi aiuto. Grazie.
RODBC contro Oracle è pazzo lento. Eseguire il dump su un csv locale alla fine del database, trasferire su file sharing di rete e quindi caricare in R tramite sqldf :: read.csv.sql. Vedi: http://www.cerebralmastication.com/2009/11/loading-big-data-into-r/ – Hansi
Grazie per il link. Hai esperienza se il pacchetto "ROracle" è migliore in termini di prestazioni? Per me, sembra davvero controintuitivo creare una discarica. – majom
@majom Al lavoro, devo scrivere query su un data warehouse Oracle e trascinare i dati in R è dolorosamente lento. Non sono mai riuscito a far funzionare Roracle. Invece di sqlFetch, provo a scrivere query mirate per ottenere i dati di cui ho bisogno. Ciò minimizza il trasferimento dei dati (un po ') e sfrutta la velocità Oracle in-database. Non lavoro con dati grandi come i tuoi, quindi il mio processo si adatta alle mie esigenze (per ora). Non ideale, ma funziona. – Btibert3