azure - 使用 ADF 将文件夹从具有 2 级子文件夹的 azure 容器移动到与子文件夹同名的容器级
问题描述
有一个 blob 存储帐户,该 blob 存储帐户的名称是azureblob11
它有一个名为 的容器source
。
该容器source
包含 2 个级别的子文件夹。
文件夹结构类似:
source (container)
|--a (folder)
|--ana (sub-folder)
|--hem (sub-folder)
|--thg (sub-folder)
|--oud (sub-folder)
我试图实现的目标是将所有子文件夹 ( ana, hem, thg, oud
) 及其数据复制到容器级别,并将这 4 个子文件夹创建为新容器以及其中的数据。
预期目标如下所示:
source (container)
|--a (folder)
|--ana (sub-folder)
|--hem (sub-folder)
|--thg (sub-folder)
|--oud (sub-folder)
ana (container)
hem (container)
thg (container)
oud (container)
为了实现这个目标,我copy data
在 ADF 中使用了管道。选择了来源。选择源数据集 -> 选择新建 -> 选择类型Azure blob storage
-> 选择格式binary
-> 选择链接服务movecontainer
选择接收器 -> 选择新建 -> 选择类型为Azure blob storage
-> 选择格式为binary
我被困在如何配置参数或创建容器的动态内容上。
解决方案
使用Get Metadata
活动获取子文件夹名称列表并将其传递给ForEach
活动以将文件夹复制到接收器,如下所示。
Azure 数据湖中的源结构:
一个DF 管道:
使用
Get Metadata
活动,获取文件夹“<strong>a”和容器“<strong>source”下的子文件夹名称列表。- 为源路径创建数据集并将其添加到Get Metadata dataset。
•在数据集属性的字段列表下选择子项。
• 获取元数据的输出:
- 将此输出传递给
ForEach
活动。
• 在项目属性下,添加获取元数据输出子项目。
Copy data
在活动中添加ForEach
活动。
• 创建源数据集并参数化源数据集中的子文件夹(目录)路径,如下所示。
• 在copy data
活动中,将当前的 ForEach 项目名称传递给源属性中的数据集参数值。
• 创建接收器数据集并参数化接收器数据集中的接收器容器路径。
• 在接收Copy activity
器数据集中,将当前的 ForEach 项目名称传递给接收器参数。
- 每个子文件夹中的子文件夹和文件将复制到接收器。如果不存在,它会创建一个具有当前项目名称的接收器容器。
推荐阅读
- javascript - 使用 Javascript 创建表行
- c++ - srand 是如何计算的?
- javascript - 如何断言图像包含 Sakuli 中所需的文本?
- git - Azure Devops Rest API - 使用 PAT 时创建拉取请求所有者问题
- neo4j - Neo4j:为什么多个匹配表达式有效但一个匹配表达式无效?
- java - 将参数传递给用 Jython 编写的 javafx 对象
- python-3.x - outputtypehandler(TypeError:期望变量的数组大小足够大以供获取)
- spring-mvc - Spring MVC 中的 Okta SAML 2.0 实现(不是 Spring 引导)
- azure - 通过 Azure AD B2C 中的多租户 Azure Active Directory 登录
- python - 由于使用 pyro 和 pytorch 的样本中存在多类分布,因此在 svi 步骤中出现错误