由于SqlFilterTransformer导致U-SQL作业运行缓慢

时间:2018-04-17 09:45:16

标签: sql visual-studio u-sql data-lake

我有一个U-SQL作业,它从2 .tsv和2 .csv文件中提取数据,选择一些功能并执行一些简单的转换,然后再输出到ADL中的csv / tsv文件。

但是,当我尝试在SELECT语句中添加进一步的转换时,由于特别是一个SELECT语句,运行(10+分钟对1分钟)似乎需要相当长的时间。

我认为这是由于'YearMonth'列的计算,我基本上使用连接来将日期列添加到我需要的格式中。

以下是快速完成的工作:

    @StgCrime =
SELECT CrimeID,
       [Month],
       ReportedBy,
       FallsWithin,
       Longitude,
       Latitude,
       Location,
       LSOACode,
       LSOAName,
       CrimeType,
       LastOutcome,
       Context
FROM @ExtCrime;

OUTPUT @StgCrime
   TO "CrimeOutput/Crimes.csv"
     USING Outputters.Csv(outputHeader:true);

这项工作需要更长的时间:

    @StgCrime =
SELECT CrimeID,
       String.Concat([Month].Substring(0, 4),[Month].Substring(5, 2)) AS YearMonth,
       ReportedBy AS ForceName,
       Longitude,
       Latitude,
       Location,
       LSOACode,
       CrimeType,
       LastOutcome
FROM @ExtCrime;

OUTPUT @StgCrime
   TO @OCrime
     USING Outputters.Csv(outputHeader:true);

顶点视图的差异:

Simple/Quick job

With additional transformation

有人可以帮我澄清一下吗?当然,一次改造不应该导致工作时间的这种增加吗?

正在查询的数据文件由1,066个csv文件组成,总共约2.5GB。

1 个答案:

答案 0 :(得分:0)

没有看到所有脚本和生成的作业图以及指定的AU的数量,有点难以估计为什么一个作业的运行速度比另一个慢得多。

你说"数据文件"由1066个CSV文件组成,所有这些文件看起来都很小,共有2.5GB。我希望你可能在提取阶段获得1066个提取顶点。那个简单的工作也一样吗?

我们在预览中有一个新功能,它可以将最多200个文件(或首先是1GB)整理到一个顶点,以最大限度地缩短顶点启动时间。

您可以通过添加以下声明来尝试您的工作:

SET @@FeaturePreviews = "InputFileGrouping:on";