当我使用sqoop将数据批量写入tidb时,遇到以下错误:
java.sql.BatchUpdateExecption:statement count 5001 exceeds the transaction limitation
我配置了 --batch
选项已存在,但仍发生此错误。如何解决此错误?
当我使用sqoop将数据批量写入tidb时,遇到以下错误:
java.sql.BatchUpdateExecption:statement count 5001 exceeds the transaction limitation
我配置了 --batch
选项已存在,但仍发生此错误。如何解决此错误?
1条答案
按热度按时间rseugnpd1#
在sqoop中,
--batch
意味着承诺100statement
在每批中,但在默认情况下statement
包含100条sql语句。因此,100*100=10000条sql语句,超过了5000条,这是单个tidb事务中允许的最大语句数。两种解决方案:
添加
-Dsqoop.export.records.per.statement=10
选项如下:您还可以增加单个tidb事务中的有限语句数,但这将消耗更多内存。