Azure Data Factory管道开发:生成指定格式.tab文件并上传FTP
Azure Data Factory 实现SQL查询+带静态头部TAB文件生成+FTP上传方案
一、前期准备
- 创建三个链接服务:
- SQL数据库链接:填写SQL服务器地址、数据库名、账号密码,确保ADF能正常访问目标SQL库。
- FTP服务器链接:输入FTP地址、端口、登录信息,按需选择加密方式,完成后测试连通性。
- 存储账户链接(ADLS Gen2或Blob存储均可):用于临时存放生成的TAB文件,后续作为FTP上传的数据源。
- 准备静态头部文件:把要求的前4行静态文本+第5行空行,保存为
header.tab文件,上传到存储账户的指定容器(比如template-files文件夹)。文件内容示例:
(注意最后一行是空行,对应用户要求的第5行)月度运营报表 生成日期:2024-05-20 数据范围:全量用户 备注:内部使用请勿外传
二、搭建管道活动
1. 复制静态头部到目标文件
新建Copy活动,命名为复制头部到目标:
- 源:选择存储账户中的
header.tab文件,数据集类型可选「二进制」或「分隔符文本」。 - 目标:指定存储账户内的目标路径(比如
output/final_report.tab),数据集匹配存储类型,复制行为设为「覆盖」(确保每次生成全新文件)。
2. 追加SQL查询结果到目标文件
再新建一个Copy活动,命名为追加SQL数据:
- 源:选择已创建的SQL链接服务,查询类型选「查询」,输入你的SQL语句(比如
SELECT user_id, user_name, order_count FROM user_orders)。如果SQL查询结果自带列名,需在源数据集的「格式」设置里勾选「跳过行数」为1,避免把列名写入文件。 - 目标:与上一步的目标文件
final_report.tab保持一致,复制行为设为「追加」。 - 目标数据集格式设置:选择「分隔符文本」,分隔符设为「Tab (\t)」,编码选UTF-8(与静态头部文件编码一致)。
3. 上传文件到FTP
新建Copy活动,命名为上传到FTP:
- 源:选择存储账户中的
final_report.tab文件。 - 目标:选择已创建的FTP链接服务,指定FTP上的目标路径(比如
/company-reports/final_report.tab),复制行为设为「覆盖」。
4. 串联活动顺序
在管道画布上用箭头将三个活动按顺序连接:复制头部到目标 → 追加SQL数据 → 上传到FTP
确保每个活动仅在上一个活动执行成功后才启动。
三、测试与验证
- 点击管道顶部的「调试」按钮,启动测试运行。
- 运行完成后,先到存储账户检查
final_report.tab:确认前4行是静态文本、第5行空、第6行开始为SQL返回的数据。 - 登录FTP服务器,检查目标路径下是否存在该文件,内容是否符合要求。
新手注意事项
- 如果SQL返回数据量超过5000条,不要用Lookup活动,直接用Copy活动追加数据(Lookup有数据量上限)。
- 静态头部文件的换行符要统一,避免出现格式混乱(比如Windows的CRLF和Linux的LF)。
- 若FTP连接失败,先检查服务器防火墙是否允许ADF的IP访问,或尝试切换为FTP被动模式。
内容的提问来源于stack exchange,提问作者Vipina K
相关产品推荐
相关产品推荐

