Azure Data Factory复制任务中如何基于文件名添加动态元数据
结论
你完全可以直接在Azure Data Factory(ADF)的原生功能中实现该需求,不需要额外调用Azure Function或其他API单独更新元数据。
具体实现操作
- 先调整你的数据流水线为Get Metadata活动 + ForEach循环的单文件处理架构:先通过Get Metadata活动拉取FTP源路径下的所有文件列表,再传入ForEach循环逐个处理单个文件
- 进入ForEach循环内部的复制活动,打开接收器(sink)选项卡的元数据配置栏
- 按需新增自定义元数据的键,对应的值直接使用ADF动态表达式从当前处理的文件名提取即可:
- 用
@item().Name获取当前遍历的源文件全名 - 配合ADF内置字符串函数即可提取目标信息,比如用
@split(item().Name, '-')[1]提取文件名中横线后的分段内容、用@substring(item().Name, 0, 10)提取文件名前10位的日期标识等
- 用
- 执行流水线时,复制活动会自动为每个写入Azure存储的文件生成匹配的动态元数据
注意:如果你当前的复制活动是一次性批量拉取所有FTP文件而非单文件遍历,必须先改为单文件遍历的架构,才能为每个文件生成独立的对应元数据。
内容的提问来源于stack exchange,提问作者Tarun Bhatt
相关产品推荐
相关产品推荐

