如何批量导出Data Factory管道及文件夹结构以备份?
批量导出Azure Data Factory管道及文件夹结构的方法
方法1:使用Azure CLI批量导出
可以通过Azure CLI快速导出整个Data Factory的所有管道,或指定文件夹下的管道,同时保留原有结构:
- 先登录Azure账号:
az login - 切换到目标订阅:
az account set --subscription <你的订阅ID> - 导出整个Data Factory的所有资源(包括管道、文件夹结构、数据集等)到本地目录:
如果只想导出指定文件夹下的管道,可添加az datafactory export --resource-group <资源组名称> --factory-name <Data Factory名称> --output-folder <本地输出目录路径>--filter参数筛选路径:
导出后的文件会自动按Data Factory内的文件夹结构在本地生成对应目录。az datafactory export --resource-group <资源组名称> --factory-name <Data Factory名称> --output-folder <本地输出目录路径> --filter "contains(name, '<目标文件夹路径>')"
方法2:PowerShell脚本自定义导出(精准控制结构)
如果需要更灵活的控制(比如只导出管道,排除其他资源),可以用PowerShell脚本遍历文件夹结构并导出:
# 配置参数 $resourceGroupName = "<资源组名称>" $dataFactoryName = "<Data Factory名称>" $localOutputPath = "<本地输出根目录>" # 获取所有管道 $pipelines = Get-AzDataFactoryV2Pipeline -ResourceGroupName $resourceGroupName -DataFactoryName $dataFactoryName foreach ($pipeline in $pipelines) { # 提取管道的文件夹路径(如果有) $folderPath = $pipeline.Properties.Folder?.Name $localFolder = if ($folderPath) { Join-Path $localOutputPath $folderPath } else { $localOutputPath } # 创建本地文件夹(如果不存在) if (-not (Test-Path $localFolder)) { New-Item -ItemType Directory -Path $localFolder | Out-Null } # 导出管道JSON到对应目录 $outputFile = Join-Path $localFolder "$($pipeline.Name).json" $pipeline | ConvertTo-Json -Depth 100 | Out-File $outputFile -Encoding UTF8 }
这个脚本会自动识别管道所在的文件夹,在本地生成相同的目录结构,并将每个管道导出为单独的JSON文件。
方法3:导出ARM模板作为完整备份
如果需要备份整个Data Factory的所有配置(包括管道、链接服务、触发器、数据集等),可以导出ARM模板:
- 登录Azure门户,进入目标Data Factory
- 在左侧菜单选择「ARM模板」>「导出模板」
- 选择要导出的资源(可勾选所有管道或指定文件夹下的资源),点击「下载」
- 下载的压缩包包含完整的ARM模板文件,解压后可看到按资源类型组织的结构,也能对应到原文件夹层级
内容的提问来源于stack exchange,提问作者Pysparker
相关产品推荐
相关产品推荐

