问题(bug?)与MonetDB.R和dbWriteTable与csvdump = TRUE

时间:2015-03-11 13:09:23

标签: r monetdb

我们正在使用R和MonetDB.R在闪亮的应用程序中写入大约30秒左右的1.7 M行(在MacBook Pro上):

dbWriteTable(conn, tableName, Dt,overwrite=TRUE, csvdump=TRUE)

我们了解MonetDB.R代码首先在/tmp文件夹中保存csv格式的表格,然后使用COPY INTO

加载到MonetDB数据库中

我们刚刚尝试过centos服务器和RStudio Server,我们在/tmp的临时文件夹中遇到了访问权限错误。

我们用经典

解决了这个问题
chmod -R 777 /tmp

但是,如果我们在应用程序中运行这部分应用程序,我们似乎必须再次这样做,因此它看起来不是一个可扩展的解决方案。

是否有可能获得更稳定的&可扩展的解决方案?

(同样,这个功能在MonetDB 0.94中有记录,但它没有出现在CRAN的0.95文档中的任何地方 - 我们能否安全地假设这是一个错字并且该功能将保留?)

1 个答案:

答案 0 :(得分:3)

MonetDB.R使用R&#39 {s} tempfile()来创建临时CSV文件。 tempfile依次调用tempdir来获取临时目录。您可以通过环境变量TMPDIR和其他来控制此目录的位置。有关详细信息,请参阅?tempdir

e.g。

$ TMPDIR=/tmp/foo R -e "print(tempfile())"
[1] "/tmp/bar/Rtmp7UKG0k/file1173e13a4477c"

$ TMPDIR=/tmp/bar R -e "print(tempfile())"
[1] "/tmp/foo/RtmpPxx76t/file1174a409c06a2"

关于您的其他问题,csvdump功能将保留,因为MonetDB在批量CSV加载时非常快。