【发布时间】:2017-09-03 03:36:54
【问题描述】:
我对如何通过 R 将 .txt 中的海量数据上传到 Teradata DB 进行了很多研究。我尝试使用 RODBC 的sqlSave(),但它不起作用。我还关注了其他一些类似的问题,例如:
Write from R to Teradata in 3.0 或 Export data frame to SQL server using RODBC package 或 How to quickly export data from R to SQL Server。
但是,由于 Teradata 的结构与 MS SQL 服务器不同,因此建议的大多数选项不适用于我的情况。 我知道有一个 TeradataR 软件包可用,但它自 2-3 年前以来一直没有更新。
以下是我面临的两个主要问题: 1. 如果有任何方法,如何使用 R 将 .txt 格式的数据批量加载(一次所有记录)到 Teradata。 (到目前为止,我只尝试使用 SAS 来做到这一点,但我需要在 R 中探索这一点) 2.数据很大,像 500+ MB,所以我无法通过 R 加载它,我确信有办法解决这个问题,但直接从服务器中提取数据。
这是我根据其中一篇文章尝试的,但这是针对 MS SQL 服务器的:
toSQL = data.frame(...) #this doesn't work for me cause its too big.
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'
)");
*注意:Teradata 中有一个插入/导入数据的选项,但这与编写数百万行插入语句相同。
抱歉,我目前没有示例代码,因为我找到的包不是我应该使用的正确包。
有人遇到过类似的问题吗?
非常感谢您提前提供的帮助!
【问题讨论】:
-
为此使用 Teradata 实用程序 - 多负载 (mload) 就是您想要的。
标签: r teradata bulkinsert rodbc bulk-load