Azure Data Factory活动间传递数据是否需要中间持久层?
Azure Data Factory中活动与Data Flow的数据传递问题
对于你提到的MB到GB级数据规模,必须借助Blob、ADLS或SQL数据库这类持久层来实现活动与Data Flow之间的数据传递,活动本身无法承载这类规模的数据,原因如下:
- Web Activity的输出存储在ADF运行元数据中,默认上限仅为1MB,超过这个阈值会直接报错,连MB级数据都难以稳定承载,更不用说GB级。
- Data Flow的数据源只能指向外部存储或数据库,无法直接读取其他活动的输出变量。它基于Spark运行,处理大规模数据时必须依赖外部存储做数据暂存,才能保证性能和避免内存溢出。
实践建议:
- Web Activity调用API后,直接将返回数据写入Blob存储(可通过Copy Activity、Azure Function辅助,或在Web Activity的响应处理中完成写入)。
- 后续活动和Data Flow直接从该Blob位置读取数据,完成转换后再写入最终的Blob目标存储。
- 若涉及结构化数据的中间处理,也可选用Azure SQL DB/Serverless等数据库作为暂存层,方便先做SQL层面的清洗再进入Data Flow。
内容的提问来源于stack exchange,提问作者user2845758
相关产品推荐
相关产品推荐

