设置数据工厂以将文件从 Fileshare 复制到 blob,并创建登陆文件夹

Set up data factory to copy files from Fileshare to blob, and creating landing folders

--更新--问题在另一个 post

评论中的 link 之后解决

我是 ADF 的新手,尽管我之前已经创建了一些简单的管道,但事实证明这个管道非常棘手..

我有一个 Fileshare,其中包含作业中的文件和图片,命名约定如下: [A or B for before/after]-[网站编号]-[作品编号].[jpeg or jpeg]

我只想 select 仅共享文件中的图片并将它们复制到我的 blob 存储中,我想在 blob 中动态创建一个文件夹,例如获取图片的 [work number]名称,使用此编号创建一个文件夹,并在该文件夹中保存具有相同工作编号的所有图片。

我已成功连接到我的文件共享和 blob,并且已成功将我的数据集创建为二进制文件,并通过在副本 activity 中键入路径和文件名来移动图片,因此可以建立连接.

问题是大约有 100 万张图片,我想使用通配符自动执行此过程,但我很难使用 ADF 中的动态表达式...任何帮助提取和操作每个图片的名称图片来实现这样的事情将不胜感激!

--更新图片和说明--

我正在尝试使用管道动态创建和填充文件夹。我的数据集是带有编号系统的图片列表:

[before/after 的 A 或 B]-[站点编号]-[工作编号].[jpeg]

我创建了一个这样的工作管道,获取源文件夹的元数据

对于使用 GetMetadata activity 中的 childItems 参数的每个文件名,我创建了一个 ForEach activity

我在管道中创建了两个变量来设置文件夹名称和更改文件名中信息的顺序。那么item().name就是ForEach的迭代项activity

到目前为止一切正常。问题是副本 activity 覆盖了每个新创建的文件夹和文件,直到我只剩下一个文件夹和文件。

如下图所示,数据正在复制成功,只是被覆盖了。每个作品编号我将有 4-8 张图片,因此理想情况下应该有多个不同作品编号的文件夹,并且在每个文件夹内,图片与图像相关联。非常感谢任何有关如何避免此覆盖问题的帮助

使用 getmetadata activity 并将所有文件名作为子项目并将其存储在变量中,您可以在 sink 数据集路径中使用该变量。

The Get Metadata activity may be used to get metadata for any data in Azure Data Factory. The metadata from the Get Metadata action can be used in conditional expressions to conduct validation or consumed in future activities.

在 Azure 数据工厂中获取元数据 activity | Docs

split(split('a-2344-456.jpg','.')[1],'-')[3]

你在哪里可以通过上面的 Dynamic Expression 获得 worknumber 然后在接收器数据集路径中使用该变量。