是否可以从PostgreSQL读取data.table?

前端之家收集整理的这篇文章主要介绍了是否可以从PostgreSQL读取data.table?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在对Postgresql数据库中存储的大量数据进行一些分析.出于速度和内存的原因,我正在使用data.table包.目前我这样做是为了阅读数据.
library(RPostgresql)
library(data.table)
...
query <- "SELECT * FROM eqtl"
data <- as.data.table(dbGetQuery(con,query))

我想知道是否有更好的方法来执行此操作,不涉及将整个事物读入data.frame,然后将其复制到data.table中.

正如Arun在评论中指出的那样,你可以在dbGetQuery结果上使用setDT.

此外,我的软件包dwtools中还提供了一个帮助程序功能,可在需要时为自动setkey扩展此功能.这被设计为在链接时很有用.它还将接口统一到其他数据库供应商,以便您可以使用不同的数据库链接data.table.
简单的选择用法如下:

my_dt = db("SELECT * FROM eqtl")
# to setkey use
db("SELECT * FROM eqtl",key="mykeycol")

从包装手册中大量扩展的例子:

jj_aggr = quote(list(amount=sum(amount),value=sum(value)))
r <- db("sales",key="geog_code" # read fact table from db
        )[,eval(jj_aggr),keyby=c("geog_code","time_code") # aggr by geog_code and time_code
          ][,db(.SD) # write to db,auto.table.name
            ][,db("geography",key="geog_code" # read lookup geography dim from db
                  )[.SD # left join geography
                    ][,keyby=c("time_code","geog_region_name")] # aggr
              ][,auto.table.name
                ][,db("time",key="time_code" # read lookup time dim from db
                      )[.SD # left join time
                        ][,keyby=c("geog_region_name","time_month_code","time_month_name")] # aggr
                  ][,auto.table.name
                    ]

它将从多个数据库,连接,聚合中读取数据,将中间结果保存到多个数据库.

原文链接:https://www.f2er.com/postgresql/192070.html

猜你在找的Postgre SQL相关文章