【问题标题】:Conditional ETL in Camel based on matching .md5Camel中基于匹配.md5的条件ETL
【发布时间】:2014-01-24 02:21:20
【问题描述】:

查看文档以找到一种将 Camel 用于 ETL 的方法,就像在网站的示例中一样,除了这些基于 md5 匹配的附加条件。

像骆驼的例子一样,myetl/myinputdir 将被监视是否有任何新文件,如果找到,将处理 ${filename} 的文件。

除了它会首先等待 ${filename}.md5 出现,它将包含正确的 md5。如果 ${filename}.md5 从未出现,它只会忽略该文件,直到出现为止。

如果 ${filename}.md5 确实出现了但 md5 不匹配,它会被处理但有错误条件。

找到了使用加密进行匹配的建议,但在匹配的 .md5 文件出现之前,还没有弄清楚如何忽略该文件。确实,这两个文件需要作为匹配对进行处理才能使一切正常工作,并且它们可能不会以完全相同的毫秒到达输入目录。或者,md5 文件可能会在数据文件之前几毫秒出现。

【问题讨论】:

    标签: apache-camel


    【解决方案1】:

    您可以使用aggregator 根据文件名组合这两个文件。如果您的文件被适当命名,那么您可以使用文件名(不带扩展名)作为相关 ID。一旦completionSize 等于 2,则继续路由。如果您将 groupExchanges 设置为 true,那么在您的下一个路由步骤中,您可以访问该文件以计算其哈希值,也可以访问 md5 文件的内容以比较哈希值。或者,如果 md5 或内容文件从未到达 completionTimeout 内,您可以触发适合您的场景的任何操作。

    【讨论】:

      猜你喜欢
      • 2021-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多