将R数据集中的数据写入Redshift

Alb*_*o C 4 r amazon-redshift

我正在使用软件包“ RPostgreSQL”将R连接到Amazon Redshift。我可以连接,创建和删除表,查询数据库,将数据保存到R数据框中并手动插入值。

我不能做的是直接从R数据帧中将数据插入Redshift读取,并且由于redshift中缺少Posgress组件而无法使用dbWriteTable函数。

我究竟做错了什么?

在此先感谢您的帮助!

Alb*_*o C 5

只需使用RODBC包自己解决即可。

您需要建立一个ODBC连接,即所谓的redshift_con。从R开始,您需要使用以下命令创建连接(我称为ch):

ch <- odbcConnect("Annalect DB", uid = "username", pwd = "******")
Run Code Online (Sandbox Code Playgroud)

将我的数据框加载到R中并运行:

sqlSave(ch, mydataframename, addPK = TRUE, verbose = TRUE)
Run Code Online (Sandbox Code Playgroud)

并且R在redshift中创建一个名为“ mydataframename”的新表。速度不是很快,如果我找到并优化了方法,我会及时通知您。

如果您需要更多信息,请参见http://cran.r-project.org/web/packages/RODBC/index.html

################ SAMPLE CODE FOR TESTING ##############
install.packages("RODBC")
library('RODBC')
ch <- odbcConnect("redshift_con", uid = "admin", pwd = "********")
sqlColumns(ch, "public.r_test")
USArrest<-data(USArrests)
sqlSave(redshift_con, USArrests, rownames = "State", addPK = TRUE, verbose = TRUE)
Run Code Online (Sandbox Code Playgroud)

我将对处理速度发表评论。

更新

仅适用于非常少量的数据

半小时记录1500条记录。