You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python创建Azure Data Factory资源文件夹及管道存放文件夹?

在Azure Data Factory中用Python创建资源文件夹及存放管道的文件夹

针对你的两个问题,我直接给你明确的答案和实操步骤:

问题2:是否可以用Python创建存放管道的文件夹?

当然可以!Azure Data Factory支持通过Python SDK创建逻辑文件夹来组织管道、数据集等资源,你完全可以把教程里的管道放到自定义的文件夹中,让资源结构更清晰。

问题1:如何使用Python创建Azure Data Factory资源文件夹?

下面是具体的实操步骤,我们会用到Azure SDK for Python中的azure-mgmt-datafactory包:

1. 安装必要的依赖包

先在你的Python环境中安装所需的SDK和认证包:

pip install azure-mgmt-datafactory azure-identity

2. 初始化ADF管理客户端并认证

首先需要通过Azure认证(这里用DefaultAzureCredential,支持CLI登录、环境变量、Managed Identity等多种认证方式),然后初始化Data Factory的管理客户端:

from azure.identity import DefaultAzureCredential
from azure.mgmt.datafactory import DataFactoryManagementClient

# 替换为你自己的订阅ID、资源组名称和Data Factory名称
subscription_id = "your-subscription-id"
resource_group_name = "your-resource-group-name"
data_factory_name = "your-data-factory-name"

# 初始化认证和客户端
credential = DefaultAzureCredential()
adf_client = DataFactoryManagementClient(credential, subscription_id)

3. 创建单独的资源文件夹

如果你想先创建好文件夹结构(比如提前规划好层级),可以用folders.create_or_update方法:

from azure.mgmt.datafactory.models import Folder

# 可以创建单层文件夹,也可以创建嵌套文件夹,比如"etl_pipelines/data_sync"
target_folder = "etl_pipelines"

# 定义文件夹资源
folder_resource = Folder(name=target_folder)

# 创建或更新文件夹(如果已存在则不会报错)
adf_client.folders.create_or_update(
    resource_group_name=resource_group_name,
    factory_name=data_factory_name,
    folder_name=target_folder,
    folder=folder_resource
)

print(f"文件夹 {target_folder} 已成功创建!")

4. 创建管道并指定到目标文件夹

如果你想直接在创建管道时自动生成文件夹(无需提前创建),只需要在定义Pipeline对象时指定folder属性即可:

from azure.mgmt.datafactory.models import Pipeline, CopyActivity, DatasetReference

# 假设你已经定义好了源和目标数据集引用(对应教程里的Blob和SQL数据集)
source_dataset = DatasetReference(reference_name="SourceBlobDataset")
sink_dataset = DatasetReference(reference_name="SinkSqlDataset")

# 构建复制活动(和教程里的逻辑一致)
copy_activity = CopyActivity(
    name="CopyBlobToSql",
    inputs=[source_dataset],
    outputs=[sink_dataset],
    source={"type": "BlobSource"},
    sink={"type": "SqlSink"}
)

# 定义管道,并指定存放的文件夹
pipeline = Pipeline(
    activities=[copy_activity],
    folder={"name": target_folder}  # 这里指定文件夹,不存在会自动创建
)

# 创建管道
adf_client.pipelines.create_or_update(
    resource_group_name=resource_group_name,
    factory_name=data_factory_name,
    pipeline_name="ETL_Copy_Pipeline",
    pipeline=pipeline
)

print(f"管道已成功创建并放入文件夹 {target_folder}!")

额外说明

  • 嵌套文件夹直接用斜杠分隔路径即可,比如"folder1/subfolder2",ADF会自动创建多层结构。
  • 如果你不需要提前创建文件夹,直接在创建管道时指定folder属性是更高效的方式,系统会自动生成对应的文件夹。

内容的提问来源于stack exchange,提问作者pelos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 06:35:47