Me conecto a Redshift usando R de forma remota desde mi estación de trabajo.
install.packages("RPostgreSQL") library (RPostgreSQL) drv <- dbDriver("PostgreSQL") con1 <- dbConnect(drv, host="url", port="xxxx", dbname="db_name", user="id", password="password") dbGetInfo(con1)luego creo una tabla:
dbSendQuery(con1, "create table schema.table_name as select * from schema.table_name;")ahora quiero exportar esta tabla a un archivo .csv en mi estación de trabajo, ¿cómo hago esto? Nuevamente, no tengo la base de datos PostGres instalada en mi estación de trabajo, solo uso R para acceder a ella.
Además, esta tabla es GRANDE, 4 columnas, 14 millones de filas.
¡Gracias!
Deberá desplegar los resultados de una consulta en un objeto local y luego volcar el objeto en un CSV. Algo parecido a res <- dbSendQuery(con1, "select * from schema.table_name"); dat <-dbFetch(res); readr::write_csv(dat, "~/output.csv") debería ayudarlo a comenzar.
Descubrí esto después de publicar - compartir ...
system.time( fwrite(dbReadTable(con1, c("schema","table")), file="file.csv", sep=",", na="", row.names=FALSE, col.names=TRUE ))Escuché que la pluma es aún más rápida.
esto fue para 43 millones de filas con 4 columnas, tomó 15 minutos.