为什么Teradata会抛出;使用“行”将太多数据记录打包在一个行中;只是有时候??

为什么Teradata会抛出;使用“行”将太多数据记录打包在一个行中;只是有时候??,teradata,Teradata,我正在使用jdbc并将数据上传到Teradata。我以前有100000行批处理,它对我来说总是很好从未有数据集上传失败 现在,我试图上传一个一栏表(所有整数),我得到了这个太多的数据记录用行压缩在一个表中?当我将批次更改为16383时,它工作了 我发现我仍然能够对具有多列的表使用100000行批处理,但是当我尝试上载具有单列的表时,它会抛出使用行打包的太多数据记录。我就是不明白为什么?直观地说,单列表应该更容易上传,对吗?这是怎么回事 16383是使用Teradata JDBC的非FastLoa

我正在使用
jdbc
并将数据上传到Teradata。我以前有100000行批处理,它对我来说总是很好从未有数据集上传失败

现在,我试图上传一个
一栏表(所有整数)
,我得到了这个
太多的数据记录用行压缩在一个表中
?当我将批次更改为
16383
时,它工作了


我发现我仍然能够对具有
多列的表使用
100000
行批处理,但是当我尝试上载具有
单列的表时,它会抛出使用行打包的
太多数据记录。我就是不明白为什么?直观地说,单列表应该更容易上传,对吗?这是怎么回事

16383是使用Teradata JDBC的非FastLoad插入的PreparedStatement的限制

您是否考虑过将TYPE=FASTLOAD添加到您的连接参数中,并允许Teradata调用FASTLOAD API来批量加载您的数据,以执行FASTLOAD支持的INSERT语句?机制建议用于插入100K或以上记录。这里的一个重要因素是Teradata中的目标表必须为空


如果不是空的,则可以加载一个空的stage表,然后使用ANSI MERGE运算符将stage数据向上插入到目标表。

谢谢。我使用了Fastload,但有两个问题:1)文本限定符仅由TTU14支持,我有14个,但由于某些原因它不起作用2)
卸载太多。操作
error此外,我还测试了这个。fastload在小于200K的样本上运行良好,但对于较大的样本,它会失败,因为
OutOfMemoryError:Java堆空间
。我可以增加堆
xlx6g
但这会导致执行
pstmt.addBatch()
的速度变慢。看起来,
准备好的语句
工作得更好,而Fastload可以将数据作为平面文件,并通过独立版本的Fastload、MultiLoad或Teradata并行传输运行吗?鉴于实用程序有其细微差别,但它们可以非常有效地加载数据。这需要编写过程的能力,对吗?我在网上只找到了一个源。你能推荐其他源存储过程吗?不