[英]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 Contributor或Storage 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.