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'
将只读取符合日期范围的文件 - 它不会首先读取所有文件。
我有一个 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'
将只读取符合日期范围的文件 - 它不会首先读取所有文件。