如何在Azure Data Factory中参数化复制活动至SQL数据库
实现Azure Data Factory自动插入参数化表到Azure SQL Database
1. 参数化Sink数据集的目标表名
- 打开Azure SQL Database的Sink数据集,切换到连接选项卡,点击表名字段旁的动态内容按钮(⚡)
- 输入动态表达式:
@concat(pipeline().parameters.Domain, '.', pipeline().parameters.TableName),让目标表名与源端的架构+表名自动匹配 - 若目标库不存在对应表,可在Sink的设置选项卡勾选自动创建表,ADF会根据源表结构自动生成目标表(仅首次同步推荐使用)
2. 配置Sink写入行为
根据业务需求选择对应写入模式:
- 全量覆盖:勾选截断表,再选择插入行为,同步前清空目标表数据,再写入全量数据
- 追加数据:直接选择插入行为,将源表数据追加到目标表末尾
- 增量更新/插入(Upsert):选择Upsert行为,指定目标表的主键列,ADF会根据主键判断是插入新数据还是更新现有数据(需目标表已定义主键)
3. 连接权限与验证
- 确保Azure SQL Database的Linked Service所用账号具备足够权限:
- 插入数据需
INSERT权限 - Upsert需
INSERT+UPDATE权限 - 自动建表需
CREATE TABLE+ALTER SCHEMA权限
- 插入数据需
- 测试Linked Service连接,确认能正常访问目标Azure SQL Database
4. 批量同步扩展(可选)
若需同步多个表,可在管道中添加ForEach活动:
- 将包含所有需同步表(架构+表名)的列表作为参数传入ForEach
- 在ForEach内部调用你的同步数据流/复制活动,循环遍历表列表完成批量同步
内容的提问来源于stack exchange,提问作者Patterson
相关产品推荐
相关产品推荐

