0

我在 SFTP 中有每周上传的文件。这些文件的名称带有附加的日期。我只想每周将最新的文件复制到 adls 中。每当作业成功完成时,日期都会存储在 sql 表中,因此我可以查找上次成功运行的日期。

在我看来,我认为我需要这样的东西:过滤名称包含日期大于或等于上次成功运行日期的文件....或过滤上次修改日期大于或等于上次成功运行日期的文件?

这样,如果作业在上次运行时失败,它将获取前几周和当前几周的文件。

目前,我的管道有一个查找,可以向我显示最后一次成功运行,获取显示 sftp 文件夹中所有文件的元数据,过滤器和每个(副本)。我知道副本有效,因为我为特定文件设置了过滤器并且它有效。我需要帮助的领域是过滤器。

4

2 回答 2

0

我创建了一个示例进行测试,希望这可以帮助您:

全部的

我设置了一个管道变量LastRunDate类型是string,值是“2020-07-01”,它就像你的输出一样lookup activity

这是我的输出GetMetaData Activity

{
    "childItems": [
        {
            "name": "polo_2020-06-30.csv",
            "type": "File"
        },
        {
            "name": "polo_2020-07-01.csv",
            "type": "File"
        },
        {
            "name": "polo_2020-07-02.csv",
            "type": "File"
        }
    ]
}

的设置Filter Activity

“项目”:@activity('Get Metadata1').output.childItems

“健康)状况”:@greater(split(split(item().name,'_')[1],'.')[0],variables('LastRunDate'))

这是输出Filter Activity

{
    "ItemsCount": 3,
    "FilteredItemsCount": 1,
    "Value": [
        {
            "name": "polo_2020-07-02.csv",
            "type": "File"
        }
    ]
}
于 2020-07-02T02:24:59.173 回答
0

我最终解决了我的问题,方法是使用翻转窗口触发器将上次成功的运行日期和当前日期变量插入到获取元数据活动中的最后修改参数中。我以此为指导

于 2020-07-02T18:49:26.863 回答