USQL 提取文件的子集

USQL Extract subset of files

我有一个 USQL 问题。我的日常工作是将文件输出到以下格式的目录

/我的输出/{YYYY}/{MM}/{DD}/file.csv

我现在有第二份工作,我想 运行 使用第一份工作生成的最新 30 个文件。不过我不知道如何最好地做到这一点。

我知道我可以在提取器中使用通配符,但我不希望提取所有文件然后使用 select/where 删除我不想要的文件,因为如果我提取所有文件可能会非常昂贵'保留这些文件多年的价值。

那么在 usql 中有没有一个很好的方法可以说只提取最近的 x 个文件?或者我在这里有什么选择?

谢谢, 约翰

如果您使用日期模式,它将按照您的要求执行。

@rows = 
    EXTRACT 
      ...,
      date DateTime
    FROM /MyOutput/{date:YYYY}/{date:MM}/{date:dd}/file.csv;

SELECT * FROM @rows WHERE date > '2018-5-3'

将只读取符合日期范围的文件 - 它不会首先读取所有文件。