我有一个USQL问题。我有一个日常工作,即以下列格式将文件输出到目录
/my output/{YY YY}/{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'
将只读取与日期范围匹配的文件 - 它不会首先读取所有文件。