如何通过Azure Synapse Notebook读取Azure集成数据集至Dataframe
读取Azure集成数据集指向的文件方法
集成数据集(Integration Dataset)是Azure Data Factory中对底层存储数据的逻辑引用,本身不存储实际数据,读取它本质就是读取它配置指向的底层存储文件,以下是两种常用实现方式:
一、在Azure Data Factory管道中直接调用集成数据集
- 打开或新建ADF管道,添加数据读取类活动(比如复制活动、数据流活动)
- 在活动的数据源配置环节,直接选择目标集成数据集:
- 复制活动:在「源」选项卡的「数据集」下拉框选中你要读取的集成数据集,按需配置文件名筛选、读取模式等参数后,就能直接读取它指向的文件
- 数据流活动:在数据源节点的「数据集」选项里选中目标集成数据集,后续可直接在数据流中做数据转换、处理
- 调试或发布管道即可完成读取操作
二、用代码读取集成数据集指向的文件(以Python为例)
你可以通过ADF API获取集成数据集的配置信息,提取出底层存储的连接参数和文件路径,再用对应存储SDK读取文件:
- 先安装依赖包:
pip install azure-mgmt-datafactory azure-storage-file-datalake azure-identity
- 示例代码:
from azure.mgmt.datafactory import DataFactoryManagementClient from azure.identity import DefaultAzureCredential from azure.storage.filedatalake import DataLakeServiceClient # 实例化ADF管理客户端 credential = DefaultAzureCredential() adf_client = DataFactoryManagementClient(credential, "你的订阅ID") # 获取目标集成数据集的配置详情 dataset = adf_client.datasets.get("你的资源组名", "你的ADF工厂名", "目标数据集名称") # 提取ADLS Gen2的存储信息(根据数据集类型调整字段) storage_account_name = dataset.properties.linked_service_name.reference_name file_system = dataset.properties.type_properties["folderPath"].split("/")[0] target_file_path = "/".join(dataset.properties.type_properties["folderPath"].split("/")[1:]) # 连接ADLS并读取文件 adls_service_client = DataLakeServiceClient( account_url=f"https://{storage_account_name}.dfs.core.windows.net", credential=credential ) file_client = adls_service_client.get_file_client(file_system, target_file_path) file_content = file_client.download_file().readall()
注意事项
- 不同类型的集成数据集(比如Blob存储、SQL表),读取逻辑一致:要么在ADF活动中直接调用,要么提取其连接信息和数据位置后用对应SDK操作
- 确保你使用的服务主体或账户拥有集成数据集关联的链接服务权限,以及底层存储的读取权限
内容的提问来源于stack exchange,提问作者Bama
相关产品推荐
相关产品推荐

