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