是否有任何包或方法可以将 data.table R 代码转换/发送为 sql 查询以发送到数据库?

Posted

技术标签:

【中文标题】是否有任何包或方法可以将 data.table R 代码转换/发送为 sql 查询以发送到数据库?【英文标题】:Is there any package or way which converts/sends data.table R code to a sql query to send to a database? 【发布时间】:2020-07-18 13:47:40 【问题描述】:

我想从 R 发送查询并在 AWS redshift 中进行数据操作。我在 R 中使用 data.table,但发现在将数据导入 R 之前我需要在数据库本身中进行许多操作。

有没有办法可以将 data.table 代码传递给 dBgetquerydBdendUpdate 内部的连接,然后它会将其放入数据库并执行?

例子:

library(data.table)

dBgetQuery(conn, < data.table code>)

【问题讨论】:

据我所知,data.table 不提供此功能。 dbplyr 可以做到这一点 是的,dbplyr 有一个。想知道 data.table 周围是否也有一些东西。 【参考方案1】:

如果有帮助,您可能需要参考此链接。 Load large data to R data.table from Postgresql 然而,dplyr 包的建立是为了在 aws Redshift 上快速高效地工作

library(dplyr)
library(RPostgreSQL)

myRedshift <- src_postgres('demo', host = 'redshiftdemo.ckffhmu2rolb.eu-west-1.redshift.amazonaws.com',
port = 5439,
user = "Deb", 
password = "XXX")

然后,使用函数 tbl() 创建表引用。这意味着您正在创建一个指向 Amazon Redshift 集群中的表的 R 对象,但数据并未加载到 R 内存中。

#create table reference
flights <- tbl(myRedshift, "flights")

参考https://aws.amazon.com/blogs/big-data/connecting-r-with-amazon-redshift/

【讨论】:

以上是关于是否有任何包或方法可以将 data.table R 代码转换/发送为 sql 查询以发送到数据库?的主要内容,如果未能解决你的问题,请参考以下文章

我可以强制 R data.table %like% 使用“fixed = TRUE”吗?

在 data.table 上进行枢轴,类似于 rehape melt 函数

将基因组数据分类并写出文件,python,awk,R data.table速度PK

从R中的data.table中删除带有NA的行[重复]

data.table fread 可以接受连接吗?

将一行中的项目与所有其他行进行比较,并使用 data.table - R 遍历所有行