我有一个Azure SQL server表,我想从一个SQL表中读取数据,并选择4-5列(总行可能超过一百万(。一旦我有了记录,我就必须循环通过向Azure服务总线队列发送消息。每个记录将提取一条消息。
当前的解决方案是使用查找来读取数据并将数据保存到变量中。然后Foreach循环使用该变量,将消息发送到服务总线队列。(这可能与性能有关。(
ForEach活动定义Azure中的重复控制流数据工厂或Synapse管道。此活动用于迭代并在循环中执行指定的活动。这个该活动的循环实现类似于Foreach循环程序设计语言中的结构。
我认为您需要通过SQL查找任务来驱动foreach,该任务填充数据集,然后调用每行的活动:
我建议您积累以下官方文件中给出的详细信息,以满足您的要求。
Azure数据工厂和Azure Synapse Analytics 中的ForEach活动
Azure数据工厂和Azure Synapse Analytics 中的查找活动
教程:使用Azure门户中的Azure数据工厂批量复制多个表
如果您想循环浏览1000万条记录,我认为ADF查找活动不是一种可行的方法,因为它几乎没有限制。您可以尝试在ADF中的映射数据流中探索查找转换,看看这是否符合您的要求,否则建议使用支持循环通过1000万条记录的不同ETL服务。