首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >talend mysql大容量加载可以拒绝记录而不会失败?

talend mysql大容量加载可以拒绝记录而不会失败?
EN

Stack Overflow用户
提问于 2015-04-28 23:23:30
回答 1查看 1.1K关注 0票数 0

我正在使用tmysql散装加载将数据加载到mysql中,我只想知道它是否能够不声不响地拒绝记录?

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-30 14:16:16

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

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

  1. 批量输出组件提供了利用验证规则的能力。如果要生成自己的文件以输入MySQL数据库,则可以在OutputBulk组件中使用验证规则,并在输入之前确保数据质量。当您使用验证规则时,验证拒绝流将变得可用,您可以在其中捕获被拒绝的记录。
  2. 第二个选项是在使用tSchemaComplianceCheck组件导入文件之前验证它。这也有一个拒绝流,您可以在其中捕获被拒绝的记录。在这种情况下,您将使用大容量文件作为输入,通过验证运行它,生成“好文件”和“拒绝文件”。然后,您将使用您的“好文件”作为大容量加载的输入。当然,作为此选项的一个缺点,您可以避免将所有的批量加载放在一起,不仅执行遵从性检查,而且执行各种其他验证,并将输入流用于SQLOutput组件中的良好记录。
代码语言:javascript
复制
1. load your data into stage tables using bulk load.  Then use ETL (either procs or Talend) to load your data into the destination tables, providing your data validation along the way.  

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29931651

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档