我正在使用tmysqlbulk load将数据加载到mysql中,只是想知道它能否默默地拒绝记录?
目前使用talend的mysql批量加载功能将数据加载到mysql表中。在进程运行时我没有看到任何错误,并且它以退出代码0完成。但它可以在处理它时拒绝记录。
答案 0 :(得分:1)
对于批量数据库操作,Talend使用JDBC调用的本机批量加载操作(您正在使用的db类型)。 Talend不包含每种数据库类型的所有数据库选项。 Oracle是最完全支持的,允许您忽略批量加载时可配置的错误数量。 MySQL甚至没有忽略错误的选项,更不用说实际捕获错误了。
因此有三种方法可以解决这个问题:
批量输出组件提供了使用验证规则的功能。如果要生成自己的文件以输入MySQL数据库,则可以在OutputBulk组件中使用验证规则,并在输入之前确保数据质量。使用验证规则时,可以使用验证拒绝流来捕获被拒绝的记录。
第二个选项是在使用tSchemaComplianceCheck组件导入文件之前验证文件。这也有拒绝流程,您可以在其中捕获被拒绝的记录。在这种情况下,您将使用批量文件作为输入,通过验证运行它以生成“好文件”和“拒绝文件”。然后,您可以使用“好文件”作为批量加载的输入。当然,作为此选项的皱纹,您可以避免一起批量加载,不仅执行合规性检查,还执行各种其他验证,并使用输入流将良好的记录导入SQLOutput组件。