繁体   English   中英

将表格从R导出到SQL Server

[英]Exporting table from R to SQL Server

我成功地从https://www.gov.mb.ca/sd/fire/Fire-Situation/daily-firesituation.html收集了数据到R。我现在想将其导出到SQL。

library('rvest')
url_Manitoba <- 'https://www.gov.mb.ca/sd/fire/Fire-Situation/daily- 
firesituation.html'
webpage_Manitoba <- read_html(url_Manitoba)

population <- webpage_Manitoba %>%
html_nodes("table") %>%
html_table(fill=TRUE)
population[[2]]

但是我相信R中的表必须进行一些更改才能导出到SQL。 就像只获取一些数据一样。 黄色显示我在SQL表中需要什么 在此处输入图片说明

并使其形状像 在此处输入图片说明

通过在本地将数据写入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'
                )");

要么 。

由于插入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)
library("odbc")
library("DBI")

# Connect to SQL Server
con = dbConnect(odbc(),.connection_string = "Driver={SQL Server};Server=ipaddress;Uid=user;Pwd=password;")

# Write the table,is it doesn't exist it will be created
dbWriteTable(con, sql_table_name, polulation, append = TRUE, row.names = F)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM