从Postgresql将大数据加载到R data.table

Ha *_*ham 5 postgresql r dataframe data.table

我将我的数据存储在Postgresql服务器中.我想加载一个有15mil行的表data.framedata.table

RPostgreSQL用来加载数据.

library(RPostgreSQL)
drv <- dbDriver("PostgreSQL")
con <- dbConnect(drv, ...)

# Select data from a table
system.time(
df <- dbGetQuery(con, "SELECT * FROM 15mil_rows_table")
)
Run Code Online (Sandbox Code Playgroud)

将数据从DB加载到df 需要20分钟.我使用谷歌云服务器,它有60GB RAM和16核CPU

我该怎么做才能减少加载时间?

jan*_*cki 4

不确定这是否会减少加载时间,当然它可能会减少加载时间,因为两个进程的性能都非常高效。您可以对时间安排发表评论。

  1. 使用 bash 运行psql作为转储表到 csv:

COPY 15mil_rows_table TO '/path/15mil_rows_table.csv' DELIMITER ',' CSV HEADER;
Run Code Online (Sandbox Code Playgroud)
  1. 在 R 中只是害怕它:

library(data.table)
DT <- fread("/path/15mil_rows_table.csv")
Run Code Online (Sandbox Code Playgroud)