根据间隔在Azure数据工厂管道中配置动态参数数



我们的用例需要通过Azure数据工厂将可配置的输入传递给U-SQL脚本。我们正在评估可行性,并且需要根据活动时间片的间隔自动地将变量的数量传递给U-SQL脚本。

例如,如果U-SQL脚本每4小时运行一次,它将需要从4个不同的文件中读取数据,每小时读取一个。如果间隔更改为5小时,我们需要将其自动化,以便它将自动从5个不同的文件中读取,而无需更新U-SQL脚本。

文件路径的格式为:源 YYYY-MM-DD hh.csv

当前数据工厂或数据湖提供的设施和功能集是否可以实现这种动态?或者是否有解决这个问题的方法,以便数据工厂管道的部署可以自动化?

如果文件具有相同的模式,则可以使用U-SQL中的文件集功能,如下所示:

DECLARE @begin_date DateTime = DateTime.Parse("....");
DECLARE @end_date DateTime = DateTime.Parse("....");
@data = 
  EXTRACT filedate DateTime, // insert rest of your schema
  FROM "/Source/{filedate:yyyy}-{filedate:MM}-{filedate:dd}/{filedate:hh}.csv"
  USING Extractors.Csv();
@data = 
  SELECT * 
  FROM @data
  WHERE filedate BETWEEN @begin_date AND @end_date;
// ... rest of script ...

上面的代码将只访问满足filedate上的谓词的文件,而不读取其他文件。

然后使用ADF的参数化功能来参数化@begin_date@end_date,以获得所需的间隔

相关内容

  • 没有找到相关文章

最新更新