首页 > 解决方案 > Azure 数据工厂 - 切换活动 - 文件名startsWith

问题描述

我需要创建一个 Azure 数据工厂管道,它必须首先格式化源文件,然后调用另一个管道。每次在源 blob 存储中上传新文件时都会触发管道。我想将此管道重新用于不同的源文件格式。

为此,我打算使用 Switch 活动并根据源文件名,调用相应的 Copy 活动来创建格式化的接收器文件。问题是源文件有标准前缀,但有一个时间戳,这意味着文件名每次都会不同,例如:文件 1:ABCDEF_1233 ABCDEF_2244 文件 2:UVWXYZ_1222 UVWXYX_2345

谁能帮我理解如何做到这一点?我正在考虑使用 Switch 活动,并在表达式中使用 @startsWith(triggerBody().fileName, ),然后在 CASE 语句中,我想提供文件名前缀,如 ABCDEF、UVWXYZ 等,然后为每个 CASE 语句调用一个复制活动。但我不确定如何在 startsWith() 函数中指定第二个参数。

标签: azure-data-factory-2

解决方案


假设您在名为 filename 的变量中有文件名。像这样写表达式来找出我们要加载的文件。

有一个设置变量活动并将文件前缀分配给另一个名为前缀的变量

@if(greater(indexof(filename),'ABCDEF'),0),'ABCDEF',if(greater(indexof(filename),'UVWXYZ'),0),'UVWXYZ'))

在此设置变量的末尾,您的前缀将具有 ABCDEF 或 UVWXYZ

然后,您可以使用基于前缀变量的 switch 活动,并将案例称为

  1. ABCDEF
  2. 紫外线WXYZ

对于每种情况,您都可以进行相关转换的复制活动。


推荐阅读