如何使用 ADF 复制在 blob 存储中隔离文件 activity
how to segregate files in a blob storage using ADF copy activity
我在 ADF 中有一个副本数据 activity,我想根据文件类型将文件隔离到不同的容器中。
例如。
容器 A - .jpeg、.png
容器 B - .csv、.xml 和 .doc
我最初的想法是使用 'if condition' 和 'or' 语句,但看起来我的方法行不通。
如果您能提供一些意见,我将不胜感激。
您应该使用 GetMetadata
activity 首先获取需要首先传递给 CopyData
activity 的所有文件类型,后者复制到容器 A,然后添加 next Getmetadata activity 以获取复制到容器 B 的下一个 copydata activity 的文件类型。
因此,您的 ADF 管道可能类似于 GetMetaData1 -> Copydata1 -> GetMetaData2 -> Copydata2。参考如何使用 GetMetaData activity 在此 article, and documentation
复制 activity 本身允许多个 wildcard path
,因此您可以在数据源中使用它,请参阅 this。
首先,从源容器中获取列表文件并在Foreach
activity中循环每个文件以使用[=11=检查扩展名] 并根据条件复制文件到各自的容器中。
我的源容器中有以下文件。
在 ADF 中:
- 使用
Get metadata
activity,从源容器中获取所有文件的列表。
- 获取元数据的输出activity:
- 将输出列表传递给
Foreach
activity.
@activity('Get Metadata1').output.childitems
- 在
Foreach
activity 中,添加 If Condition
activity 以根据扩展名分隔文件。
@or(contains(item().name, '.xml'),contains(item().name, '.csv'))
- 如果条件为true,复制当前文件到container1.
- 如果条件returnsfalse,将当前文件复制到container2中Falseactivity.
运行 管道后容器中的文件。
容器 1:
容器 2:
我在 ADF 中有一个副本数据 activity,我想根据文件类型将文件隔离到不同的容器中。
例如。 容器 A - .jpeg、.png 容器 B - .csv、.xml 和 .doc
我最初的想法是使用 'if condition' 和 'or' 语句,但看起来我的方法行不通。 如果您能提供一些意见,我将不胜感激。
您应该使用 GetMetadata
activity 首先获取需要首先传递给 CopyData
activity 的所有文件类型,后者复制到容器 A,然后添加 next Getmetadata activity 以获取复制到容器 B 的下一个 copydata activity 的文件类型。
因此,您的 ADF 管道可能类似于 GetMetaData1 -> Copydata1 -> GetMetaData2 -> Copydata2。参考如何使用 GetMetaData activity 在此 article, and documentation
复制 activity 本身允许多个 wildcard path
,因此您可以在数据源中使用它,请参阅 this。
首先,从源容器中获取列表文件并在Foreach
activity中循环每个文件以使用[=11=检查扩展名] 并根据条件复制文件到各自的容器中。
我的源容器中有以下文件。
在 ADF 中:
- 使用
Get metadata
activity,从源容器中获取所有文件的列表。
- 获取元数据的输出activity:
- 将输出列表传递给
Foreach
activity.
@activity('Get Metadata1').output.childitems
- 在
Foreach
activity 中,添加If Condition
activity 以根据扩展名分隔文件。
@or(contains(item().name, '.xml'),contains(item().name, '.csv'))
- 如果条件为true,复制当前文件到container1.
- 如果条件returnsfalse,将当前文件复制到container2中Falseactivity.
运行 管道后容器中的文件。
容器 1:
容器 2: