如何在Synapse Workspace中批量上传.ipynb格式的Synapse Notebook
Azure Synapse 批量导入Notebook可行方案
虽然az synapse notebook import仅支持单个文件导入,你可以通过脚本循环遍历指定文件夹下所有.ipynb文件,逐次调用该命令实现批量导入,也可根据场景选择界面操作方案,以下是具体实现:
方案1:Windows PowerShell 脚本实现
# 替换为你的Synapse工作区名称 $workspaceName = "your-synapse-workspace-name" # 替换为你存放.ipynb文件的本地文件夹路径 $notebookFolder = "C:\path\to\your\notebooks" # 遍历文件夹下所有.ipynb文件 Get-ChildItem -Path $notebookFolder -Filter "*.ipynb" | ForEach-Object { $notebookName = $_.BaseName $filePath = $_.FullName Write-Host "正在导入Notebook: $notebookName" # 调用Azure CLI执行单文件导入 az synapse notebook import --workspace-name $workspaceName --name $notebookName --file "@$filePath" if ($LASTEXITCODE -eq 0) { Write-Host "$notebookName 导入成功" } else { Write-Host "$notebookName 导入失败,请检查文件格式和权限配置" } }
方案2:Linux/macOS Bash 脚本实现
# 替换为你的Synapse工作区名称 WORKSPACE_NAME="your-synapse-workspace-name" # 替换为你存放.ipynb文件的本地文件夹路径 NOTEBOOK_FOLDER="/path/to/your/notebooks" # 遍历文件夹下所有.ipynb文件 for notebook_file in "$NOTEBOOK_FOLDER"/*.ipynb; do if [ -f "$notebook_file" ]; then notebook_name=$(basename "$notebook_file" .ipynb) echo "正在导入Notebook: $notebook_name" # 调用Azure CLI执行单文件导入 az synapse notebook import --workspace-name "$WORKSPACE_NAME" --name "$notebook_name" --file "@$notebook_file" if [ $? -eq 0 ]; then echo "$notebook_name 导入成功" else echo "$notebook_name 导入失败,请检查文件格式和权限配置" fi fi done
方案3:Synapse Studio 界面批量上传
如果不想编写脚本,可直接通过界面操作:
- 打开Synapse Studio,进入「开发」选项卡
- 在左侧Notebook目录节点上右键,选择「导入」
- 在弹出的系统文件选择框中,按住Ctrl(Windows)/Command(macOS)键多选所有需要上传的.ipynb文件,确认后即可批量导入
该方式适合文件数量较少的场景,200-300个文件的情况下脚本执行效率更高、可控性更强
前置&注意事项
- 执行脚本前需先运行
az login登录Azure账号,且当前账号需拥有目标Synapse工作区的Notebook Contributor或更高权限 - 建议提前统一.ipynb文件的命名格式,避免特殊字符触发Synapse名称校验规则导致导入失败
- 全量导入前可先选取2-3个测试文件验证逻辑,确认无误后再执行全量操作
内容的提问来源于stack exchange,提问作者Learn2Code
相关产品推荐
相关产品推荐

