Azure Synapse管道创建视图报错(BULK路径问题)
问题:Azure Synapse管道Script活动创建视图失败(文件未找到)
问题背景
- 已完成Azure Synapse管道基础配置:指定目标数据库,创建名为
files的数据源 - 尝试在管道的Script活动中执行CREATE VIEW语句,以读取
files数据源下所有文件夹的.parquet文件,报错提示无法识别目标文件(即使硬编码文件夹和文件名仍失败) - 相同的CREATE VIEW语句在Synapse Studio的Develop板块手动执行完全正常
排查与解决建议
校验执行权限差异
- 确认Script活动使用的服务主体/托管标识,对
files数据源指向的存储路径拥有读取权限:Blob存储需配置Storage Blob Data Reader角色,ADLS Gen2需配置Storage Blob Data Contributor/Reader角色。手动执行用的是用户账户权限,管道执行用的是服务主体权限,两者权限可能不一致。
- 确认Script活动使用的服务主体/托管标识,对
验证数据源配置
- 检查
files数据源的路径是否指向正确的存储容器/文件夹层级,且已启用递归读取(需读取子文件夹时必须开启) - 若数据源基于Linked Service,测试Linked Service的连接有效性,确认身份验证方式(托管标识/密钥)配置正确。
- 检查
调整视图创建语句的路径引用
- 优先使用数据源名称而非硬编码路径,标准语法示例:
CREATE VIEW [dbo].[target_view] AS SELECT * FROM OPENROWSET( BULK '*.parquet', DATA_SOURCE = 'files', FORMAT = 'PARQUET' ) AS [parquet_data] - 确保
DATA_SOURCE = 'files'的名称与创建的数据源完全一致(SQL语法大小写敏感)。
- 优先使用数据源名称而非硬编码路径,标准语法示例:
确认Script活动的数据库上下文
- 在Script活动设置中指定的目标数据库,需与手动执行时使用的数据库一致;也可在语句开头显式指定数据库,例如:
CREATE VIEW [your_db].[dbo].[target_view]
- 在Script活动设置中指定的目标数据库,需与手动执行时使用的数据库一致;也可在语句开头显式指定数据库,例如:
查看调试日志获取细节
- 开启管道调试模式,查看Script活动的详细执行日志,获取存储路径访问地址、权限校验结果等具体错误信息,对比手动与管道执行的环境差异。
内容的提问来源于stack exchange,提问作者Mateo Estrada
相关产品推荐
相关产品推荐

