Azure Synapse 无服务器 - SQL 查询每个文件目录中的 return 行

Azure Synapse Serverless - SQL query to return rows in directory for each file

我有一个 Azure Data Lake Gen2 容器,其中有几个 json 文件。我想写一个查询 returns 每个文件的记录。我对解析文件不感兴趣,我只想知道那里有哪些文件并在视图中返回这些文件。有没有人对我如何做到这一点有任何提示?我发现的所有内容都是关于如何 parse/read 文件的...我将让 Power BI 这样做,因为 json 格式不是标准格式。在这种情况下,我只需要一个文件列表。谢谢!

您可以在 Azure Synapse Analytics 无服务器 SQL 池中使用 filepath()filename() 函数来 return 那些。您甚至可以 GROUP BY 将它们 return 汇总结果。一个简单的例子:

SELECT 
    [result].filepath() AS filepath,
    [result].filename() AS filename,
    COUNT(*) AS records
FROM
    OPENROWSET(
        BULK 'https://azureopendatastorage.blob.core.windows.net/nyctlc/yellow/puYear=2019/puMonth=4/*.parquet',
        FORMAT = 'PARQUET'
    ) AS [result]
GROUP BY [result].filepath(), [result].filename()

有关更多示例,请参阅 documentation