如何将数据从R快速导出到SQL Server

前端之家收集整理的这篇文章主要介绍了如何将数据从R快速导出到SQL Server前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
标准的RODBC软件包的sqlSave功能即使是单个INSERT语句(参数fast = TRUE)对于大量数据由于非最小加载而言非常慢.我将如何使用最少的日志记录将数据写入我的sql服务器,以便它写得更快?

目前尝试:

tosql = data.frame(...);
sqlSave(channel,tosql,tablename="Table1",rownames=FALSE,colnames=FALSE,safer=FALSE,fast=TRUE);

解决方法

通过将数据写入本地CSV,然后使用BULK INSERT(不能随时作为类似于sqlSave的预构建函数),数据可以很快写入MS sql Server.
tosql = data.frame(...);
write.table(tosql,"C:\\export\\filename.txt",quote=FALSE,sep=",",row.names=FALSE,col.names=FALSE,append=FALSE);
    sqlQuery(channel,"BULK
                INSERT Yada.dbo.yada
                FROM '\\\\<server-that-sql-server-can-see>\\export\\filename.txt'
                WITH
                (
                FIELDTERMINATOR = ',',ROWTERMINATOR = '\\n'
                )");

sql Server必须具有访问保存CSV文件的网络文件夹的权限,否则此过程将无法正常工作.虽然它需要一些设置与各种权限(网络文件夹和BULK ADMIN权限,奖励的速度无限更有价值).

猜你在找的MsSQL相关文章