运行 使用无服务器 sql 池(内置)查询 Azure Data Lake Storage Gen2 中的 CSV 文件失败

Running query using serverless sql pool (built-in) on CSV file in Azure Data Lake Storage Gen2 failed

我使用 Azure Synapse portal 将我的 CSV 文件上传到我的 Azure Data Lake Storage Gen2。然后我尝试 select Top 100 rows 并在 运行 自动生成 SQL 后得到一个错误。
自动生成SQL:

SELECT
    TOP 100 *
FROM
    OPENROWSET(
        BULK 'https://accountname.dfs.core.windows.net/filesystemname/test_file/contract.csv',
        FORMAT = 'CSV',
        PARSER_VERSION='2.0'
    ) AS [result]

错误:

File 'https://accountname.dfs.core.windows.net/filesystemname/test_file/contract.csv'
cannot be opened because it does not exist or it is used by another process. 

我刚刚获取了您的代码并更新了我所拥有的路径并且它工作得很好

SELECT
    TOP 100 *
FROM
    OPENROWSET(
        BULK 'https://XXX.dfs.core.windows.net/himanshu/NYCTaxi/PassengerCountStats.csv',
        FORMAT = 'CSV',
        PARSER_VERSION='2.0'
    ) AS [result]

请检查您上传文件的路径是否与脚本中使用的路径相同。 你可以这样做来检查 导航到 WS -> 数据 -> ADLS gen2 -> 转到文件 -> 右键单击​​转到 属性 并从那里复制 Uri 粘贴到脚本中。

Synapse Studio 中的这个错误下面有 link(这会导致自助文档)解释错误本身。

您是否拥有存储帐户所需的权限?

您必须有 Storage Blob Data ContributorStorage Blob Data Reader 才能使此查询正常工作。

文档摘要:

You need to have a Storage Blob Data Owner/Contributor/Reader role to use your identity to access the data. Even if you are an Owner of a Storage Account, you still need to add yourself into one of the Storage Blob Data roles.

查看 Control Storage account access for serverless SQL pool

的完整文档

如果您的存储帐户受防火墙规则保护,请查看此

引用full docs article.