如何使用数据工厂从 2 个数据库(具有相同架构)中获取数据并将其复制到 1 个数据库中

How to take data from 2 databases (with same schema) and copy it into 1 database using Data factory

我想从 2 个数据库中获取数据并使用数据工厂将其复制(合并)到 1 个中。

问题是:复制活动似乎不允许多个输入。

所以我求助于 2 个不同的数据集,它们是完全相同的副本,但名称不同...然后将 2 个不同的活动放入使用其特定输出数据集的 1 个管道中。

这样做似乎很奇怪而且是错误的。

有什么可以帮忙的吗

这是我的图表目前的样子:

有没有办法将数据从 2 个单独的数据库(具有相同的结构但数据不同)复制到 1 个数据库?

简短的回答是肯定的。但是您需要在 ADF 处理此问题的方式的限制范围内工作。

有几件事可以帮助...

  • 使用复制类型 activity 时,您始终需要至少 2 个活动来执行此操作。 Microsoft 当然会在 ADF 中按 activity 次执行收费,因此他们不会允许您使用每个副本具有多个输入和输出的快捷方式 activity(单次收费)。
  • 您上面显示的方法是好的,并且要通过 ADF 验证,因为您发现您只需要单独创建输出数据集并调用不同的东西。即使它们仍然引用相同的底层目标 table 等。这确实 只是 copy activity[=29= 的问题].您可以做的是首先将数据放入 Azure 目标数据库中的单独暂存 tables 中,仅用于副本 (1:1)。然后有第三个下游 activity 执行一个存储过程,该过程执行 table 的并集。在这种情况下,如果您想在 ADF 中拥有该级别的控制,您可以在 activity 中有 2 个输入到 1 个输出。

像这样:

  • 最后一点,如果您不希望活动并行执行,您可以链接数据集以强制执行伪造的依赖关系或向其中一个复制操作添加一个简单的 'delay' 子句。 activity 上的延迟比提供时间片偏移更简单。

希望对您有所帮助