簡體   English   中英

在 Azure Data Lake Storage Gen2 中的 CSV 文件上使用無服務器 sql 池(內置)運行查詢失敗

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

我使用Azure Synapse 門戶將我的 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. 

Synapse Studio 中的此錯誤在其下方有鏈接(指向自助文檔),它解釋了錯誤本身。

您是否擁有存儲帳戶所需的權限?

您必須具有Storage Blob Data ContributorStorage Blob Data Reader才能使此查詢起作用。

文檔摘要:

您需要具有存儲 Blob 數據所有者/參與者/讀者角色才能使用您的身份訪問數據。 即使您是存儲帳戶的所有者,您仍然需要將自己添加到存儲 Blob 數據角色之一。

查看用於無服務器 SQL 池的控制存儲帳戶訪問的完整文檔


如果您的存儲帳戶受到防火牆規則的保護,請查看此堆棧溢出答案

參考完整文檔文章

我剛剛拿走了你的代碼並更新了我所擁有的路徑,它工作得很好

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

請檢查您上傳文件的路徑與腳本中使用的路徑是否相同。 您可以執行此操作以檢查 Navigate to WS -> Data -> ADLS gen2 -> Go 到文件 -> 右鍵單擊 go 到屬性並從那里復制 Uri 並粘貼到腳本中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM