将大型R数据框写入SQL Server数据库

任何有关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)
本文链接:https://www.f2er.com/3120012.html

大家都在问