Azure Synapse Sql - 包含带有 _ 和 .在提取

Azure Synapse Sql - Include Subfolders with _ and . in Extraction

SQL 不会选取主文件夹和子文件夹中的所有文件。 Azure Synapse 和 Sql on Demand 所以要注意有很多正常的 sql 还不能工作。

SELECT *
FROM
    OPENROWSET(
        BULK 'https://companyland.dfs.core.windows.net/storageboxes/data/*.snappy.parquet',
        FORMAT='PARQUET'
    ) AS [r];

在此 DATA 文件夹中有名为 MONTH_10 的文件夹,然后其中每天都有一个文件夹,例如 Day_1,然后包含当天的镶木地板文件。在DATA文件夹中,其正下方也有5个parquet文件。在今年的所有子文件夹中,有 50 个 parquet 文件。

当我在 Synapse 中执行上述 sql 时,它只有 returns 5 个文件而不是 55 个文件,因为它应该包括子文件夹。查看微软文档是因为子文件夹名称有一个 _ 或 .在其中。

要单独提取当天的文件,我需要将查询更改为:

SELECT *
FROM
    OPENROWSET(
        BULK 'https://companyland.dfs.core.windows.net/storageboxes/data/*/*/*/*',
        FORMAT='PARQUET'
    ) AS [r];

我还异常地发现 Azure Snyapse 不喜欢创建视图语句中的联合语句,所以我想知道是否有办法更改我的 BULK 语句以便提取所有 55 个文件?

下面是显示我所做的测试和使用的查询的屏幕截图。我保存的文件只有一个条目,指定了它们所在的文件夹。示例:Month_1 文件夹 -> day_1 文件夹 -> 文件中有 month1day1 作为数据。

存储结构: