将ForEach SQL加载到Azure数据工厂中的单个CSV中 [英] Load ForEach SQL into single CSV in Azure Data Factory
本文介绍了将ForEach SQL加载到Azure数据工厂中的单个CSV中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个ADF,我在其中执行ForEach中的存储过程,并使用复制数据将输出加载到CSV文件
在ForEach的每次迭代中,CSV都被清除并加载该迭代的数据
我要求它保留已加载的数据并插入迭代的输出
CSV应包含所有迭代的完整数据集
我如何才能做到这一点?我尝试使用接收器复制行为中的合并文件选项,但不适用于SQL到CSV
推荐答案
正如@All About BI所述,您当前正在寻找的追加行为不受支持
。您可以从ADF门户提出功能请求。
或者,您可以选中以下流程将数据追加到CSV中。
在我的重现中,我使用Set Variable Activity生成循环项,并将其传递给ForEach Activity。
在
ForEach
活动内部,使用copy data
活动,在源中执行存储过程,并将存储过程的数据复制到CSV文件。
- 在
Copy data
活动接收器中,使用ForEach循环的当前项生成文件名,以便为每次迭代将数据获取到不同的文件中。还添加了一个常量来标识合并文件后可在末尾删除的文件名。
文件名:@concat('1_sp_sql_data_',string(item()),'.csv')
- 在
ForEach
活动之后添加另一个copy data
活动,将ForEach迭代中的所有文件数据合并到一个单个文件。在这里,我使用通配符路径(*)获取文件夹中的所有文件。
- 在接收器中,将具有复制行为的目标文件名添加为合并文件以将所有源数据复制到单个接收器文件。
- 合并文件后,数据将复制到单个文件,但不会删除这些文件。因此,下次运行管道时,旧文件也有可能再次与新文件合并。
·为避免此操作,请将删除活动添加到中删除在ForEach活动中生成的文件。
·因为我添加了一个常量来生成这些文件,所以可以很容易地删除基于文件名的文件(删除所有以"1_"开头的文件)。
目标文件:
这篇关于将ForEach SQL加载到Azure数据工厂中的单个CSV中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文