如何在ADF与ADB中将SFTP来源的UTF-16 CSV文件转为UTF-8存储
用ADF与ADB实现SFTP上UTF-16编码CSV转UTF-8存储的方案
1. 配置SFTP数据源(ADF)
- 新建SFTP链接服务,填入服务器地址、认证信息(密码或SSH密钥),测试连接确保能访问目标CSV文件。
- 创建SFTP数据集:选择CSV格式,在「高级设置」里把编码设为
UTF-16;如果文件包含表头,勾选「第一行作为标题」。
2. 配置目标端(存储/ADB)
选项A:先转存为UTF-8文件到存储
- 配置Azure Blob Storage/ADLS Gen2的链接服务和CSV数据集,目标数据集的编码设为
UTF-8,其他参数按需调整。
选项B:直接写入ADB
- 新建ADB链接服务,配置服务器地址、认证方式(SQL认证/AAD)、目标数据库名称,测试连接。
- 创建ADB数据集:选择要写入的表(可提前在ADB中创建对应结构的表,或让ADF自动生成)。
3. 构建ADF数据流完成转换
- 创建数据流,添加源节点:选择之前配置的SFTP UTF-16数据集。
- (可选)添加「派生列」「选择」转换,调整字段结构、过滤数据(如果业务需要)。
- 添加接收器节点:
- 若选选项A:选择存储的UTF-8数据集,直接运行数据流即可完成编码转换并落地文件。
- 若选选项B:选择ADB数据集,确认字段映射正确,ADF会自动将UTF-16编码的源数据转换为UTF-8写入ADB。
4. 备选方案:复制活动+ADB导入
如果需要先落地UTF-8文件再导入ADB:
- 在ADF管道中添加「复制数据」活动:源为SFTP UTF-16数据集,目标为存储的UTF-8数据集,ADF会自动处理编码转换。
- 再添加「复制数据」活动或「存储过程」活动,将存储中的UTF-8 CSV文件导入ADB表。
关键注意点
- SFTP数据集的编码必须准确设为
UTF-16,否则会出现乱码。 - 若UTF-16文件带BOM(字节顺序标记),ADF的UTF-16编码配置会自动识别处理。
- 写入ADB时,确保表字段类型与CSV字段匹配,避免数据截断或类型错误。
内容的提问来源于stack exchange,提问作者Athiya
相关产品推荐
相关产品推荐

