使用 ADF 将文件夹从具有 2 级子文件夹的 Azure 容器移动到与子文件夹同名的容器级别
Move folders from azure containers which is having 2 levels of sub-folders to container level with the same name as the sub folder using ADF
有一个 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)
为了实现这个目标,我在 ADF 中使用了 copy data
管道。
选择了来源。
选择源数据集
-> select 新
-> 选择类型 Azure blob storage
-> 选择格式 binary
-> 选择 linkeservice 作为 movecontainer
选择了水槽
-> select 新
-> 选择类型 Azure blob storage
-> 选择格式为 binary
我对如何配置创建容器的参数或动态内容感到困惑。
使用Get Metadata
activity获取子文件夹名称的列表并将其传递给ForEach
activity复制要下沉的文件夹,如下所示。
Azure 数据湖中的源结构:
ADF管道:
使用Get Metadata
activity,获取文件夹“a”和容器“来源”.
- 为源路径创建数据集并将其添加到获取元数据数据集。
• Select 数据集属性中字段列表下的子项。
• 获取元数据的输出:
- 将此输出传递给
ForEach
activity。
• 在 items 属性 下,添加获取元数据输出子项。
- 在
ForEach
activity内添加Copy data
activity。
• 创建源数据集并参数化源数据集中的子文件夹(目录)路径,如下所示。
• 在 copy data
activity 中,将 当前 ForEach 项名称 传递给源属性中的数据集参数值。
• 创建接收器数据集 并参数化接收器数据集中的接收器容器路径。
• 在 Copy activity
接收器数据集中,将当前 ForEach 项名称传递给接收器参数。
- 每个子文件夹中的子文件夹和文件都被复制到接收器。它创建一个水槽容器如果不存在则使用当前项目名称。
有一个 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)
为了实现这个目标,我在 ADF 中使用了 copy data
管道。
选择了来源。
选择源数据集
-> select 新
-> 选择类型 Azure blob storage
-> 选择格式 binary
-> 选择 linkeservice 作为 movecontainer
选择了水槽
-> select 新
-> 选择类型 Azure blob storage
-> 选择格式为 binary
我对如何配置创建容器的参数或动态内容感到困惑。
使用Get Metadata
activity获取子文件夹名称的列表并将其传递给ForEach
activity复制要下沉的文件夹,如下所示。
Azure 数据湖中的源结构:
ADF管道:
使用
Get Metadata
activity,获取文件夹“a”和容器“来源”.- 为源路径创建数据集并将其添加到获取元数据数据集。
• Select 数据集属性中字段列表下的子项。
• 获取元数据的输出:
- 将此输出传递给
ForEach
activity。
• 在 items 属性 下,添加获取元数据输出子项。
- 在
ForEach
activity内添加Copy data
activity。
• 创建源数据集并参数化源数据集中的子文件夹(目录)路径,如下所示。
• 在 copy data
activity 中,将 当前 ForEach 项名称 传递给源属性中的数据集参数值。
• 创建接收器数据集 并参数化接收器数据集中的接收器容器路径。
• 在 Copy activity
接收器数据集中,将当前 ForEach 项名称传递给接收器参数。
- 每个子文件夹中的子文件夹和文件都被复制到接收器。它创建一个水槽容器如果不存在则使用当前项目名称。