2017-08-03 86 views
1

如果我的pipleline开始和结束日期是 “start”:“有人可以让我知道如何从我的onpremises文件系统获取前一天的数据,即2017-07-28等等: 2017-07-29T00:00:00Z“, ”end“:”2017-08-03T00:00:00Z“azure数据工厂从slicestart日期数据复制前一天

我的管道输入是”FileSystemSource“,输出是”AzureDataLakeStore“。我在副本管道尝试以下JSON作为输入

“输入”:

  { 

        "name": "OnPremisesFileInput2" 

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

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

       } 

      ] 

我也试图在输入和输出数据集,并在管道定义“偏移”如下

“可用性”:{

 "frequency": "Day", 

     "interval": 1, 

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

     "style": "StartOfInterval" 

    }, 

“调度器”:{

   "frequency": "Day", 

       "interval": 1, 

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

       "style": "StartOfInterval" 

      }, 

以上都不起作用。请求某人帮助我。

+0

如果你有一天的供应管道,只需重新运行前几天的时间片。 –

+0

感谢Paul的回复,但我希望管道选择前一天的数据,从时间管道计划运行 –

回答

0

我认为一个很好的策略是将昨天的输出看作今天的输入。 Azure Data Factory允许您使用不同的数据源依次运行活动。

有良好的文档here

有了这样一个例子: enter image description here

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

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文件的命名。