Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure Synapse Sql-包含带有u和的子文件夹。提取中_Azure_Azure Synapse - Fatal编程技术网

Azure Synapse Sql-包含带有u和的子文件夹。提取中

Azure Synapse Sql-包含带有u和的子文件夹。提取中,azure,azure-synapse,Azure,Azure Synapse,不拾取主文件夹和子文件夹中所有文件的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]; 在这个数据文件夹中,有一个名为

不拾取主文件夹和子文件夹中所有文件的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];
在这个数据文件夹中,有一个名为MONTH_10的文件夹,在这个文件夹中,每天都有一个文件夹,比如day_1,其中包含当天的拼花地板文件。在数据文件夹中,它的正下方还有5个拼花文件。在今年的所有子文件夹中,有50个拼花文件

当我在Synapse中执行上述sql时,它只返回5个文件,而不是55个文件,因为它应该包含子文件夹。查看microsoft文档,这是因为子文件夹名称有一个uu或。在他们里面

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

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

另外,我发现Azure Snyapse不喜欢create view语句中的union语句,所以我想知道是否有办法更改我的BULK语句,以便拾取所有55个文件?

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

存储结构:


在OPENROWSET path中使用*时,可以指定要读取的子文件夹的有限级别。示例:*/month=*将读取sales中以year=开头的所有文件夹以及以month=开头的所有文件夹,但不会读取month=*文件夹下的任何子文件夹。感谢您提供此信息。对于源代码,管道中还有一个递归选项,因此找到它的工作原理会很有趣。如果下面的答案有助于实现需求,请接受它,因为它对社区有益