如何使用Data Factory与REST API向Azure Data Lake文件追加数据
Azure Data Factory向ADLS Gen2文件追加数据解决方案
核心结论
你不需要通过自定义调用REST API、配置REST数据集作为sink的方式实现追加需求,ADF原生ADLS Gen2数据集的复制活动已经内置追加功能,操作成本更低、稳定性更强。
现有流水线修改方案(无需改动结构)
你当前的ForEach循环内嵌套复制活动的架构可以直接复用,仅需修改复制活动的Sink端配置:
- 进入复制活动的Sink配置页(你提供的Sink配置截图对应页面)
- 找到复制行为配置项,将默认的「覆盖」选项切换为「追加」
- 注意要保证循环内每次读取的源数据格式、编码和目标ADLS文件完全一致,避免追加后文件内容乱码、格式异常
若需自定义调用ADLS Gen2 REST API实现追加的说明
如果你有特殊逻辑需要自行调用Path Update接口,可以使用REST数据集作为sink,但需要额外处理以下逻辑:
- 提前为REST连接服务配置Azure AD服务主体认证,给对应服务主体分配目标存储账号的「存储Blob数据参与者」权限
- 每次调用接口前,先通过Lookup活动读取目标ADLS文件的字节长度,作为请求头
position参数的值 - 请求头必须配置
x-ms-blob-type: AppendBlob、action: append参数,否则接口会报错 - 该方案仅适合小数据量的定制化追加场景,大批量数据同步不建议使用,性能远低于原生复制活动的追加模式
参考截图
你提供的流水线架构如下:
你提供的Sink端配置页如下:
内容的提问来源于stack exchange,提问作者SniperPro
相关产品推荐
相关产品推荐

