首页 文章

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

提问于
浏览
2

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

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

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

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

1 回答

  • 2

    如果文件具有相同的模式,则可以使用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 以提供所需的间隔 .

相关问题