我有一个6 gig csv,我正在尝试将其加载到Teradata中。
所以我启动Teradata SQL助手,创建一个空表,然后打开导入数据模式并尝试使用
将记录插入空表insert into some_lib.some_table
(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);
但是我总是会在600k行标记周围收到失败消息
在记录614770读取导入文件时出错:类型异常 '的System.OutOfMemoryException'被扔了。
我认为这是因为Teradata SQL助手在尝试将数据发送到Teradata服务器之前尝试将所有内容加载到4G笔记本电脑的内存中。我的理论是否正确?如何告诉Teradata以块的形式上传数据而不是尝试将所有内容存储在本地内存中?
答案 0 :(得分:1)
我相信您正在推动SQL Assistant的功能作为加载数据的方法。
您是否考虑过在系统上安装了Teradata Load Utilities,例如FastLoad或MultiLoad?
如果您不想为加载实用程序编写脚本,另一个选项是安装Teradata Studio Express,它应提供使用JDBC FastLoad加载数据的机制。这将是Studio Express的Smart Loader机制。您可能会发现这比使用.Net或ODBC的SQL Assistant更具可扩展性。