任何有关R软件包的建议或将大型(超过1000万行,10列)R数据帧写入SQL Server数据库表的方法。谢谢。
numen1234 回答:将大型R数据框写入SQL Server数据库
通过在本地将数据写入CSV,然后使用批量插入 (作为类似于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'
)");
还...
由于插入INTO限制为1000行,因此可以从rsqlserver包中进行dbBulkCopy。
dbBulkCopy是一个DBI扩展,它与名为bcp的Microsoft SQL Server流行的命令行实用程序进行接口,以快速将大型文件批量复制到表中。例如:
url = "Server=localhost;Database=TEST_RSQLSERVER;Trusted_Connection=True;"
conn <- dbConnect('SqlServer',url=url)
## I assume the table already exist
dbBulkCopy(conn,name='T_BULKCOPY',value=df,overwrite=TRUE)
dbDisconnect(conn)