使用MSSQLConnection将文件加载到Azure DB中

时间:2016-12-05 17:58:34

标签: jdbc talend mssql-jdbc

我只想将一些文件加载​​到Azure DB中。 我正在使用" Microsoft SQL Server"连接的DB类型。

问题是,当我插入超过10,000行时,我有时(90%的时间)会出错:

Exception in component tMSSqlOutput_5
java.sql.BatchUpdateException: I/O Error: Connection reset
    at net.sourceforge.jtds.jdbc.JtdsStatement.executeBatch(JtdsStatement.java:1091)
    at dev_storch.extractgc_child2_0_1.extractGC_child2.tFileInputDelimited_5Process(extractGC_child2.java:28852)
    at dev_storch.extractgc_child2_0_1.extractGC_child2.tFileList_6Process(extractGC_child2.java:32386)
    at dev_storch.extractgc_child2_0_1.extractGC_child2.tFileList_5Process(extractGC_child2.java:31540)
    at dev_storch.extractgc_child2_0_1.extractGC_child2.tMSSqlRow_1Process(extractGC_child2.java:30657)
    at dev_storch.extractgc_child2_0_1.extractGC_child2.tLoop_2Process(extractGC_child2.java:30440)
    at dev_storch.extractgc_child2_0_1.extractGC_child2.tFileList_4Process(extractGC_child2.java:29664)
    at dev_storch.extractgc_child2_0_1.extractGC_child2.tJava_3Process(extractGC_child2.java:34020)
    at dev_storch.extractgc_child2_0_1.extractGC_child2.tMSSqlInput_1Process(extractGC_child2.java:33593)
    at dev_storch.extractgc_child2_0_1.extractGC_child2.tFTPConnection_2Process(extractGC_child2.java:33154)
[FATAL]: dev_storch.extractgc_child2_0_1.extractGC_child2 - tMSSqlOutput_5 I/O Error: Connection reset
[FATAL]: dev_storch.extractgc_child2_0_1.extractGC_child2 - tMSSqlRow_7 Invalid state, the Connection object is closed.

但是当插入的数据量较低时,我不会收到任何错误。

我的配置如下:

tMSSQLConnection 即可。然后我有一些组件从文件夹加载文件并将其加载到表中。 错误来自 tMSSQLOutput 。 以下工作是填充日志。

enter image description here

我尝试更改批量大小,不使用DBConnection,但不起作用。

我尝试使用通用JDBC组件,它似乎每次都有效。但是我不想使用通用的JDBC组件,因为在ouptut组件上,我们不能选择colume DB类型(但也许有人知道它是如何可能的):

MSSQL: enter image description here

通用JDBC: enter image description here

提前谢谢你......

1 个答案:

答案 0 :(得分:0)

这里可能有一个解决方案:

  • 请注意,批处理大小必须小于或等于JDBC驱动程序授权的参数标记的限制(通常为2000)除以列数。