azure-data-factory-2 - 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() 函数中指定第二个参数。
解决方案
假设您在名为 filename 的变量中有文件名。像这样写表达式来找出我们要加载的文件。
有一个设置变量活动并将文件前缀分配给另一个名为前缀的变量
@if(greater(indexof(filename),'ABCDEF'),0),'ABCDEF',if(greater(indexof(filename),'UVWXYZ'),0),'UVWXYZ'))
在此设置变量的末尾,您的前缀将具有 ABCDEF 或 UVWXYZ
然后,您可以使用基于前缀变量的 switch 活动,并将案例称为
- ABCDEF
- 紫外线WXYZ
对于每种情况,您都可以进行相关转换的复制活动。
推荐阅读
- javascript - 如何使用javascript通过循环从一个对象到另一个对象获取密钥
- javascript - 如何控制台.log LinkedList
- java - Java 9+ 分段代码缓存是否需要 Java 9+ 编译?
- java - 将 JavaFX 项目导出为可执行文件,单击两次即可打开
- mysql - NodeJS - 使用 QueryBuilder 的 TypeORM 级联插入
- node.js - MongoNetworkError:第一次连接时无法连接到服务器 [MongoNetworkError:连接 ECONNREFUSED]
- c# - 2个不同数组中的不匹配元素
- java - 通过给定的堡垒 IP 和实例 ID 在 EC2 实例上安装 Web 服务器以托管代码
- flutter - 正确布局列和扩展的小部件,没有有限的宽度
- c - 程序在捕获信号时冻结