我在我们的 Intranet 上的 VM 上托管了一个 PostgreSQL 服务器。网络中的其他地方(这些机器无法访问相同的文件系统)我有大约 850 个 R 脚本正在运行(同时),每个脚本生成 500k 到 300 万行数据,我想推送到一个(当前为空)数据库中的表。我正在尝试确定这样做的最佳方法是什么。到目前为止,我想出了这些解决方案:
使用 R odbc 和 DBI::dbWriteTable 包/函数将数据推送到远程服务器。作为测试,我尝试同时采用这条路线进行 3 批(约 850 批),这需要约 25 分钟。
将数据导出为文本文件,使用 SSH 将文本文件复制到托管数据库的服务器,并用于
COPY导入数据
有没有更好的方法来做到这一点?做这个的最好方式是什么?
我试图推送到的表已编入索引并具有外键以及唯一约束。我在某处读过,在添加数据之前删除这些,然后再将它们添加回来可以显着加快速度。这会产生重大影响吗?