在我的Azure数据湖目录ingest中,我有时间戳命名的子目录:
ingest/1510395023/file.tsv
ingest/1510425023/file.tsv
ingest/1510546210/file.tsv
...在Azure Data v2复制活动( directories )中,如何将Data目录筛选为大于指定时间戳的目录?
假设我将将已经复制的时间戳记录到Server中,并且在下一个管道运行时,我只希望基于查找活动复制增量的新目录。
Data文档引用了逻辑函数,但我不知道如何在这个场景中实现它们。
如果在文件名(相对于目录)上可用逻辑比较筛选器,则Alternatively:也会有帮助。
注意事项:我也想载入历史数据,所以只过滤大于或等于now的时间戳是不够的。
发布于 2018-01-31 02:23:48
我猜你有一个数据湖分析帐户。
使用U活动,您可以将目标文件复制到单个文件,然后可以使用复制活动复制该文件。
您可以通过提取一个文件集并通过它的虚拟列过滤它来实现这一点。
将@timestamp字符串设为输入参数,该参数是通过查找活动获得的,是已经处理的最新时间戳:
@delta =
SELECT Col1, Col2
FROM(
EXTRACT
[Col1] string,
[Col2] string,
[Timestamp] string
FROM "ingest/{Timestamp}/file.tsv"
USING Extractors.Tsv(skipFirstNRows : 1/* change if the header is not part of the file*/)
) AS T
WHERE long.Parse([Timestamp]) > long.Parse(@timestamp);
OUTPUT @delta
TO "delta/file.tsv"
USING Outputters.Tsv(outputHeader : true);在那里,您可以将"delta/file.tsv“复制到数据库中。
https://stackoverflow.com/questions/48517987
复制相似问题