talend mysql批量加载可以拒绝记录而不是失败?

时间:2015-04-28 23:23:30

标签: talend

我正在使用tmysqlbulk load将数据加载到mysql中,只是想知道它能否默默地拒绝记录?

目前使用talend的mysql批量加载功能将数据加载到mysql表中。在进程运行时我没有看到任何错误,并且它以退出代码0完成。但它可以在处理它时拒绝记录。

1 个答案:

答案 0 :(得分:1)

对于批量数据库操作,Talend使用JDBC调用的本机批量加载操作(您正在使用的db类型)。 Talend不包含每种数据库类型的所有数据库选项。 Oracle是最完全支持的,允许您忽略批量加载时可配置的错误数量。 MySQL甚至没有忽略错误的选项,更不用说实际捕获错误了。

因此有三种方法可以解决这个问题:

  1. 批量输出组件提供了使用验证规则的功能。如果要生成自己的文件以输入MySQL数据库,则可以在OutputBulk组件中使用验证规则,并在输入之前确保数据质量。使用验证规则时,可以使用验证拒绝流来捕获被拒绝的记录。

  2. 第二个选项是在使用tSchemaComplianceCheck组件导入文件之前验证文件。这也有拒绝流程,您可以在其中捕获被拒绝的记录。在这种情况下,您将使用批量文件作为输入,通过验证运行它以生成“好文件”和“拒绝文件”。然后,您可以使用“好文件”作为批量加​​载的输入。当然,作为此选项的皱纹,您可以避免一起批量加载,不仅执行合规性检查,还执行各种其他验证,并使用输入流将良好的记录导入SQLOutput组件。

    1. 使用批量加载将数据加载到阶段表中。然后使用ETL(procs或Talend)将数据加载到目标表中,从而提供数据验证。