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

如何在Synapse Notebook活动中用Python连接Azure Data Factory链接服务?

在Synapse Notebook中用Python连接ADF Linked Service的可行方案

1. 使用Azure管理Python SDK操作ADF Linked Service

可以通过azure-mgmt-datafactory包结合身份认证库来获取ADF中已创建的Linked Service信息,步骤如下:

  • 先安装依赖包:
    pip install azure-mgmt-datafactory azure-identity
    
  • 示例代码(以托管身份认证为例):
    from azure.identity import DefaultAzureCredential
    from azure.mgmt.datafactory import DataFactoryManagementClient
    
    # 配置基础信息
    subscription_id = "你的订阅ID"
    resource_group = "资源组名称"
    adf_name = "ADF工厂名称"
    ls_name = "目标Linked Service名称"
    
    # 初始化ADF管理客户端
    credential = DefaultAzureCredential()
    adf_client = DataFactoryManagementClient(credential, subscription_id)
    
    # 获取Linked Service详情
    linked_service = adf_client.linked_services.get(resource_group, adf_name, ls_name)
    
    # 根据Linked Service类型提取连接参数
    # 示例:针对Azure Blob Storage类型
    if linked_service.type == "AzureBlobStorage":
        conn_str = linked_service.properties.type_properties.connection_string
        # 后续可使用该连接字符串结合azure-storage-blob包操作存储
    

2. 直接复用Linked Service的数据源连接信息

如果目标是连接Linked Service指向的数据源,更高效的方式是提取Linked Service中的连接参数,直接在Notebook中连接数据源:

  • 示例:连接ADF中配置的Azure SQL数据库
    from pyspark.sql import SparkSession
    
    spark = SparkSession.builder.getOrCreate()
    df = spark.read \
        .format("jdbc") \
        .option("url", "从ADF Linked Service中提取的JDBC URL") \
        .option("dbtable", "目标表名") \
        .option("user", "数据库用户名") \
        .option("password", "数据库密码") \
        .load()
    
    你可以从ADF门户的Linked Service配置页直接复制对应的连接参数,或者通过上述SDK代码自动提取。

关键注意事项

  • 确保Synapse工作区的托管标识/服务主体拥有ADF的Data Factory Reader或更高权限,才能读取Linked Service信息。
  • 不同类型的数据源需要对应Python包支持,比如操作Blob Storage用azure-storage-blob,操作SQL数据库用pyodbc或Spark JDBC。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 16:26:26