如何通过Azure Data Factory的Web Activity发送SQL表数据
操作步骤
基础说明
你配置的Lookup活动执行查询后,返回的所有行数据会存放在@activity('<你的Lookup活动名称>').output.value数组中,每个数组元素对应一行,包含CustomerName、CustomerSales两个字段,你只需要在Web Activity的请求体中调用该动态变量,按接收端要求的格式处理即可。
方案1:直接发送结构化JSON
如果接收接口支持JSON格式数据,直接在请求体中填入如下动态表达式即可:
@activity('<你的Lookup活动名称>').output.value
发送的数据结构示例:
[ {"CustomerName": "Tesla", "CustomerSales": 1234000}, {"CustomerName": "其他客户", "CustomerSales": 890000} ]
方案2:转换为指定的纯文本格式
如果需要发送示例中Tesla, 1234000的纯文本格式(每行一条数据),可以使用select+join函数组合处理数组,表达式如下:
@join(select(activity('<你的Lookup活动名称>').output.value, concat(item().CustomerName, ', ', string(item().CustomerSales))), '\n')
该表达式会先把每一行数据转换为「客户名, 销售额」的字符串,再用换行符把所有行拼接为完整文本。
注意事项
- 请将上述表达式中的
<你的Lookup活动名称>替换为你实际创建的Lookup活动的名称,大小写完全匹配 - 如果你需要严格控制返回1-50行数据,可直接在Lookup的SQL语句中修改为
SELECT TOP 50 CustomerName, CustomerSales From Customers - 如果接口要求数据嵌套在固定请求结构中,直接将表达式填入对应字段即可,示例(适配企业微信/钉钉通知格式):
{ "msgtype": "text", "text": { "content": "@join(select(activity('Lookup1').output.value, concat(item().CustomerName, ', ', string(item().CustomerSales))), '\n')" } }
内容的提问来源于stack exchange,提问作者Kenny_I
相关产品推荐
相关产品推荐

