【问题标题】:Azure Data Factory - Switch Activity - File name startsWithAzure 数据工厂 - 切换活动 - 文件名startsWith
【发布时间】:2021-10-14 19:32:25
【问题描述】:

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

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

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

【问题讨论】:

  • 所有文件名的文件名中都有下划线吗?如果是这样,您可以在该字符处拆分文件名并在 Switch 活动中使用它。 startsWith() 函数返回 true 或 false,因此无法真正帮助您提取文件名的通用部分。

标签: azure-data-factory-2


【解决方案1】:

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

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

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

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

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

  1. ABCDEF
  2. UVWXYZ

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

【讨论】:

    猜你喜欢
    • 2020-05-01
    • 2020-06-11
    • 1970-01-01
    • 2021-12-17
    • 2022-01-04
    • 1970-01-01
    • 1970-01-01
    • 2022-11-11
    • 2021-07-02
    相关资源
    最近更新 更多