[英]Is it possible to retrieve file path/url information when querying BULK OPENROWSET in Azure Synapse?
我能夠通過 Azure Synapse Serverless SQL 查詢從存儲在 Azure Data Lake Storage Gen 2 目錄中的 json 文件中檢索所有鍵和值,如下所示:
SELECT TOP 100
someColumn1,
someColumn2
FROM OPENROWSET(
BULK 'https://********.dfs.core.windows.net/some/path/**',
FORMAT = 'csv',
FIELDTERMINATOR ='0x0b',
FIELDQUOTE = '0x0b',
ROWTERMINATOR = '0x0b'
) WITH (doc NVARCHAR(MAX)) AS ROWS
OUTER APPLY OPENJSON ( [doc] )
WITH (
[someColumn1] INT '$.someProperty1',
[someColumn2] INT '$.someProperty2'
) AS someData
我正在尋找檢索 JSON 文件的路徑/url,以將其解析為我的 SQL 查詢返回的額外列。 這是可以實現的嗎?
filepath
:
- 當不帶參數調用 function 時,將返回從中檢索行的整個文件路徑。 在 OPENROWSET 中使用時,DATA SOURCE 返回相對於 DATA SOURCE 的路徑。
- 當使用參數調用 function 時,返回與參數中指示的點上的通配符匹配的部分路由。 例如,如果使用參數值 1,將返回路徑的第一個通配符匹配部分。
是的,您可以在帶有附加列的突觸中獲取文件路徑以及查詢文件。
例子:
SELECT TOP 100
name,salary,ROWS.filepath() AS filepath
FROM
OPENROWSET(
BULK 'https://dlsg2p.dfs.core.windows.net/fsn2p/userdetails.json',
FORMAT = 'CSV',
FIELDQUOTE = '0x0b',
FIELDTERMINATOR ='0x0b',
ROWTERMINATOR = '0x0b'=
)
WITH (doc NVARCHAR(MAX)) AS ROWS
OUTER APPLY OPENJSON ( [doc] )
WITH (
[name] VARCHAR '$.name',
[salary] INT '$.salary'
) AS someData
執行和 Output:
參考: 文件元數據
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.