Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure sql database ADF-我应该如何将表数据从源Azure SQL数据库复制到其他6个Azure SQL数据库?_Azure Sql Database_Azure Data Factory 2 - Fatal编程技术网

Azure sql database ADF-我应该如何将表数据从源Azure SQL数据库复制到其他6个Azure SQL数据库?

Azure sql database ADF-我应该如何将表数据从源Azure SQL数据库复制到其他6个Azure SQL数据库?,azure-sql-database,azure-data-factory-2,Azure Sql Database,Azure Data Factory 2,我们管理“Dev”Azure SQL数据库中的数据,然后目前使用RedGate的数据比较工具推送多达6个更高的Azure SQL数据库。我正在尝试将手动过程迁移到ADFv2,并希望避免为每个数据库(x6)复制/粘贴10+个复制数据活动,以使其在将来的更改中更易于维护。静态表在复制数据活动中有一些定制,但基本思想如下 如何在Azure Data Factory中实现上述实现 我想象着如下情况: 使用一个可配置服务器名称和数据库名称的参数化链接服务,以生成到Azure SQL数据库的动态连接 为每个

我们管理“Dev”Azure SQL数据库中的数据,然后目前使用RedGate的数据比较工具推送多达6个更高的Azure SQL数据库。我正在尝试将手动过程迁移到ADFv2,并希望避免为每个数据库(x6)复制/粘贴10+个复制数据活动,以使其在将来的更改中更易于维护。静态表在复制数据活动中有一些定制,但基本思想如下

如何在Azure Data Factory中实现上述实现

我想象着如下情况:

  • 使用一个可配置服务器名称和数据库名称的参数化链接服务,以生成到Azure SQL数据库的动态连接
  • 为每个表的复制数据活动创建管道
  • 创建主管道,然后嵌套每个表的管道
  • 使用变量在不同的连接上循环,并将这些连接传递给子管道参数

  • 不确定这是否是最有效的计划,甚至还不确定是否有效。其他想法/建议?

    我们无法告诉您这是否是最有效的计划。但我想是的。让它工作就行了

    正如你在评论中所说:

    • 我们可以使用动态管道—使用 “查找”和“ForEach”。我们可以对您的数据执行动态复制 表列出了单个管道中的批量列表。查找返回 数据列表或第一行数据。ForEach-@活动('Azure SQL表列出了“).output.value; @concat(item().TABLE_SCHEMA,'.',item().TABLE_NAME,'.csv')+这是 由于我们使用的设备数量较少,因此效率高且成本优化 活动和数据集

    在通常情况下,我们也会选择与您相同的解决方案:动态参数/管道、查找+foreach active来实现场景。一句话,使管道具有很强的逻辑性,简单高效。

    添加了评论中提到的与答案相同的信息


    是的,我们可以使用动态管道-通过“查找”&“ForEach”批量复制多个表

    我们可以在单个管道中批量执行数据表列表的动态拷贝。查找返回数据列表或第一行数据

    ForEach-@activity('Azure SQL表列表')。output.value; @concat(item().TABLE_SCHEMA,'.',item().TABLE_NAME,'.csv')

    由于我们使用的活动和数据集较少,因此这是高效且成本优化的

    随附图片作为参考-

    您希望与其他6个Azure SQL表同步多少个表?例如,您在Azure SQL数据库A中有许多表,并且您希望将其复制到其他6个Azure SQL数据库,对吗?您是否考虑数据流?您可以创建6个流来复制数据,sink具有“upsert”选项。是的,我们可以使用动态管道-使用“Lookup”和“ForEach”批量复制多个表。我们可以在单个管道内批量执行数据表列表的动态复制。查找返回数据列表或第一行数据。ForEach-@activity('Azure SQL表列表')。output.value@concat(item().TABLE_SCHEMA,'.',item().TABLE_NAME,'.csv')+这是一个高效且成本优化的计划,因为我们使用的活动和数据集较少。@Arulmouzhi我们无法告诉您这是最有效的计划。但我想是的。在通常情况下,我们也会选择动态参数/管道、lookup+foreach active来实现场景。只需制作管道,使管道具有很强的逻辑性,简单高效。如果我的答案对你有帮助,希望你能接受它作为答案。这可能对其他社区成员有益。非常感谢。