使用通配符时,DataFactory 会多次复制文件

问题描述

大家好,这里的所有 ADF 新手 - 我对 DataFactory 有一个奇怪的问题,令人惊讶的是看不到其他人也遇到过同样的问题。

总结:

  1. 我已经设置了从 blob 到 Azure sql 数据库的基本复制活动,无需转换步骤
  2. 我已经设置了一个基于通配名称的触发器。 IE。加载到 blob 中以 IDT* 开头的任何文件都将复制到数据库
  3. 我已将一些文件加载​​到 Azure Blob 中的特定位置
  4. 触发器已激活
  5. 一旦看起来一切正常,对记录计数的快速评估显示相同的文件已被导入 X 次

我已经分析了正在发生的事情,基本上当我将文件加载到 blob 时,它们在技术上不会完全同时到达。因此,当文件 1 命中 blob 时,将触发通配搜索并找到 1 个文件。然后当第二个文件在几毫秒后命中 blob 时,再次触发通配搜索,这次它处理 2 个文件(第一个和第二个)。

该问题根据加载的文件数量不断增加

我尝试了多种方法解决此问题,但无济于事,因为从根本上说,它的行为“正确”。

我试过了:

  1. 在处理完文件后将其删除,但由于毫秒问题,该文件在技术上仍然存在并且仍然可以处理
  2. 添加一个循环来一次处理 1 个文件,然后根据 blob 中的文件名在加载下一个文件之前删除文件,但没有奏效(并且无法解释原因)
  3. 我将 ADF 限制为只有 1 个并发连接,这减少了它复制的次数,但不幸的是仍然复制它
  4. 尝试在复制活动开始时放置一个等待计时器,但这会导致资源锁定问题。我收到一条错误消息,指出多次等待导致进程失败
  5. 尝试了 1,2 和 3 的组合,我最终遇到了一个完全不同的问题,因为它正在尝试查找文件 X,但现在不再存在,因为它已作为上述步骤 2 的一部分被删除

我真的在为一些看起来非常基本的东西而苦苦挣扎。所以我确信是我忽略了一些非常基本的东西,因为 ADF 似乎没有其他人有这个问题。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...