如何使用Azure Data Factory将多份Excel数据转换合并到指定格式主文件
Azure Data Factory Excel数据映射整合解决方案
一、3字段源Excel映射到16字段目标的实现步骤
- 配置源数据集:在ADF中创建Excel格式源数据集,指向存储容器内的两份Excel文件,配置时勾选第一行作为表头选项,确保ADF正确识别
Product、Units Sold、Sale Price三个源字段。 - 选用数据流活动实现字段补全:
Copy Activity仅适合同构字段的直接复制,需补全额外字段的场景请使用数据流活动:- 新建数据流,添加已配置的Excel源
- 新增派生列转换,按照业务规则生成剩余13个目标字段:固定值字段直接填写常量,计算字段使用数据流表达式编写(例如
Gross Sales可写为toInteger(Units Sold) * toDecimal(Sale Price)),日期类字段可通过触发时间、文件元数据提取生成Date、Year、Month Name等字段
- 配置目标数据集:创建指向Azure数据库表/目标CSV文件的sink数据集,若需保留已有数据,提前将sink的复制行为设置为
追加。 - 配置字段映射:进入数据流sink的映射配置页,关闭自动映射,手动将包含派生字段的16个源字段和目标字段一一对应即可。
二、Copy Activity相关问题修复
这两个问题均为Copy Activity的特性限制导致,对应解决方案如下:
- 无法查看/选择输出列:首先进入源Excel数据集的「架构」 tab,点击「导入架构」,选择样本Excel文件导入3个源字段的schema;再进入sink数据集的「架构」tab导入目标16个字段的schema,完成后回到Copy Activity映射页即可正常显示可选字段。若仍无法识别,建议直接改用数据流活动,其schema识别和映射灵活性远高于Copy Activity。
- 源数据覆盖sink已有数据:进入Copy Activity的sink配置页,找到复制行为选项,将默认的
覆盖修改为追加即可。如果是CSV类型sink,需注意映射字段顺序和目标文件的字段顺序完全一致,避免字段错位。
内容的提问来源于stack exchange,提问作者betbroke
相关产品推荐
相关产品推荐

