能否创建从Pipeline活动输出获取数据的Azure Data Flow?
Azure Function 传数据到 Azure Data Flow 的实现方案
完全可以实现你的需求,根据数据体量不同,有几种实用方案:
1. 小体量数据(如少量记录、配置信息):用Pipeline参数直接传递
- 让Azure Function把处理后的数据以JSON字符串格式返回(在Function代码里设置返回值为处理好的数据集JSON)。
- 在Pipeline里,通过表达式
@activity('你的Azure Function活动名称').output获取Function的输出,把它赋值给一个Pipeline参数(比如命名为processedData)。 - 打开Azure Data Flow,添加数据源时选择**“Inline”(内联数据集)**,在数据源的内容设置里引用这个Pipeline参数:
@pipeline().parameters.processedData,就能直接用Function处理后的数据了。
2. 大体量数据:通过中间存储中转(最常用)
因为Data Flow对大数据的处理依赖存储介质,这种方案适配绝大多数场景:
- 配置Azure Function,把处理后的数据写入Azure Blob Storage或Azure Data Lake Storage (ADLS) 的临时文件(推荐用Parquet格式,压缩率高、处理快)。
- 在Pipeline里创建一个指向这个临时文件的Dataset(比如Blob Dataset,路径设置为Function写入的文件路径)。
- 把这个Dataset作为Azure Data Flow的数据源,后续正常做数据转换即可。
- 可选:Data Flow执行完后,加一个删除活动删掉临时文件,避免占用存储。
3. 结构化数据:用Azure SQL临时表中转
如果处理后的数据是结构化的,可以用临时表做中间层:
- 让Azure Function把数据写入Azure SQL Database的临时表(比如
#TempProcessedData)。 - 创建指向该临时表的Azure SQL Dataset,作为Data Flow的数据源。
- 处理完成后,可以选择删除临时表,或者保留用于后续数据校验。
内容的提问来源于stack exchange,提问作者Alejandro Alvarez
相关产品推荐
相关产品推荐

