Azure Synapse Sql-包含带有u和的子文件夹。提取中
不拾取主文件夹和子文件夹中所有文件的SQL。Azure Synapse和Sql on Demand,所以要小心,有很多普通Sql在其中还不起作用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]; 在这个数据文件夹中,有一个名为
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=*文件夹下的任何子文件夹。感谢您提供此信息。对于源代码,管道中还有一个递归选项,因此找到它的工作原理会很有趣。如果下面的答案有助于实现需求,请接受它,因为它对社区有益