0

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

总结一下:

  1. 我已经设置了从 blob 到 Azure SQL 数据库的基本复制活动,没有任何转换步骤
  2. 我已经根据通配符名称设置了一个触发器。即任何加载到以 IDT* 开头的 blob 的文件都将被复制到数据库中
  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 有这个问题。

4

0 回答 0