繁体   English   中英

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

[英]Issue (bug?) with MonetDB.R and dbWriteTable with csvdump=TRUE

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

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

据我们了解的MonetDB.R代码先保存在/tmp文件夹中的一个表csv格式,然后被装入MonetDB数据库COPY INTO

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

我们用经典解决了这个问题

chmod -R 777 /tmp

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

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

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

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

例如

$ 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加载时非常快。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM