Azure数据工厂从slicestart日期开始复制前一天的数据

时间:2017-08-03 07:24:04

标签: azure-data-factory

如果我的pipleline开始和结束日期是,那么有人可以让我知道如何从我的onpremises文件系统获取前几天的数据,例如2017-07-28等 "开始":" 2017-07-29T00:00:00Z", "结束":" 2017-08-03T00:00:00Z"

我的管道输入是" FileSystemSource"输出是" AzureDataLakeStore"。我在我的复制管道中尝试了以下JSON作为输入

"输入":[

            {

                    "name": "OnPremisesFileInput2"

                         "startTime": "Date.AddDays(SliceStart, -1)", 

                         "endTime": "Date.AddDays(SliceEnd, -1)"

                }

            ]

我也尝试过定义" offset"在输入和输出数据集以及管道中如下

"可用性":{

        "frequency": "Day",

        "interval": 1,

        "offset": "-1.00:00:00",

        "style": "StartOfInterval"

    },

" scheduler":{

                "frequency": "Day",

                "interval": 1,

                "offset": "-1.00:00:00",

                "style": "StartOfInterval"

            },

上述似乎都没有奏效。请求别人帮助我。

2 个答案:

答案 0 :(得分:0)

我认为这样做的好策略是将昨天的输出视为今天的输入。 Azure数据工厂允许您使用不同的数据源依次运行活动。

有很好的文档here

举个这样的例子: enter image description here

像这样你可以在这两个活动之间有一个临时存储空间,或者使用主输入数据源,但使用过滤器只能得到昨天的切片。

答案 1 :(得分:0)

你的偏移应该是正面的。

"availability": {    
        "frequency": "Day",    
        "interval": 1,    
        "offset": "01:00:00",    
        "style": "EndOfInterval"    
    }

在这种情况下,它将在9月7日上午1:00 UTC运行,并将从9月6日0:00 UTC到9月7日UTC运行切片。这是昨天的切片。

您的输入数据集应配置为使用SliceStart命名文件

"partitionedBy": [
                {
                    "name": "Slice",
                    "value": {
                        "type": "DateTime",
                        "date": SliceStart",
                        "format": "yyyymmdd"
                    }
                }],
"typeProperties": {
      "fileName": "{slice}.csv",

}

在9月7日执行时会查找20170906.csv文件。