Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将大型R数据帧写入SQL Server数据库_R_Sql Server_Database_Dataframe_Insert - Fatal编程技术网

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

将大型R数据帧写入SQL Server数据库,r,sql-server,database,dataframe,insert,R,Sql Server,Database,Dataframe,Insert,对R包的任何建议,或将大型(超过1000万行,10列)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=

对R包的任何建议,或将大型(超过1000万行,10列)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'
                )");
toSQL=data.frame(…);
write.table(toSQL,“C:\\export\\filename.txt”,quote=FALSE,sep=“,”,row.names=FALSE,col.names=FALSE,append=FALSE);
sqlQuery(频道,“批量
插入Yada.dbo.Yada
来自“\export\\filename.txt”
具有
(
字段终止符=',',
行终止符='\\n'
)");
还有

由于insert INTO限制为1000行,所以可以从rsqlserver包中复制dbBulkCopy

dbBulkCopy是一个DBI扩展,它与Microsoft SQL Server流行的命令行实用程序bcp接口,用于将大型文件快速批量复制到表中。例如:

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)
url=“Server=localhost;Database=TEST\RSQLSERVER;Trusted\u Connection=True;”

康涅狄格州我只能在我的公司里使用R和SQL Server。我刚刚修改了我原来的帖子。我没有一个庞大的数据框架来测试上述概念,但您可以尝试这些想法。他们肯定是在中小型数据集上工作的。我不确定他们是否扩大规模。谢谢你的回复。我将尝试写到csv然后复制到数据库的建议。我希望找到一种方法,不需要通过csv,直接将R数据帧“批量写入”sqlServer数据库表。啊,这是个好主意。您可以将分析从R保存到CSV文件,并将其批量插入SQL Server。我已经做过无数次了。有关如何执行此操作的示例,请参见下面的链接。