我是一名有用的助手,可以为您翻译文本。
我有一个包含1.5M行数据的R数据表,我想将其导出到MS SQL数据库表中。
我知道可以这样做:
但是它非常慢。
我尝试的另一个选项是将数据写入平面文件,然后创建一个SSIS pkg将其转移到数据库中。这不是问题,但问题在于我的数据表中有字符串和数字数据,当R写入文件时,所有内容都是varchar类型并被引号包含。
第一种方法可以保留数据类型,但性能非常差。有没有其他可以尝试的方法?
所以我猜如果我要写入一个平面文件,那么数据类型就不能被保留,所以我必须在将平面文件导入数据库时选择数据类型。
我有一个包含1.5M行数据的R数据表,我想将其导出到MS SQL数据库表中。
我知道可以这样做:
dbWriteTable(conn,"benefit_custom.Trial_set",trial_set )
但是它非常慢。
我尝试的另一个选项是将数据写入平面文件,然后创建一个SSIS pkg将其转移到数据库中。这不是问题,但问题在于我的数据表中有字符串和数字数据,当R写入文件时,所有内容都是varchar类型并被引号包含。
FileLocation <-"\\Benefit_Analysis_Input.dat"
FileName<- paste( bcpWorkspace,FileLocation,sep = "")
write.table(trial_set,file =FileName,append = FALSE, sep = "\t",col.names = T, row.names = F)
第一种方法可以保留数据类型,但性能非常差。有没有其他可以尝试的方法?
所以我猜如果我要写入一个平面文件,那么数据类型就不能被保留,所以我必须在将平面文件导入数据库时选择数据类型。
dbWriteTable
的SQL Server实现在哪里吗?到目前为止,我只看到了mysql。 - billinkcwrite.csv()
接受一个参数,可以不引用字段。http://astrostatistics.psu.edu/datasets/R/html/base/html/write.table.html - MarkDwrite.table
中的参数控制。至于@billinkc的问题,如果他们正在写入SQL Server,则最可能使用RODBC。 - joran