Azure Data Factory:基于JSON动态配置文件复制的源与接收器设置
复制活动源与接收器动态配置方案
给定配置信息:
{ "dial_target_file_row_count": 2440, "dial_target_file_endpoint": "consumerzone@dialconsumingp01dls", "dial_target_file_full_path": "abfss://*****/data/snapshotdate=2023-03-25", "dial_metadata_file_location": "abfss://*****/metadata/", "dial_metadata_file_name": "dsapp_goldenDataset_2023-03-25_20230326075008_metadata.json" }
一、复制活动源配置
源采用Azure Data Lake Storage Gen2连接器,直接引用目标文件路径:
- 若上述配置为管道参数(参数名设为
configParams),在源数据集的文件路径中填入表达式:@pipeline().parameters.configParams.dial_target_file_full_path - 确保链接服务已关联
dial_target_file_endpoint对应的ADLS Gen2账户。
二、复制活动接收器配置
接收器采用Azure Blob Storage连接器,通过ADF表达式实现动态文件名,以下是两种实用提取逻辑:
1. 从元数据文件名提取快照日期作为文件名
从dial_metadata_file_name中提取2023-03-25片段,拼接成目标文件名(如snapshot_2023-03-25.parquet):
在接收器数据集的文件名中填入表达式:
@concat('snapshot_', split(split(pipeline().parameters.configParams.dial_metadata_file_name, '_')[2], '_')[0], '.parquet')
表达式逻辑:
- 按下划线分割文件名,取第3段(索引2)的
2023-03-25 - 拼接前缀、提取的日期和文件后缀
2. 从目标文件路径提取快照日期作为文件名
从dial_target_file_full_path的snapshotdate=2023-03-25片段中提取日期:
在接收器数据集的文件名中填入表达式:
@concat('target_', split(last(split(pipeline().parameters.configParams.dial_target_file_full_path, '/')), '=')[1], '.csv')
表达式逻辑:
- 按斜杠分割路径,取最后一段
snapshotdate=2023-03-25 - 按等号分割后取第2段(索引1)的
2023-03-25 - 拼接成最终文件名
接收器基础配置
- 链接服务关联目标Blob存储账户
- 文件路径设置为Blob存储的目标容器路径(如
container/target/) - 文件名字段直接填入上述动态表达式即可实现自动命名
内容的提问来源于stack exchange,提问作者Ton
相关产品推荐
相关产品推荐

