MS Fabric Notebook如何从非默认/跨工作区Lakehouse加载数据?
跨工作区Lakehouse读取失败问题排查与解决
一、操作层面的常见问题
- 权限配置缺失:把跨工作区Lakehouse添加到Notebook只是完成了关联,但你得确保当前操作的账号(或Notebook使用的服务主体)拥有源Lakehouse的读取权限——至少要配置
Reader或Storage Blob Data Reader角色权限。没权限的话,哪怕能看到Lakehouse对象,读取数据必然触发AnalysisException。 - 表引用格式错误:跨工作区读取不能用默认的
库.表写法,必须带上完整的工作区和Lakehouse标识。正确的SQL引用格式如下:
或者直接使用One Lake的ABFSS路径读取:SELECT * FROM [源工作区名].[源Lakehouse名].[架构名].[表名]
自动生成的代码通常不会处理跨工作区的格式要求,直接使用必然报错。SELECT * FROM abfss://<容器名>@onelake.dfs.fabric.microsoft.com/<源工作区名>/Lakehouses/<源Lakehouse名>/Tables/<表名> - 源Lakehouse状态异常:先确认源Lakehouse是否处于正常运行状态,有没有被暂停或者存储层出现故障,若源本身不可用,读取操作自然失败。
二、One Lake跨工作区访问的核心规则
跨工作区访问功能已正式上线,但需满足以下前提:
- 两个工作区必须归属同一个Microsoft Fabric租户。
- 跨工作区访问是显式授权机制,默认状态下工作区之间完全隔离,哪怕同租户也不会自动开放数据访问权限。
- 仅支持Fabric内部工具(如Notebook、Data Factory等)进行跨工作区访问,外部工具无法直接读取跨工作区的Lakehouse数据。
三、快速验证步骤
- 进入源工作区的Lakehouse设置页面,检查当前账号/服务主体是否被添加为
Reader或更高权限角色。 - 放弃自动生成的代码,手动编写带完整路径的SQL查询,测试是否能正常读取数据。
- 在源工作区内创建Notebook,尝试读取该Lakehouse的数据,确认源数据本身无故障。
内容的提问来源于stack exchange,提问作者Alec
相关产品推荐
相关产品推荐

