ADF: 获取Data Lake Storage上的文件列表并根据文件名删除文件

假设 Data Lake 上有个test的文件夹,有如下文件

目标:使用Azure Data Factory的Pipeline获取这个目录下的文件名列表,并删除掉以"ETC"开头的文件。

步骤:

1. 需要在Linked services中新建一个能连接到Data Lake的连接

2. 在Datasets里面创建一个数据集

Datasets -> New dataset -> Azure Data Lake Storage Gen2 -> DelimitedText

Linked service 选择上一步创建的连接

添加一个参数

设置好File path:

也可以将文件路径作为参数传入

3. 新建Pipeline, 将Get Metadata 拖拽出来,按如下设置

4. 添加ForEach

表达式:@activity('Get Metadata1').output.childItems

这里就可以拿到文件名列表

5. 点击ForEach活动的编辑按钮进入它里面, 添加If Condition活动

输入表达式:@startswith(item().name,'ETC')

这里判断是否是ETC文件名开头

6. 点击If Condition 中true部分的编辑按钮进入

7. 添加Delete活动,按以下设置

如果If Condition条件为true, 即文件名以ETC开头,将被删除,这里将Recursively的勾选去掉,是指不删除目录,也就是不删除test文件夹

可以把这里去掉,这样就不用写log,默认是勾选的,勾选状态下需要选择log生成的路径,看需要吧

这样就完成了。

如果是根据文件更新时间去删除,就不用去获取文件名列表,只要提供正确的路径和时间即可,文件更新时间可以直接给以下这两个地方用表达式来设置。

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值