talend mysql 批量加载可以拒绝记录而不失败?
talend mysql bulk load can reject records and not fail?
我正在使用 tmysqlbulk load 将数据加载到 mysql 中,只是想知道它是否可以默默地拒绝记录而不会失败?
当前正在使用 talend 的 mysql 批量加载功能将数据加载到 mysql table。在进程 运行 时我没有看到任何错误,它以退出代码 0 完成。但是它可以在处理记录时拒绝记录吗?
对于批量数据库操作,Talend 利用 JDBC 调用的本地批量加载操作(您正在使用的数据库类型)。 Talend 不包含每种数据库类型的所有数据库选项。 Oracle 是最受支持的,它允许您在批量加载时忽略可配置数量的错误。 MySQL 甚至没有忽略错误的选项,更不用说实际捕获错误了。
所以可以通过三种方法解决这个问题:
批量输出组件提供了使用验证规则的能力。如果您正在生成自己的文件以输入到您的 MySQL 数据库中,那么您可以在 OutputBulk 组件中使用验证规则并在输入之前确保数据质量。当您使用验证规则时,验证拒绝流程变得可用,您可以在其中捕获被拒绝的记录。
第二个选项是在使用 tSchemaComplianceCheck 组件导入文件之前验证文件。这也有一个拒绝流程,您可以在其中捕获被拒绝的记录。在这种情况下,您将使用批量文件作为输入,运行 它通过验证生成 'good file' 和 'reject file'。然后,您将使用 'good file' 作为批量加载的输入。当然,作为此选项的一个缺点,您可以避免批量加载,不仅执行合规性检查,还执行各种其他验证,并将您的输入流用于将良好记录输入 SQLOutput 组件。
- 使用批量加载将数据加载到暂存表中。然后使用 ETL(procs 或 Talend)将数据加载到目标表中,同时提供数据验证。
我正在使用 tmysqlbulk load 将数据加载到 mysql 中,只是想知道它是否可以默默地拒绝记录而不会失败?
当前正在使用 talend 的 mysql 批量加载功能将数据加载到 mysql table。在进程 运行 时我没有看到任何错误,它以退出代码 0 完成。但是它可以在处理记录时拒绝记录吗?
对于批量数据库操作,Talend 利用 JDBC 调用的本地批量加载操作(您正在使用的数据库类型)。 Talend 不包含每种数据库类型的所有数据库选项。 Oracle 是最受支持的,它允许您在批量加载时忽略可配置数量的错误。 MySQL 甚至没有忽略错误的选项,更不用说实际捕获错误了。
所以可以通过三种方法解决这个问题:
批量输出组件提供了使用验证规则的能力。如果您正在生成自己的文件以输入到您的 MySQL 数据库中,那么您可以在 OutputBulk 组件中使用验证规则并在输入之前确保数据质量。当您使用验证规则时,验证拒绝流程变得可用,您可以在其中捕获被拒绝的记录。
第二个选项是在使用 tSchemaComplianceCheck 组件导入文件之前验证文件。这也有一个拒绝流程,您可以在其中捕获被拒绝的记录。在这种情况下,您将使用批量文件作为输入,运行 它通过验证生成 'good file' 和 'reject file'。然后,您将使用 'good file' 作为批量加载的输入。当然,作为此选项的一个缺点,您可以避免批量加载,不仅执行合规性检查,还执行各种其他验证,并将您的输入流用于将良好记录输入 SQLOutput 组件。
- 使用批量加载将数据加载到暂存表中。然后使用 ETL(procs 或 Talend)将数据加载到目标表中,同时提供数据验证。