如何在MS Fabric中通过Data Factory读取SharePoint Online文件至OneLake?
方法1:用内置SharePoint Online文件存储连接器(优先选择)
Fabric Data Factory内置了专门处理SharePoint文件的连接器,步骤如下:
- 新建复制数据任务,进入数据源配置页面
- 在连接器列表中搜索并选择「SharePoint Online文件存储」
- 配置连接参数:
- 站点URL:输入你的SharePoint站点根地址(示例:
https://yourtenant.sharepoint.com/sites/YourSite) - 认证方式选择「组织账户」,使用工作/学校账号登录授权
- 站点URL:输入你的SharePoint站点根地址(示例:
- 选择目标文件:在数据源配置中导航到xls/csv文件所在的文档库及文件夹,直接选中目标文件
- 配置OneLake目标:在目标页面选择「Lakehouse」,指定要写入的OneLake湖仓,设置存储格式(如Parquet、CSV)和路径
- 运行复制任务,完成数据摄入到OneLake
方法2:REST API + OAuth 2.0认证(连接器不可用时备用)
如果无法使用内置连接器,可通过Graph API读取文件内容后写入OneLake,步骤如下:
步骤1:获取OAuth访问令牌
- 联系租户管理员在Azure AD注册应用,完成以下配置:
- 添加「SharePoint」API权限,选择「Files.Read.All」(应用权限)并授予管理员同意
- 生成客户端密钥(Client Secret)
- 在Fabric Data Factory中新建Web活动,请求令牌:
- URL:
https://login.microsoftonline.com/{你的租户ID}/oauth2/v2.0/token - 请求方法:POST
- 请求头部:
Content-Type: application/x-www-form-urlencoded - 请求正文:
grant_type=client_credentials&client_id={你的客户端ID}&client_secret={你的客户端密钥}&scope=https://graph.microsoft.com/.default - 将返回的
access_token保存到变量中
- URL:
步骤2:读取SharePoint文件内容
- 新建另一个Web活动,调用Graph API获取文件内容:
- URL:
https://graph.microsoft.com/v1.0/sites/{站点ID}/drive/items/{文件ID}/content - 请求方法:GET
- 请求头部:
Authorization: Bearer @{variables('access_token')} - 小提示:站点ID可通过
https://graph.microsoft.com/v1.0/sites/yourtenant.sharepoint.com:/sites/YourSite获取;文件ID可在SharePoint文件详情页的URL中提取(类似.../id=xxxxxx部分)
- URL:
步骤3:写入OneLake
- 添加复制数据活动,将Web活动返回的文件内容作为数据源:
- 数据源选择「HTTP」,URL设为Web活动的输出结果(或直接使用上述Graph API URL+令牌)
- 目标选择「Lakehouse」,配置OneLake的存储路径和格式
- 运行流水线完成数据写入
常见问题排查
- 认证失败:检查账号是否拥有SharePoint文件的读取权限,Azure AD应用的API权限是否已正确授予管理员同意
- 文件路径错误:站点URL需填写根站点地址,不要包含具体文件路径;文件ID需确保准确无误
- 格式兼容问题:读取xls文件时,可在复制任务中选择「Excel」格式,并指定对应的工作表名称
内容的提问来源于stack exchange,提问作者yonabout
相关产品推荐
相关产品推荐

